【问题标题】:google doc to pdf convertion with GAS disregards text edits使用 GAS 将 google doc 转换为 pdf 忽略文本编辑
【发布时间】:2020-03-27 20:01:50
【问题描述】:

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

当我尝试将修改后的 doc 文件导出为 pdf 时,它会根据原始模板文件创建一个 pdf。没有考虑任何修改。

然而,在我的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);
}

【问题讨论】:

    标签: javascript pdf google-apps-script google-sheets google-docs


    【解决方案1】:

    尝试添加“doc.saveAndClose();”在转换之前。

    这样:

    // Final print
    body.appendParagraph('Great work! Keep your flow!');
    
    //Save and close doc
    doc.saveAndClose();
    
    // convert to PDF
    convertToPDF(docId)
    

    【讨论】:

    • 非常感谢,它解决了问题。我怀疑文件应该关闭但不知道doc.saveAndClose();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多