1

我正在编写一个脚本,将一些专有格式的文档转换为谷歌文档。我已经能够处理大多数各种格式选项(字体、磅值、粗体等),但我被困在下标和上标上。

我试过用下标段落创建一个新的谷歌文档。然后,我编写了一个脚本来查看段落和子项,在这两种情况下都没有看到为下划线设置的属性。

我尝试将文本包装在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);
}

还有什么要尝试的吗?

4

3 回答 3

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。随意给问题加注星标以注册您的支持。

于 2013-07-11T15:31:16.280 回答
1

为了任何寻找这个的人的利益,自从这个问题被作为一个TextAlignmentgetTextAttributeIndices提出以来,它就被实现了——它在文档中没有明确说明*,但幸运的是,这些在使用该方法观察到的文本元素上创建了索引。

* 如中,它不是由列出的属性,getAttributes而是 索引的getTextAttributeIndices()

我刚刚修改了我正在处理的 Docs-to-markdown 处理脚本,以合并子和上标对齐处理,这可能作为一个有用的示例(参见commit diff)。

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

于 2015-03-22T03:48:11.650 回答
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 方法运行的。如果要将这些值放入现有 Document,请修改resource.

在此处输入图像描述

参考:

如果这不是你想要的方向,我很抱歉。

于 2019-08-07T00:41:47.163 回答