google 使用 GAS 将 doc 转换为 pdf 会忽略文本编辑

google doc to pdf convertion with GAS disregards text edits

我正在创建一个 google 应用脚本,它根据电子表格中的数据生成发票。对于每张发票,脚本应该复制一个模板 doc 文件,添加相关数据并输出 pdf。

当我尝试将修改后的文档文件导出为 pdf 时,它会根据原始模板文件创建一个 pdf。 None 的编辑已被考虑在内。

然而,在我的 convertToPDF 函数中,文件 ID 是正确的,并且它指向的文档已被正确修改。我尝试从外部 GenInvoice 调用 convertToPDF 但收效甚微。

我对 GAS 的了解有限,我只是通过反复试验来修补我的前进方向。在这里,我一无所知。

这是一个重现我的问题的最小示例:

function GenInvoice(folder, month, restaurant, adresse, forfait, invoiceNr){

  // copy template
  var templateid = "1kDDBHiwUikKHRtywJ_Tfig4Nf_wNbdy814_5SvLerkw" 
  var template = DriveApp.getFileById(templateid);
  var newfile  = template.makeCopy(template.getName() + "_edited" );

  // Open invoice in docs
  var docId  = newfile.getId()
  var doc = DocumentApp.openById(docId);
  var body = doc.getBody();

  // Remplacing place-holders
  body.replaceText("%TemplateText%", "%ModifiedText%");

  // Final print
  body.appendParagraph('Great work! Keep your flow!');

  // convert to PDF
  convertToPDF(docId)
}

function convertToPDF(theId){
  console.log(theId)
  var doc = DriveApp.getFileById(theId);

  /* Add the PDF extension */
  docblob = doc.getAs('application/pdf');
  docblob.setName("Modified_template.pdf"); // doc.getName() + ".pdf")

  var file = DriveApp.createFile(docblob);
}

尝试在转换前添加 "doc.saveAndClose();"。

像那样:

// Final print
body.appendParagraph('Great work! Keep your flow!');

//Save and close doc
doc.saveAndClose();

// convert to PDF
convertToPDF(docId)