创建的 PDF 不反映对原始文档所做的更改
Created PDF does not reflect changes made to the original document
我有一个 Google 文档模板,它会自动复制到一个文件夹中,并用来自电子表格单元格的值替换特定值。
该模板包含诸如 <<41>>
之类的值,这些值过去是 "find-and-replaced" 以及来自电子表格的值。
查找和替换过程很好,文档的结果如下图所示
现在,我想让这个文档在更新后转换成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);
}
转换工作正常,但转换后的文档没有更新。相反,它就像是在更改值之前从模板中新复制的那个。
如果你注意到了,我之前在转换函数中添加了一个"sleep"定时器来延迟转换并为保存更改留出时间,我试过1分钟和2分钟的睡眠但还是不行。
如何确保 PDF 是从更新后的模板创建的?
我做了类似的事情here,你能不能只使用原始模板的文件 ID,而不是 convertPdf() 中填充的副本?
我上面提供的函数可以正常工作,我们只需要在调用文档转换为PDF的函数之前调用saveAndClose()方法强制脚本保存更改。
我一直在寻找同一个问题的答案,但是 Google 表格。给 saveAndClose() 一个机会,但它对表格不起作用。做了一些更多的搜索,发现类似问题的表格解决方案是:
SpreadsheetApp.flush()
希望这可以帮助人们更快地找到答案。
我有一个 Google 文档模板,它会自动复制到一个文件夹中,并用来自电子表格单元格的值替换特定值。
该模板包含诸如 <<41>>
之类的值,这些值过去是 "find-and-replaced" 以及来自电子表格的值。
查找和替换过程很好,文档的结果如下图所示
现在,我想让这个文档在更新后转换成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);
}
转换工作正常,但转换后的文档没有更新。相反,它就像是在更改值之前从模板中新复制的那个。
如果你注意到了,我之前在转换函数中添加了一个"sleep"定时器来延迟转换并为保存更改留出时间,我试过1分钟和2分钟的睡眠但还是不行。
如何确保 PDF 是从更新后的模板创建的?
我做了类似的事情here,你能不能只使用原始模板的文件 ID,而不是 convertPdf() 中填充的副本?
我上面提供的函数可以正常工作,我们只需要在调用文档转换为PDF的函数之前调用saveAndClose()方法强制脚本保存更改。
我一直在寻找同一个问题的答案,但是 Google 表格。给 saveAndClose() 一个机会,但它对表格不起作用。做了一些更多的搜索,发现类似问题的表格解决方案是:
SpreadsheetApp.flush()
希望这可以帮助人们更快地找到答案。