我通过Google Apps脚本生成了一个文档。

是否可以将Page setup...> OrientationPortrait更改为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);


我希望这有帮助。

10-07 23:26