3

有没有办法使用 Google Apps 脚本将 Google 幻灯片保存为 PDF 文件?

我只能找到保存 Google 文档和表格的解决方案。

4

3 回答 3

9

这个示例脚本怎么样?使用 保存和/或下载 Google Docs(电子表格、文档和幻灯片)DriveApp.createFile()时,文件格式自动变为 PDF。所以我们可以使用下面的脚本。

示例脚本:

var blob = DriveApp.getFileById("### Slide file ID ###").getBlob();
DriveApp.createFile(blob);

笔记 :

在这种情况下,创建的 PDF 文件的文件名与幻灯片相同。

编辑 :

如果要复制幻灯片文件,请使用以下脚本。

var file = DriveApp.getFileById("### Slide file ID ###");
file.makeCopy(DriveApp.getFolderById("### Destination folder ID ###"));
于 2017-10-18T22:10:02.157 回答
1

这可以通过将 DocumentApp 替换为 SlideApp 来实现

请注意,如果它存在于驱动器文件夹中,它还会删除先前创建的同名 pdf。

function onOpen() {
  var ui = DocumentApp.getUi();
  ui.createMenu('Save PDF copy')
  .addItem('Save PDF', 'SavePDF')
  .addToUi();
}

function SavePDF() {
  var theDoc = DocumentApp.getActiveDocument();
  var id = DocumentApp.getActiveDocument().getId()
  var ui = DocumentApp.getUi();
  var folderString = DriveApp.getFileById(id).getParents().next().getName();
  var folder = DriveApp.getFileById(id).getParents().next();

  var theBlob = theDoc.getAs('application/pdf')
  var thePDFName = theBlob.getName()

  var theFiles = DriveApp.getFilesByName(theBlob.getName())
  while (theFiles.hasNext()) {
    var theFile = theFiles.next()
    if (theFile.getParents().next().getName() == folderString) {
      theFile.setTrashed(true)
    }
   }

  var newFile = folder.createFile(theBlob);
  ui.alert('Saved to ' + folderString + " " + theBlob.getName())
}
于 2021-08-05T03:01:32.553 回答
0
let pdf =  DriveApp.getFileById(copySlide.getId())
              .getBlob()
              .getAs("application/pdf");
pdf.setName("filename.pdf");
let file = DriveApp.getFolderById(FOLDER_ID).createFile(pdf);
于 2021-09-21T08:20:45.223 回答