我的目标是从用户那里获取任意 PDF,并将其保存为 PDF/A-2b。
当前的方法是使用 Ghostscript 9.21(通过 ghost4j)来创建转换后的文件。这可行,但并非没有一些问题。我让它与 Ghostscript 的两组不同参数一起工作。
首先
使用-dUseCIEColor
如下所示的选项将起作用,并生成带有几个不同测试文件的有效 PDF/A-2b。但是,这会将错误页面打印到日志中,说明不建议使用。
这些是完整的论点:
-dBATCH
-dNOPAUSE
-dPrinted=true
-sDEVICE=pdfwrite
-dPDFACompatibilityPolicy=1
-sColorConversionStrategy=/UseDeviceIndependentColor
-sProcessColorModel=DeviceCMYK
-sOutputICCProfile=/tmp/icc.icc
-sOutputFile=/tmp/result.pdf
-dPDFA=2
-dUseCIEColor
/tmp/PDFA_def.ps
/tmp/test.pdf
PDFA_def.ps 是默认供应商 9.21,指向相同的 ICC Profile 和底部的这一行:
<</NeverEmbed []>> setdistillerparams
ICC 配置文件是 Adobe 发布的随机 (CMYK) 配置文件。
这有效,除了日志中的错误。
第二
然后我将尝试按照日志错误的指示进行操作,并删除-dUseCIEColor
.
现在有些测试文件可以工作,有些则不行。我怀疑这与原始 PDF 的颜色配置文件或类似的东西有关。
3-heights 给出验证错误:使用了没有适当输出意图的设备特定颜色空间 (DeviceRGB)。
这可以通过-sProcessColorModel=DeviceRGB
将 ICC 配置文件切换到随机 RGB 配置文件来纠正。
然后对于另一个文档,您会收到错误消息:使用了没有适当输出意图的设备特定颜色空间 (DeviceCMYK)。
我有什么遗漏的吗?看来我需要根据与首选样式相去甚远的原始 PDF 文件来切换选项。如果有帮助,我也可以使用黑白 PDF/A-2b。谢谢!