- Вы хотите вставить абзацы, таблицы, списки и изображения в
otherBody
в положение курсора активного документа.
Если мое понимание верно, как насчет этого ответа ? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Точки модификации:
- В вашем случае, сначала, пожалуйста, восстановите позицию курсора активного документа.
appendParagraph
добавляет абзац к последней части документа. Так что в этом случае, пожалуйста, используйте insertParagraph
. - И в этом случае, пожалуйста, установите позицию.
Когда вышеуказанные точки отражаются в вашем сценарии, он становится следующим:
Модифицированный скрипт:
Пожалуйста, наведите курсор на активный Документ и запустите функцию insert
. При этом абзацы, таблицы, списки и изображения в otherBody
вставляются в позицию курсора.
function insert() {
var docID = "###"; // Please set the Document ID.
var baseDoc = DocumentApp.getActiveDocument();
var body = baseDoc.getBody();
var otherBody = DocumentApp.openById(docID).getBody();
var cursor = baseDoc.getCursor(); // Added
var cursorPos = baseDoc.getBody().getChildIndex(cursor.getElement()); // Added
var totalElements = otherBody.getNumChildren();
for (var j = 0; j < totalElements; ++j) {
var element = otherBody.getChild(j).copy();
var type = element.getType();
if (type == DocumentApp.ElementType.PARAGRAPH)
body.insertParagraph(cursorPos + j, element); // Modified
else if (type == DocumentApp.ElementType.TABLE)
body.insertTable(cursorPos + j, element); // Modified
else if (type == DocumentApp.ElementType.LIST_ITEM)
body.insertListItem(cursorPos + j, element); // Modified
else if (type == DocumentApp.ElementType.INLINE_IMAGE)
body.insertImage(cursorPos + j, element); // Modified
else
throw new Error("According to the doc this type couldn't appear in the body: " + type);
}
}
Ссылки:
Если я неправильно понял ваш вопрос, и это был не тот результат, который вы хотите, я прошу прощения.