1

我的目标是从用户那里获取任意 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 配置文件是 Adob​​e 发布的随机 (CMYK) 配置文件。

这有效,除了日志中的错误。

第二

然后我将尝试按照日志错误的指示进行操作,并删除-dUseCIEColor.

现在有些测试文件可以工作,有些则不行。我怀疑这与原始 PDF 的颜色配置文件或类似的东西有关。

3-heights 给出验证错误:使用了没有适当输出意图的设备特定颜色空间 (DeviceRGB)。

这可以通过-sProcessColorModel=DeviceRGB将 ICC 配置文件切换到随机 RGB 配置文件来纠正。

然后对于另一个文档,您会收到错误消息:使用了没有适当输出意图的设备特定颜色空间 (DeviceCMYK)。

我有什么遗漏的吗?看来我需要根据与首选样式相去甚远的原始 PDF 文件来切换选项。如果有帮助,我也可以使用黑白 PDF/A-2b。谢谢!

4

2 回答 2

1

没有看到文件就不可能说出问题所在。UseCIEColor 是一个糟糕的 PostScript hack,用于尝试进行颜色管理,它不可靠(就颜色而言)并且会有效地击败任何真正的颜色管理。显然,由于您使用的是随机配置文件,因此您没有执行色彩管理,但都一样......

由于您并不真正关心颜色管理,因此我建议您选择 CMYK(因为那是您正在使用的 ProcessColorModel),而不是 UseDeviceIndependentColor。请注意,如果您选择 ColorConversionStrategy=/CMYK,则不需要设置 ProcessColorModel,这是从转换中假定的。

除此之外,我不得不建议你打开一个错误报告。如果人们不报告问题,那么他们将不会得到解决......

于 2017-05-31T13:59:47.527 回答
0

正确的 PDF/A 兼容替代品UseCIEColor似乎是以下两个选项的组合:

 -sProcessColorModel=DeviceCMYK
 -sColorConversionStrategy=UseDeviceIndependentColor

两者都DeviceCMYKDeviceRGB我工作。

于 2019-12-31T11:18:05.187 回答