Google App Script Convert Google Docs Template to

2019-02-20 01:04发布

问题:

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()?