【问题标题】:alternative to getText() function app scriptgetText() 函数应用脚本的替代方案
【发布时间】:2021-06-14 19:56:30
【问题描述】:

使用 getSelection() 从谷歌文档中选择文本后,我正在尝试获取所选文本 但它没有返回相同的文本

例如:-以下是 google-doc 上的示例文本

蓝色和粗体 但它返回给我一个纯文本,其所有属性都设置为 NULL

请告诉我如何解决这个问题

有没有 getText() 函数的替代方法

如果类型是 TEXT,下面是我的代码

if (type == DocumentApp.ElementType.TEXT) {
        var txt=element.copy();
        Logger.log(txt);
        var text = body.editAsText();
        text.appendText(txt.getText());
        // var par = body.appendParagraph(txt.getText());
        Logger.log("i am text");
        Logger.log(txt.getText());
        Logger.log(text.getParent());
        text.getAttributes();
        text.getBackgroundColor();
        Logger.log(text.getBackgroundColor());
        Logger.log(text.getAttributes());
      }

【问题讨论】:

  • 我必须为我糟糕的英语水平道歉。不幸的是,我无法理解您的问题。 ex:-Below is sample text on a google-doc 是什么?而且,为了正确理解您的问题,您能否提供您期望作为图像的示例输入和输出情况?

标签: javascript google-apps-script google-docs


【解决方案1】:

您似乎要求将文档Body 的属性转换为Text 元素。

var text = body.editAsText();

不是当前的selection 喜欢:

var selection = DocumentApp.getActiveDocument().getSelection();

此外,您可能需要递归迭代选择 (Range) 中的 RangeElements(也可能是子级)。

然后您可以检查Element 属性。

const element = rangeElement.getElement();
const attributes = element.getAttributes();

这将返回应用于整个元素的属性。


如果您需要元素中包含的属性,则需要再次迭代到元素的子元素中。例如,如果您想要 Paragraph 的文本元素,您可以使用段落 GetChild() 方法。

Text 元素还具有检索文档文件中所谓的“文本运行”或“格式化运行”的索引的功能。您可以使用 Text 元素的 getTextAttributeIndices() 函数获取这些信息。

您不能将整个 Range(在您的示例中为主体)转换为 Text 元素,因为它不会将样式应用于整个选择,它将返回 null 作为结果。

【讨论】:

  • 感谢您的回复,但我希望所选文本显示已应用的属性,但它返回给我一个纯文本,而且它的类型是 TEXT。当我选择一个段落时,它可以正常工作,因为它将它标识为 PARAGRAPH。希望你能理解。
  • 我不确定我是否理解。您想获取 Text 元素的属性吗?您确定选择实际上是一个文本元素还是将其转换为一个文本元素? (使用 editAsText() )。如果您确定所选内容确实是 Text 元素,我在回答中回答了如何读取 Text 元素的属性。见getTextAttributeIndices()
  • @KumarKrishna 如果你在谈论getText() 函数,它会返回一个纯文本字符串。这就是它应该做的。
  • 感谢您的帮助。
  • 您能告诉我如何使用选择及其类型在表格中呈现列表,因为当我选择并运行我的函数时它不会在表格中显示列表
猜你喜欢
  • 2012-01-11
  • 2012-04-06
  • 2019-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
相关资源
最近更新 更多