2016-12-01 94 views
0

我有一个Google文档模板,它会自动复制到文件夹中,并用来自电子表格单元格的值替换特定的值。Google App脚本将Google文档模板转换为PDF模板

该模板的常量值如< < 41 >>这些值用于查找并替换为来自电子表格的值。 [见下图]

The values like <<41>> are replaced with values coming from spreadsheet.

的查找和替换的过程是好的,文档的结果看起来像下面 enter image description here

这个形象现在,我想这个文件被转换成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); 

} 

皈依工作正常,但转换后的文件是不是更新的一个就像是从模板复制新的一个和值没有改变。

生成的PDF看起来像第一张图片。

如果您可能注意到,我在转换函数之前添加了一个睡眠定时器,以便延迟转换并给出更改保存的时间,我尝试了1分钟和2分钟的睡眠时间,但仍然没有“工作。

请帮忙。

+0

请尝试用'DocumentApp.getActiveDocument()'替换'DocumentApp.openById()'' –

回答

0

我上面提供的函数工作正常,我们只需要在调用将文档转换为PDF的函数之前调用saveAndClose()方法来强制脚本保存更改。

1

我做了类似的here,你可以只使用原始模板的文件ID,而不是在convertPdf()中填充的副本?