我通过Google Apps脚本生成了一个文档。
是否可以将Page setup...
> Orientation
从Portrait
更改为Landscape
?
该文档包含的表仅在Landscape
模式下才能很好地显示,我希望能够:
产生文件
将方向从纵向更改为横向
将文档转换为PDF并发送给用户
转换为PDF并发送
// create the document
var doc = DocumentApp.create('Sample Document - Landscape Mode');
var body = doc.getBody();
// add lots of content...
// ensure all content is added to the PDF
// see: https://stackoverflow.com/a/44481513/1063287
doc.saveAndClose();
// create the pdf file
var pdf_file = doc.getAs("application/pdf");
// see: https://developers.google.com/apps-script/reference/gmail/gmail-app#sendEmail(String,String,String,Object)
GmailApp.sendEmail('[email protected]', 'Attachment example', 'Please see the attached file.', {
attachments: [pdf_file],
name: 'Test Name'
});
如果没有正式的支持,我想知道是否有任何骇人听闻的方法来达到相同的效果(例如:url参数以强制使用横向模式,以编程方式旋转pdf文件,获取Google Apps脚本以在Landscape中创建页面模式默认为?)
编辑:
在
Page setup...
> Orientation
中,有一个Set as default
选项。我单击它并运行脚本,它以
Landscape
模式创建文档,然后以Landscape
模式发送PDF,这很棒,但这只是意味着无论何时我想在模式,我必须手动将Portrait
更改为Orientation
。此外,如果我希望另一个函数以Portrait
模式创建文档,则该解决方案将无法正常工作。取得了一些进展,但仍然想知道是否有更全面的解决方案。
编辑2:
我在浏览器中在
Portrait
中查看文档时尝试了这种方法:https://stackoverflow.com/a/35344694/1063287
即,我替换了:
/edit
在网址末尾带有:
export?exportFormat=pdf&format=pdf&portrait=false
但是文档以
Portrait
方向下载。 最佳答案
当我遇到您的问题时,我一直在寻找完全相同的问题,最终找到了答案,所以我不妨在这里分享。
该链接很好地说明了一个解决方案:
https://productforums.google.com/forum/#!topic/docs/HuwBipQ6cBY
您需要在代码中手动设置纸张尺寸(以磅为单位)。
上面链接中的代码使用十进制尺寸。
但是,我确实在这里使用整数找到了一些建议的测量方法:
https://www.prepressure.com/library/paper-size/din-a4
这是创建新文档并将其设置为A4横向的方式:
var doc = DocumentApp.create("Document name");
var docBody = doc.getBody();
docBody.setPageHeight(595).setPageWidth(842);
这是第一个链接的引用,使用十进制数表示。
引用第一个链接:
旋转至风景,A4尺寸
doc.getBody().setPageHeight(595.276).setPageWidth(841.89);
旋转为人像,A4尺寸
doc.getBody().setPageHeight(841.89).setPageWidth(595.276);
我希望这有帮助。