我的目标是从用户那里获取任意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配置文件,底部显示此行:
<</NeverEmbed []>> setdistillerparams
ICC配置文件是由Adobe发布的随机(CMYK)配置文件。
除日志中的错误外,这是有效的。
其次
然后我将尝试按日志错误告知,并删除-dUseCIEColor
。
现在有些测试文件有效,有些则不行。我怀疑这与原始PDF的颜色配置文件有关,或类似的东西。
3-height提供验证错误:使用没有适当输出意图的设备特定颜色空间(DeviceRGB)。
可以通过切换-sProcessColorModel=DeviceRGB
并将ICC配置文件切换为随机RGB配置文件来纠正此问题。
然后,对于另一个文档,您会收到错误:使用没有适当输出意图的设备特定颜色空间(DeviceCMYK)。
我有什么遗漏吗?看起来我需要根据原始PDF文件切换选项,这远远不是首选的样式。如果它有帮助,我也可以使用黑白PDF / A-2b。谢谢!
答案 0 :(得分:1)
如果不看文件就不可能说出问题所在。 UseCIEColor是一个非常糟糕的PostScript黑客,可以尝试进行色彩管理,它不可靠(在颜色方面)并且会有效地击败任何真正的色彩管理。显然,由于您使用的是随机配置文件,因此您无法进行色彩管理,但所有相同....
由于您并不真正关心色彩管理,我建议您选择CMYK而不是UseDeviceIndependentColor(因为您使用的是ProcessColorModel)。请注意,如果您选择ColorConversionStrategy = / CMYK,那么您不需要设置ProcessColorModel,这是转换中假设的。
除此之外,我不得不建议您打开错误报告。如果人们没有报告问题,那么他们就不会得到修复......
答案 1 :(得分:0)
UseCIEColor
的正确的PDF / A兼容替换似乎是以下两个选项的组合:
-sProcessColorModel=DeviceCMYK
-sColorConversionStrategy=UseDeviceIndependentColor
DeviceCMYK
和DeviceRGB
都为我工作。