Created PDF does not reflect changes made to the original document

一曲冷凌霜 提交于 2019-12-29 01:30:31

问题


I have a Google Docs template which is automatically copied into a folder and replace specific values with values coming from spreadsheet cells.

The template contains values such as <<41>> which are used to be "find-and-replaced" with values coming from a spreadsheet.

The find-and-replace process is fine, and the results of the document looks like this image below

Now, I want this document to be converted into PDF after it has been updated, so I made a function for the convertion and call it at the bottom after all the codes has been executed.

Here's the function:

//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);
}

The convertion works fine, but the converted document isn't updated. Rather, it is like it was the one freshly copied from the template, before the values were changed.

If you may notice, I have added a "sleep" timer before in the conversion function so as to delay the conversion and give time for the changes to be saved, I've tried 1 and 2 minutes sleep but still it doesn't work.

What can I do to make sure the PDF is created from the updated template?


回答1:


The function I provided above works fine, we just need to forced the script to save the changes by calling the saveAndClose() method before calling the function that converts the doc into PDF.




回答2:


I do something similar here, could you just be using the file id of the original template, rather then the populated copy in convertPdf()?



来源:https://stackoverflow.com/questions/40902910/created-pdf-does-not-reflect-changes-made-to-the-original-document

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!