如何在文档中创建上标/下标字符?

时间:2012-08-14 18:55:25

标签: google-apps-script

我正在制作一个脚本,将一些专有格式的文档转换为谷歌文档。我已经能够处理大多数各种格式化选项(字体,点大小,粗体等),但我坚持下标和上标。

我尝试使用下标中的段落创建一个新的Google文档。然后我编写了一个脚本来查看段落和子项,并且在两种情况下都没有看到设置为可以下划线的属性。

我已经尝试将文本包装在 st 中,但是只将精确的文本添加到文档中。这是我目前正在使用的一些代码:

if (superscript == true ) {
  paragraph.appendText(txt.sup()).setAttributes(style);
} else if (subscript == true) {
  paragraph.appendText(txt.sub()).setAttributes(style);
} else {
  paragraph.appendText(txt).setAttributes(style);
}

还有别的尝试吗?

3 个答案:

答案 0 :(得分:2)

目前无法做到这一点 - 如果可能的话,它将存在于Text类API(https://developers.google.com/apps-script/reference/document/text)中的某个位置。

我在这里https://code.google.com/p/google-apps-script-issues/issues/detail?id=2885提交了上标/下标的功能请求。请随意注明问题,以便注册您的支持。

答案 1 :(得分:1)

  • 您要使用Google Apps脚本将上标和下标字符放入Google文档中。

如果我的理解是正确的,那么该示例脚本如何?不幸的是,即使在当前阶段,仍然没有使用文档服务放置上标和下标字符的方法。

但是,如果使用2019年初添加的Google Docs API,则可以实现这些目标。将来可能会将此功能添加到文档服务中。因此,作为当前的解决方法,我想提出使用Docs API的方法。示例脚本如下。

在使用此脚本之前,请在Advanced Google services上启用Google Docs API。

示例脚本:

function myFunction() {
  var documentId = "###"; // Please set document ID here.

  var resource = {requests: [
    {insertText: {text: "SampleSuperscriptSubscript", location: {index: 1}}},
    {updateTextStyle: {range: {startIndex: 7, endIndex: 18}, textStyle: {baselineOffset: "SUPERSCRIPT"}, fields: "baselineOffset"}},
    {updateTextStyle: {range: {startIndex: 18, endIndex: 27}, textStyle: {baselineOffset: "SUBSCRIPT"}, fields: "baselineOffset"}}
  ]};
  Docs.Documents.batchUpdate(resource, documentId);
}

结果:

为新的Google文档运行上述脚本时,将获得以下结果。首先,放置文本SampleSuperscriptSubscript。然后,修改文本样式。这些使用batchUpdate方法运行。如果要为现有文档放置这些值,请修改以上resource对象。

enter image description here

参考文献:

如果这不是您想要的方向,我深表歉意。

答案 2 :(得分:0)

为了任何寻找这个问题的人的利益,它已被实现,因为这个问题被称为TextAlignment class - 它在文档中没有明确*,但幸运的是,这些文本元素创建索引{{3方法。

*表示,它不是getAttributes列出的属性,但 getTextAttributeIndices()索引

我刚刚修改了一个Docs-to-markdown处理脚本,我正在努力将子标记和上标对齐处理作为一个例子(参见getTextAttributeIndices)。

请注意,如果跨段落应用,getTextAlignment方法会返回null

相关问题