使用Google Script Editior将Google文档转换为PDF

Rob*_*est 8 pdf google-docs google-apps-script

我一直在尝试将Google文档文件转换为PDF文件,而无需使用下载选项.下面是我在脚本编辑器中使用的脚本,但它似乎不起作用.我认为错误发生在IF语句之后.

function convertPDF() {
  doc = DocumentApp.getActiveDocument();
  docblob = DocumentApp.getActiveDocument().getAs('application/pdf');
  var result = DocumentApp.getUi().alert(
      'Save As PDF?',
      'Save current document (Name:'+doc.getName()+') as PDF',
      DocumentApp.getUi().ButtonSet.YES_NO);
  if (result == DocumentApp.getUi().Button.YES) {
    docblob.setName(doc.getName())
    folder.createFile(docblob);
    DocumentApp.getUi().alert('Your PDF has been converted to a PDF file.');
  } else {
    DocumentApp.getUi().alert('Request has been cancelled.');
  }
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*lst 9

要将 PDF 保存在原始目录中:

function convertPDF() {
  doc = DocumentApp.getActiveDocument();
  // ADDED
  var docId = doc.getId();
  var docFolder = DriveApp.getFileById(docId).getParents().next().getId();
  // ADDED
  var ui = DocumentApp.getUi();
  var result = ui.alert(
      'Save As PDF?',
      'Save current document (Name:'+doc.getName()+'.pdf) as PDF',
      ui.ButtonSet.YES_NO);
  if (result == ui.Button.YES) {
    docblob = DocumentApp.getActiveDocument().getAs('application/pdf');
    /* Add the PDF extension */
    docblob.setName(doc.getName() + ".pdf");
    var file = DriveApp.createFile(docblob);
    // ADDED
    var fileId = file.getId();
    moveFileId(fileId, docFolder);
    // ADDED
    ui.alert('Your PDF file is available at ' + file.getUrl());
  } else {
    ui.alert('Request has been cancelled.');
  }
}
Run Code Online (Sandbox Code Playgroud)

并添加这个通用功能

function moveFileId(fileId, toFolderId) {
   var file = DriveApp.getFileById(fileId);
   var source_folder = DriveApp.getFileById(fileId).getParents().next();
   var folder = DriveApp.getFolderById(toFolderId)
   folder.addFile(file);
   source_folder.removeFile(file);
}
Run Code Online (Sandbox Code Playgroud)


Ami*_*wal 7

它失败了,因为没有定义文件夹.如果将其替换为DriveApp,则将在根文件夹中创建PDF,您的功能将起作用.您还可以在消息框中显示完整的URL.

function convertPDF() {
  doc = DocumentApp.getActiveDocument();
  var ui = DocumentApp.getUi();
  var result = ui.alert(
      'Save As PDF?',
      'Save current document (Name:'+doc.getName()+'.pdf) as PDF',
      ui.ButtonSet.YES_NO);
  if (result == ui.Button.YES) {
    docblob = DocumentApp.getActiveDocument().getAs('application/pdf');
    /* Add the PDF extension */
    docblob.setName(doc.getName() + ".pdf");
    var file = DriveApp.createFile(docblob);
    ui.alert('Your PDF file is available at ' + file.getUrl());
  } else {
    ui.alert('Request has been cancelled.');
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回复并解释我的错误。另一个问题是,保存的文件是否可以与要转换的文件保存在同一文件夹中? (2认同)