已转换的PDF中缺少替换文档中的文本

时间:2018-01-13 02:15:43

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

我从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)
}

1 个答案:

答案 0 :(得分: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;
}