альтернатива скрипту приложения функции getText()

После выбора текста из документа Google с помощью getSelection () я пытаюсь получить выбранный текст, но он не возвращает тот же текст

Пример : - Ниже приведен образец текста в документе Google.

который окрашен синим и жирным шрифтом, но он возвращает мне простой текст со всеми его атрибутами, установленными как NULL

Подскажите пожалуйста, как это исправить

есть ли альтернатива функции getText ()

Ниже мой код, если его тип ТЕКСТ

      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());
      }

1 ответ

Похоже, вы запрашиваете атрибуты документа Body бросить как Text элемент.

var text = body.editAsText();

Не нынешний selection нравиться:

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

Кроме того, вам может потребоваться рекурсивный перебор (и, возможно, его RangeElementsдочерних элементов ) в выделении ( Range ).

Затем вы можете проверить атрибуты элемента .

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

Это вернет только те атрибуты, которые применяются ко всему элементу.


Если вам нужны атрибуты, содержащиеся в элементе, вам нужно будет снова выполнить итерацию в дочерних элементах элемента. Если, например, вам нужен текстовый элемент абзаца, вы можете использовать метод Paragraph GetChild () .

элементы также имеют функцию для получения индексов так называемых «прогонов текста» или «прогонов форматирования» в файлах документов. Вы можете получить их, используя функцию getTextAttributeIndices () элемента Text.

Вы не можете использовать весь диапазон (тело в вашем примере) как Текстовыетекстовый элемент, поскольку у него не будет стиля, примененного ко всему выделению, которое он вернет null в результате.

Другие вопросы по тегам