正在寻找使用 Google Apps 脚本或 DOCS API 为 google 文档中的段落添加边框的方法?
Looking for a way to add borders to a paragraph in a google doc using a Google Apps Script or perhaps the DOCS API?
可以通过 格式 菜单为 google 文档段落添加边框 > 段落样式 > 边框和底纹.
结果如下所示:
但是,我还没有弄清楚如何使用 Google Apps 脚本来做到这一点?
我参考了documentation关于设置属性,但是没有出现边框。似乎可以使用工作表和幻灯片来设置它们 - 但这不是我所追求的用例。
我通过 node.js 使用 DOCS API 下载示例 JSON 从包含我需要的边框的文档返回。
function printDocTitle(auth) {
const documentId = '###';
const docs = google.docs({version: 'v1', auth});
docs.documents.get({
documentId: documentId,
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
const doc = res.data;
console.log(JSON.stringify(doc, null, 4));
})
}
代表我希望创建的效果的 JSON 部分看起来像这样。
{
"startIndex": 82,
"endIndex": 83,
"paragraph": {
"elements": [
{
"startIndex": 82,
"endIndex": 83,
"textRun": {
"content": "\n",
"textStyle": {
"fontSize": {
"magnitude": 12,
"unit": "PT"
},
"baselineOffset": "NONE"
}
}
}
],
"paragraphStyle": {
"namedStyleType": "NORMAL_TEXT",
"alignment": "END",
"direction": "LEFT_TO_RIGHT",
"borderBottom": {
"color": {
"color": {
"rgbColor": {}
}
},
"width": {
"magnitude": 1.5,
"unit": "PT"
},
"padding": {
"magnitude": 1,
"unit": "PT"
},
"dashStyle": "SOLID"
}
}
}
}
我想知道我是否可以以某种方式利用它而不是使用 Google 脚本 - 但是 DOCS API 似乎不支持边框。
如果有任何线索、提示或提示,将不胜感激?
- 您想使用 Google 文档 API 在 Google 文档中添加边框 API。
- 您想使用 Node.js 和 Google Apps 脚本实现此目的。
- 您已经能够使用 Google 文档 API.
获取和放置 Google 文档的值
如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
可以通过 Google 文档 API 中的 batchUpdate 方法添加边框。在这种情况下,使用 UpdateParagraphStyleRequest
。例如,从您问题中的 JSON 对象,当使用以下参数时,
"paragraphStyle": {
"namedStyleType": "NORMAL_TEXT",
"alignment": "END",
"direction": "LEFT_TO_RIGHT",
"borderBottom": {
"color": {"color": {"rgbColor": {}}},
"width": {"magnitude": 1.5, "unit": "PT"},
"padding": {"magnitude": 1, "unit": "PT"},
"dashStyle": "SOLID"
}
}
batchUpdate方法的请求体如下。在这种情况下,作为示例,使用 {"startIndex": 1, "endIndex": 2}
.
将边框添加到 Document 的顶部
{
"requests": [
{
"updateParagraphStyle": {
"paragraphStyle": {
"namedStyleType": "NORMAL_TEXT",
"alignment": "END",
"direction": "LEFT_TO_RIGHT",
"borderBottom": {
"width": {"magnitude": 1.5, "unit": "PT"},
"padding": {"magnitude": 1, "unit": "PT"},
"dashStyle": "SOLID"
}
},
"range": {"startIndex": 1, "endIndex": 2},
"fields": "namedStyleType,alignment,direction,borderBottom"
}
}
]
}
模式 1:
在此模式中,使用了Node.js。
示例脚本:
当以下脚本为 运行 时,Google 文档的顶部会添加一个边框。
const documentId = "###"; // Please set the Document ID.
const docs = google.docs({ version: "v1", auth });
const requests = [
{
updateParagraphStyle: {
paragraphStyle: {
namedStyleType: "NORMAL_TEXT",
alignment: "END",
direction: "LEFT_TO_RIGHT",
borderBottom: {
width: { magnitude: 1.5, unit: "PT" },
padding: { magnitude: 1, unit: "PT" },
dashStyle: "SOLID"
}
},
range: { startIndex: 1, endIndex: 2 },
fields: "namedStyleType,alignment,direction,borderBottom"
}
}
];
docs.documents.batchUpdate(
{
documentId: documentId,
requestBody: { requests }
},
(err, res) => {
if (err) {
console.log(err);
return;
}
console.log(res.data);
}
);
模式二:
在此模式中,使用了 Google Apps 脚本。这样的话,上面的request body不用修改就可以使用了。
示例脚本:
在您使用此脚本之前,please enable Docs API at Advanced Google services.
const documentId = "###"; // Please set the Document ID.
const requests = [
{
updateParagraphStyle: {
paragraphStyle: {
namedStyleType: "NORMAL_TEXT",
alignment: "END",
direction: "LEFT_TO_RIGHT",
borderBottom: {
width: { magnitude: 1.5, unit: "PT" },
padding: { magnitude: 1, unit: "PT" },
dashStyle: "SOLID"
}
},
range: { startIndex: 1, endIndex: 2 },
fields: "namedStyleType,alignment,direction,borderBottom"
}
}
];
const res = Docs.Documents.batchUpdate({requests}, documentId);
console.log(res);
- 这种情况下,请开启V8运行时间。
参考文献:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
可以通过 格式 菜单为 google 文档段落添加边框 > 段落样式 > 边框和底纹.
结果如下所示:
但是,我还没有弄清楚如何使用 Google Apps 脚本来做到这一点?
我参考了documentation关于设置属性,但是没有出现边框。似乎可以使用工作表和幻灯片来设置它们 - 但这不是我所追求的用例。
我通过 node.js 使用 DOCS API 下载示例 JSON 从包含我需要的边框的文档返回。
function printDocTitle(auth) {
const documentId = '###';
const docs = google.docs({version: 'v1', auth});
docs.documents.get({
documentId: documentId,
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
const doc = res.data;
console.log(JSON.stringify(doc, null, 4));
})
}
代表我希望创建的效果的 JSON 部分看起来像这样。
{
"startIndex": 82,
"endIndex": 83,
"paragraph": {
"elements": [
{
"startIndex": 82,
"endIndex": 83,
"textRun": {
"content": "\n",
"textStyle": {
"fontSize": {
"magnitude": 12,
"unit": "PT"
},
"baselineOffset": "NONE"
}
}
}
],
"paragraphStyle": {
"namedStyleType": "NORMAL_TEXT",
"alignment": "END",
"direction": "LEFT_TO_RIGHT",
"borderBottom": {
"color": {
"color": {
"rgbColor": {}
}
},
"width": {
"magnitude": 1.5,
"unit": "PT"
},
"padding": {
"magnitude": 1,
"unit": "PT"
},
"dashStyle": "SOLID"
}
}
}
}
我想知道我是否可以以某种方式利用它而不是使用 Google 脚本 - 但是 DOCS API 似乎不支持边框。
如果有任何线索、提示或提示,将不胜感激?
- 您想使用 Google 文档 API 在 Google 文档中添加边框 API。
- 您想使用 Node.js 和 Google Apps 脚本实现此目的。
- 您已经能够使用 Google 文档 API. 获取和放置 Google 文档的值
如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
可以通过 Google 文档 API 中的 batchUpdate 方法添加边框。在这种情况下,使用 UpdateParagraphStyleRequest
。例如,从您问题中的 JSON 对象,当使用以下参数时,
"paragraphStyle": {
"namedStyleType": "NORMAL_TEXT",
"alignment": "END",
"direction": "LEFT_TO_RIGHT",
"borderBottom": {
"color": {"color": {"rgbColor": {}}},
"width": {"magnitude": 1.5, "unit": "PT"},
"padding": {"magnitude": 1, "unit": "PT"},
"dashStyle": "SOLID"
}
}
batchUpdate方法的请求体如下。在这种情况下,作为示例,使用 {"startIndex": 1, "endIndex": 2}
.
{
"requests": [
{
"updateParagraphStyle": {
"paragraphStyle": {
"namedStyleType": "NORMAL_TEXT",
"alignment": "END",
"direction": "LEFT_TO_RIGHT",
"borderBottom": {
"width": {"magnitude": 1.5, "unit": "PT"},
"padding": {"magnitude": 1, "unit": "PT"},
"dashStyle": "SOLID"
}
},
"range": {"startIndex": 1, "endIndex": 2},
"fields": "namedStyleType,alignment,direction,borderBottom"
}
}
]
}
模式 1:
在此模式中,使用了Node.js。
示例脚本:
当以下脚本为 运行 时,Google 文档的顶部会添加一个边框。
const documentId = "###"; // Please set the Document ID.
const docs = google.docs({ version: "v1", auth });
const requests = [
{
updateParagraphStyle: {
paragraphStyle: {
namedStyleType: "NORMAL_TEXT",
alignment: "END",
direction: "LEFT_TO_RIGHT",
borderBottom: {
width: { magnitude: 1.5, unit: "PT" },
padding: { magnitude: 1, unit: "PT" },
dashStyle: "SOLID"
}
},
range: { startIndex: 1, endIndex: 2 },
fields: "namedStyleType,alignment,direction,borderBottom"
}
}
];
docs.documents.batchUpdate(
{
documentId: documentId,
requestBody: { requests }
},
(err, res) => {
if (err) {
console.log(err);
return;
}
console.log(res.data);
}
);
模式二:
在此模式中,使用了 Google Apps 脚本。这样的话,上面的request body不用修改就可以使用了。
示例脚本:
在您使用此脚本之前,please enable Docs API at Advanced Google services.
const documentId = "###"; // Please set the Document ID.
const requests = [
{
updateParagraphStyle: {
paragraphStyle: {
namedStyleType: "NORMAL_TEXT",
alignment: "END",
direction: "LEFT_TO_RIGHT",
borderBottom: {
width: { magnitude: 1.5, unit: "PT" },
padding: { magnitude: 1, unit: "PT" },
dashStyle: "SOLID"
}
},
range: { startIndex: 1, endIndex: 2 },
fields: "namedStyleType,alignment,direction,borderBottom"
}
}
];
const res = Docs.Documents.batchUpdate({requests}, documentId);
console.log(res);
- 这种情况下,请开启V8运行时间。
参考文献:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。