Google Docs导出为Docx时无法保留原图片文件名如何解决
导出Google Docs为Docx时保留图片原始文件名的解决方法
Google Docs原生导出功能暂未支持保留上传图片的原始文件名,默认会按导出顺序将图片重命名为image.png、image-1.png这类格式,你可以通过以下两种方法实现需求:
方法1:网页发布中转法(无需插件/代码)
- 打开目标文档,点击顶部菜单栏「文件」→「共享」→「发布到网页」
- 点击「发布」确认后,复制生成的公开网页链接
- 在新标签页打开该链接,按下
Ctrl+S(Mac系统按Command+S)将网页保存到本地设备 - 打开保存网页对应的同级资源文件夹,里面的图片会保留你上传时设置的原始文件名(如
my-cool-header.png) - 打开从Google Docs直接导出的docx文件,替换对应位置的图片即可。操作完成后可以回到「发布到网页」设置界面取消发布,避免文档公开。
方法2:Google Apps Script批量导出法
如果你需要处理的图片数量较多,可以用脚本批量导出带原始文件名的图片:
- 打开目标文档,点击顶部菜单栏「扩展程序」→「Apps 脚本」
- 清空编辑器内的默认代码,粘贴以下代码:
function exportDocsOriginalImages() { const doc = DocumentApp.getActiveDocument(); const images = doc.getBody().getImages(); const fileList = []; images.forEach((img, index) => { // 优先读取图片Alt标题作为文件名,未设置则按序号命名 const imgName = img.getAltTitle() || `original_image_${index + 1}.png`; const imgBlob = img.getBlob().setName(imgName); fileList.push(imgBlob); }); // 生成压缩包保存到Google Drive根目录 const zipBlob = Utilities.zip(fileList, `${doc.getName()}_原始图片包.zip`); DriveApp.createFile(zipBlob); DocumentApp.getUi().alert("原始图片包已生成,请到Google Drive根目录查看"); }
- 点击编辑器顶部的「运行」按钮,按提示完成脚本权限授权
- 执行完成后,你的Google Drive根目录会生成包含所有原始文件名图片的压缩包,解压后替换导出docx内的图片即可。
注:上传图片时如果将原始文件名填写到图片的「Alt文本」→「标题」栏,脚本会直接读取该内容作为导出图片的文件名。
内容的提问来源于stack exchange,提问作者MZH
相关产品推荐
相关产品推荐

