Templates 创建的PDF不反映对原始文档所做的更改

Templates 创建的PDF不反映对原始文档所做的更改,templates,pdf,google-apps-script,google-docs,Templates,Pdf,Google Apps Script,Google Docs,我有一个谷歌文档模板,它会自动复制到一个文件夹中,并用来自电子表格单元格的值替换特定值 该模板包含诸如之类的值,这些值用于“查找并替换”来自电子表格的值 查找和替换过程很好,文档的结果如下图所示 现在,我希望这个文档在更新后转换为PDF,所以我为转换创建了一个函数,并在所有代码执行完毕后在底部调用它 下面是函数: //convert to PDF function convertPDF(FileID,newName) { Utilities.sleep(120000); docblo

我有一个谷歌文档模板,它会自动复制到一个文件夹中,并用来自电子表格单元格的值替换特定值

该模板包含诸如
之类的值,这些值用于“查找并替换”来自电子表格的值

查找和替换过程很好,文档的结果如下图所示

现在,我希望这个文档在更新后转换为PDF,所以我为转换创建了一个函数,并在所有代码执行完毕后在底部调用它

下面是函数:

//convert to PDF
function convertPDF(FileID,newName) {
  Utilities.sleep(120000);
  docblob = DocumentApp.openById(FileID).getAs('application/pdf');
  /* Add the PDF extension */
  docblob.setName(newName + ".pdf");
  var file = DriveApp.createFile(docblob);
}
转换工作正常,但转换后的文档不会更新。相反,它就像是在更改值之前从模板中新复制的一样

如果您可能注意到,我之前在转换功能中添加了一个“睡眠”计时器,以便延迟转换并为保存更改提供时间,我尝试了1分钟和2分钟的睡眠,但仍然不起作用


如何确保PDF是根据更新的模板创建的?

我做了类似的事情,您是否可以使用原始模板的文件id,而不是convertPdf()中填充的副本?

我提供的上述功能工作正常,我们只需要在调用将文档转换为PDF的函数之前,通过调用方法强制脚本保存更改。

我正在搜索同一问题的答案,但搜索Google Sheets。给了saveAndClose()一次机会,但对工作表无效。进行了进一步搜索,发现类似问题的解决方案为:

SpreadsheetApp.flush() 


希望这有助于更快地找到答案。

请尝试将
DocumentApp.openById()
替换为
DocumentApp.getActiveDocument()