You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Google Apps Script将Base64编码PDF数据转存至Google Drive

没问题,我帮你补全并优化这段代码,重点处理Base64转PDF的核心逻辑,确保能正确把编码数据转换成PDF文件并存到指定Drive文件夹:

function myFunction() {
  // 1. 获取目标存储文件夹
  const targetFolder = DriveApp.getFolderById("0B9EI2E_9Cj9rT1JmVk5ESnhVbjA");
  
  // 2. 读取存储Base64编码数据的文件
  const base64SourceFile = DriveApp.getFileById("18cmOQXdAaW1lmYLvDhpi4BrYFI5LWMh2");
  
  // 3. 提取纯Base64字符串内容
  const base64Content = base64SourceFile.getAs('text/plain').getDataAsString();
  
  // 4. 解码Base64为PDF字节数组(注意:这里不需要指定UTF-8,Base64是二进制编码)
  const pdfBinaryBytes = Utilities.base64Decode(base64Content);
  
  // 5. 在目标文件夹创建PDF文件(指定MIME类型确保Drive识别为PDF)
  const createdPdf = targetFolder.createFile(
    "生成的PDF文件.pdf", // 自定义文件名
    pdfBinaryBytes,       // 解码后的二进制数据
    "application/pdf"     // 关键:指定PDF的MIME类型
  );
  
  // 可选:打印结果确认文件创建成功
  console.log("PDF已成功保存到Drive,文件ID:" + createdPdf.getId());
}

几个关键注意点:

  • 解码Base64时不要加Utilities.Charset.UTF_8:Base64是对二进制数据的编码,直接解码就能得到PDF的原始字节,UTF-8是文本编码,用在这里会导致数据损坏
  • 必须指定application/pdf作为MIME类型:如果不指定,Drive可能会把文件识别为普通二进制文件,无法直接预览
  • 确保源文件里的Base64字符串是纯净的:如果有多余的换行、空格或前缀(比如data:application/pdf;base64,),记得先清理,比如用base64Content.replace(/^data:application\/pdf;base64,/, '').replace(/\s/g, '')

内容的提问来源于stack exchange,提问作者Ergun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:22:00