Как удалить пустые страницы в многостраничном документе?
РЕДАКТИРОВАТЬ: добавил ответ, потому что редактирование было бы долго (см. Answer2)
Послебывший пост о слиянии документов Я закончил с рабочим сценарием (спасибо Энрике;), но у меня все еще есть одна небольшая проблема: окончательный 'объединенный' документ содержит иногда пустые страницы (в зависимости от содержимого другого документа), которые я хотел бы удалить. Я не могу найти легкий способ сделать это. Сценарий выглядит так:
function mergeDocs(docIDs) { // parameter docIDs is an array of Doc IDs
var baseDocname = DocumentApp.openById(docIDs[0]).getName();// typical name = IMPRESSION_page_07_07-06-2012__20:57
var modelDoc = DocsList.getFileById(docIDs[0]);
var newmodelName=baseDocname.substr(0,11)+'multipage'+baseDocname.substring(18);
var baseDocId = DocsList.copy(modelDoc,newmodelName).getId();// make a copy of firstelement and give it new basedocname build from the serie(to keep margins etc...)
var baseDoc = DocumentApp.openById(baseDocId)
var body = baseDoc.getActiveSection();
//
for( var i = 0; i < docIDs.length; ++i ) {
var otherCopy = DocumentApp.openById(docIDs[i]).getActiveSection();
var totalElements = otherCopy.getNumChildren();
for( var j = 0; j < totalElements; ++j ) {
var element = otherCopy.getChild(j).copy();
var type = element.getType();
if( type == DocumentApp.ElementType.PARAGRAPH )
body.appendParagraph(element);
else if( type == DocumentApp.ElementType.TABLE )
body.appendTable(element);
else if( type == DocumentApp.ElementType.LIST_ITEM )
body.appendListItem(element);
else
throw new Error("According to the doc this type couldn't appear in the body: "+type);
}
body.appendPageBreak(); // if content length is too short avoids breaking page layout
}
}
«PageBreak» вызывает (иногда) пустую страницу, я знаю это (!), но необходимо поддерживать идеальный макет страницы (я печатаю этикетки с этим документом). здесьссылка на типичный пример