2016-12-01 92 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()中填充的副本?