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)
我正在创建一个 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)