У меня есть старый скрипт, который (среди прочего) преобразует документ Google в PDF.Раньше все работало нормально, но теперь в pdf-версии файла появляются две лишние пустые страницы.
Я только что обнаружил, что эта проблема затрагивает также пункт меню «скачать в формате PDF» в документах Google.В этом случае есть ряд обходных путей, но мне нужен обходной путь для google-apps-script.
В этом посте решение аналогичной проблемы, похоже, заключается в тонкой настройкеразмер страницы.Я пробовал что-то подобное, но это не тривиально.Я также попробовал некоторые другие (случайные) варианты для размера страницы и полей, но безрезультатно.
Ниже я привожу минимальный рабочий пример.Он должен создать файл документа «test» и его pdf-версию «test.pdf» в папке на главном диске.
Любая помощь в избавлении от двух дополнительных страниц приветствуется.
Спасибо
function myFunction() {
// this function
// - creates a google document "test",
// - writes "this is a test" inside it
// - saves and closes the document
// - creates a pdf version of the document, called "test.pdf"
//
// the conversion is ok, except two extra blank pages appear in the pdf version.
// create google document
var doc = DocumentApp.create('test');
var docFile = DriveApp.getFileById( doc.getId() );
// set margins (I need landscape layout)
// this is an attempt to a solution, inspired by https://stackoverflow.com/questions/18426817/extra-blank-page-when-converting-html-to-pdf
var body = doc.getBody();
body.setPageHeight(595.2).setPageWidth(841.8);
var mrg = 40; // in points
body.setMarginTop(mrg).setMarginBottom(mrg);
body.setMarginLeft(mrg).setMarginRight(mrg);
// write something
body.appendParagraph('this is a test').setHeading(DocumentApp.ParagraphHeading.HEADING2).setAlignment(DocumentApp.HorizontalAlignment.CENTER);
// save and close file
doc.saveAndClose();
// convert file to pdf
var docblob = docFile.getAs('application/pdf');
// set pdf name
docblob.setName("test.pdf");
// save pdf file
var file = DriveApp.createFile(docblob);
}