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

Ghostscript 9.21转换含附件PDF时丢失附件的技术问询

Ghostscript 9.21 PDFA-2转换丢失附件的解决方案

我之前碰到过一模一样的问题,Ghostscript的pdfwrite设备默认会过滤掉PDF里的嵌入式附件(就是你提到的附件1.pdf),尤其是在做PDFA转换的时候,这个默认行为直接导致附件没被写入输出文件。

问题根源

Ghostscript的pdfwrite驱动在默认配置下,为了优化输出体积或者遵循默认文档规范,会自动忽略PDF中的嵌入式文件对象。当你加上-dPDFA=2参数进行PDFA-2转换时,这个过滤逻辑依然生效,所以原文件里的附件就丢失了。

解决办法

只需要在命令行里添加-dPreserveEmbeddedFiles=true参数,强制Ghostscript保留原PDF中的嵌入式附件。修改后的完整命令如下:

cmd /c %GHOST_SCRIPT_EXE% -dPDFA=2 -dBATCH -dNOPAUSE -dSubsetFonts=false -dPDFSETTINGS=/printer -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -dCompatibilityLevel=1.7 -dOptimize=true -dPDFACompatibilityPolicy=1 -dAutoRotatePages=/None -dPreserveEmbeddedFiles=true -sOutputFile="out.pdf" "test.pdf"

额外说明

  • 这个参数在Ghostscript 9.21版本中是完全支持的,它会明确告诉pdfwrite设备保留所有嵌入式文件对象。
  • PDFA-2标准本身允许包含嵌入式文件,所以添加这个参数不会违反PDFA-2的规范——哪怕你的附件不是PDFA兼容格式,Ghostscript默认也会尝试保留,除非你设置了更严格的兼容性策略。

运行修改后的命令后,你再检查out.pdf,应该就能看到原来的附件1.pdf被完整保留下来了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:28:15