4

我正在尝试使用脚本替换 Google Drive 文件夹中的 PDF 文件。由于 GAS 没有提供添加修订(版本)的方法,我试图替换文件的内容,但我得到的只是一个空白 PDF。

我不能使用 DriveApp.File 类,因为我们的管理员禁用了新 API,所以我必须改用 DocsList.File。

  • 输入:
    • OldFile.pdf(8 页)
    • 新文件.pdf(20 页)
  • 预期输出:
    • OldFile.pdf 与 NewFile.pdf 内容相同
  • 实际输出:
    • OldFile.pdf 有 20 个空白页。

过程:

var old = DocsList.getFileById("####");
var new = DocsList.getFileById("####");
old.replace(new.getContentAsString());

请问有什么想法吗?提前非常感谢。

PS.:我也尝试先调用 old.clear() ,但我想说问题出在 getContentAsString 方法上。

4

2 回答 2

7

Advanced Drive Service可用于替换 Google Drive 中现有 PDF 文件的内容。此答案还包括如何更新共享云端硬盘中的 PDF 文件的示例。

function overwriteFile(blobOfNewContent,currentFileID) {
  var currentFile;
  
  currentFile = DriveApp.getFileById(currentFileID);    
  
  if (currentFile) {//If there is a truthy value for the current file
    Drive.Files.update({
      title: currentFile.getName(), mimeType: currentFile.getMimeType()
    }, currentFile.getId(), blobOfNewContent);
  }
}

参考

使用共享云端硬盘的示例:

Drive.Files.update({ title: currentFile.getName(), mimeType: 
  currentFile.getMimeType() }, currentFile.getId(), blobOfNewContent, 
  {supportsTeamDrives: true});
于 2017-09-01T18:39:28.337 回答
1

尝试将其作为blob数据类型获取。

于 2013-11-12T12:53:52.443 回答