javascript - 使用 GAS 将 google doc 转换为 pdf 忽略文本编辑
问题描述
我正在创建一个 google app 脚本,它根据电子表格中的数据生成发票。对于每张发票,脚本应复制模板文档文件,添加相关数据并输出 pdf。
当我尝试将修改后的 doc 文件导出为 pdf 时,它会根据原始模板文件创建一个 pdf。没有考虑任何编辑。
然而,在我的convertToPDF
函数中,文件 ID 是正确的,并且它指向的文档已被正确修改。我试图convertToPDF
从外面打电话,GenInvoice
但收效甚微。
我对 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)
推荐阅读
- git - 如何在 Github 上将本地分支更新为远程主控?
- reactjs - “Window & typeof globalThis”类型上不存在属性“MktoForms2”
- amazon-web-services - Redshift Scheduler 无法创建计划
- python - ¿ 如何在 Python 中从多个文件夹中读取多个文件
- angular - Ag-Grid 编辑单元格颜色(如果已编辑)
- reactjs - npx create-react-app my-app yield result 'create-react-app' 无法识别
- javascript - 合并相同的查询参数
- html - 无法从 public/images/img-2.jpg 访问 App.css 中的图像
- laravel - 路由 [feeds.main] 未使用 spatie/laravel-feed 包定义
- c - 如何在c中检查输入数据是否正确