如何将文件夹中的所有谷歌文档转换为PDF



我创建了一个简单的谷歌应用程序脚本,将硬盘中文件夹中的所有谷歌文档转换为PDF,并将其保存到同一文件夹中,这很有效:

function convertDocsToPDF() {

var folderId = "asdf";
var folder = DriveApp.getFolderById("folderId");
var invoices = folder.getFiles();

while (invoices.hasNext()) {
var invoice = invoices.next();
var id = invoice.getId();
var file = DriveApp.getFileById(id);
var PDFblob = file.getAs(MimeType.PDF);
var PDF = DriveApp.createFile(PDFblob);
PDF.moveTo(file.getParents().next());
}
}

我写这篇文章是为了测试转换,但希望将其集成到一个更长的脚本中。较长的脚本通过将##TextToReplace##样式的字段替换为我从电子表格中提取的数据,从模板中创建发票。

当我尝试集成convertDocsToPDF()功能时,PDF看起来都像模板,而不是发票。当我在脚本完成后查看发票文档时,它看起来是正确的,所有字段都替换为正确的数据,但PDF看起来只是模板的副本。

在我的脚本编辑发票和将发票保存在驱动器中之间是否存在延迟,以便PDF转换在替换文本之前看到发票?

将编辑推送到服务器需要时间

这个延迟可能很小,但脚本会更快。

你可以尝试的事情:

  • 按照@Aaron Dunigan AtLee的建议使用Document.saveAndClose()
  • 在脚本的战略位置使用Utilities.sleep()
  • 先循环生成发票,然后转换为pdf

相关内容

  • 没有找到相关文章

最新更新