我有一个旧脚本(除其他外)将google文档转换为pdf。 过去工作正常,但现在文件的pdf版本中出现了两个额外的空白页。
我刚刚发现此问题也影响google文档中的“以pdf下载”菜单选项。在这种情况下,有多种解决方法,但是我需要针对google-apps-script的解决方法。
在this post中,针对类似问题的解决方案似乎涉及到页面大小的微调。我尝试过类似的方法,但并不适用。 我还尝试了页面大小和边距的其他(随机)变化,但无济于事。
下面,我粘贴一个最小的工作示例。它应该在主驱动器文件夹中创建一个文档文件“ 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);
}
答案 0 :(得分:0)
我在Google产品论坛的this post上找到了问题的根源和解决方案,距今已有8个月了。
如果未选中视图->打印布局中的选项,则多余的页面将显示在pdf中。 我用我的帐户和我的同事进行了进一步的测试。 结果是一致的:
我不知道这种行为可能是“功能”,所以我认为这是一个错误。顺便说一下,“打印布局”似乎对我的文档没有任何可见的影响(除了弄乱pdf版本)。令我惊讶的是,八个月后,该错误仍然存在。
上面的数字3让我感到惊讶,因为我认为在任何Google文档中手动设置的选项不会影响我的脚本。 我目前正在寻找一种从脚本内部设置“打印布局”选项的方法。到目前为止,我还没有运气。