Google Apps Script文档转PDF后体积过大问题求助
Google文档转PDF体积过大的解决方案
问题分析
原文档仅4.9Mb但转PDF后达28.5Mb,核心原因通常是Google Docs默认导出PDF时保留了图片的原始高分辨率,或包含冗余元数据/格式信息。以下是针对性解决方法:
方法一:通过Drive API自定义导出参数压缩PDF
替换原函数为以下代码,利用Drive API的导出参数对图片进行压缩:
function ConvertDocToPdfSameFolder(docId, doc_name) { // 获取原文档所在文件夹ID const id_folder = DriveApp.getFileById(docId).getParents().next().getId(); // 配置PDF导出压缩参数 const exportOptions = { mimeType: 'application/pdf', jpegQuality: 50, // 图片质量(0-100,数值越低压缩率越高) imageResolution: 'screen', // 分辨率选项:screen(屏幕级)/print(打印级)/photo(照片级) useContentAsIndexableText: false // 关闭索引文本,减少冗余 }; // 调用Drive API导出PDF const url = `https://www.googleapis.com/drive/v3/files/${docId}/export?${new URLSearchParams(exportOptions)}`; const response = UrlFetchApp.fetch(url, { headers: { 'Authorization': `Bearer ${ScriptApp.getOAuthToken()}` } }); const docblob = response.getBlob(); docblob.setName(doc_name + ".pdf"); // 保存到目标文件夹 const desti_folder = DriveApp.getFolderById(id_folder); const pdf = desti_folder.createFile(docblob); return pdf.getId(); }
注意事项:
- 需要在脚本编辑器中启用Drive API:点击「资源」→「高级Google服务」,找到「Drive API」并开启;
- 可根据需求调整
jpegQuality和imageResolution参数,平衡文件大小与画质。
方法二:提前压缩文档内的图片
如果文档包含大量高分辨率图片,先在Google Docs内优化:
- 选中图片→右键→「图片选项」→「压缩图片」;
- 选择「用于网页/屏幕」或「用于打印」模式,压缩后再执行转换函数。
方法三:清理文档冗余内容
检查并移除文档中可能存在的:
- 隐藏的文本、表格或元素;
- 多余的格式样式、未使用的模板资源;
- 重复嵌入的媒体文件。
内容的提问来源于stack exchange,提问作者Greg_apps_script
相关产品推荐
相关产品推荐

