Мне нужен полный текст пользовательского выбора в Документах Google, который может растягиваться на несколько строк.
Это отличается от этого вопроса: Получить выбранный пользователем текст , потому что в на этот вопрос требовалось получить текст отдельных слов или выделенных строк. Мне нужно иметь возможность обрабатывать несколько строк с правильным пробелом.
Я написал код ниже, и он почти работает, но он разбивает текст из двух строк вместе без символа новой строки (или чего-либо), разделяющего их , Он также не включает вкладки из исходного текста. Я предполагаю, что есть и другие ограничения, с которыми я не сталкивался!
function getSelectedText()
{
var selection = DocumentApp.getActiveDocument().getSelection();
if( !selection )
return "";
var selectedElements = selection.getRangeElements();
var theText = "";
for( var i=0; i < selectedElements.length; i++ )
{
var thisText = selectedElements[i].getElement().asText().getText();
if( selectedElements[i].isPartial() )
{
var thisText = thisText.substring( selectedElements[i].getStartOffset(), selectedElements[i].getEndOffsetInclusive() + 1)
}
theText += thisText;
}
return theText;
}
Итак, допустим, у меня есть документ, который выглядит так со всем текстом, выбранным пользователем (с вкладкой во второй строке):
Line 1
Line 2
Мой скрипт создаст строку "Line 1Line 2". Строка, которую я хотел бы видеть, это «Строка 1 \ nLine 2» или «Строка 1 \ rLine 2».