【问题标题】:Replaced text in a Doc is missing in converted PDF转换后的 PDF 中缺少文档中的替换文本
【发布时间】:2018-01-13 02:15:43
【问题描述】:

我开始使用 Google Apps 脚本并尝试创建文件的副本(Google Doc),然后替换复制文档中的文本并将其转换为 PDF。

该功能工作正常,但替换的文本不会出现在 PDF 文件中,而是出现在复制的文件中(我替换的地方)。

我读到了 saveandclose() 在函数完成弹出之前保存更改并关闭文档(复制)的方法。但似乎该方法不可用。我真的很感激帮助。谢谢。

function replaceconvert() {
  var cdoc = DriveApp.getFileById('iddocument').makeCopy('filename321');
  var iddoc = cdoc.getId();

  var doc = DocumentApp.openById(iddoc);
  doc.getBody().replaceText('nombre', 'Juan Perez');

  var doc_repl = DriveApp.getFileById(iddoc);
  var blob = doc_repl.getAs(MimeType.PDF);

  DriveApp.getFolderById(idfolder).createFile(doc1)
}

【问题讨论】:

  • “但是好像方法不可用”是什么意思?你收到错误了吗?如果是这样,请将文本错误消息添加到问题中。

标签: google-apps-script google-drive-api google-docs export-to-pdf


【解决方案1】:

我确实使用了以下对我有用的功能:

function personaliseAttachment(keyTemplate, member, fileName){

  var cloneId = DriveApp.getFileById(keyTemplate).makeCopy('cloneAttachment').getId();
  var clone = DocumentApp.openById(cloneId);

  var body = clone.getBody();

  for (var property in member) {
    if (member.hasOwnProperty(property)) {
      body.replaceText("{{"+property+"}}", member[property]);
    }
  }
  clone.saveAndClose();

  var clonePDF = DriveApp.createFile(clone.getAs('application/pdf'));
  clonePDF.setName(fileName);

  DriveApp.getFileById(cloneId).setTrashed(true);

  return clonePDF;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多