Ghostscript:为啥我必须为 PDF/A 转换提供 pdfa_def.ps?

Posted

技术标签:

【中文标题】Ghostscript:为啥我必须为 PDF/A 转换提供 pdfa_def.ps?【英文标题】:Ghostscript: why must I provide a pdfa_def.ps for PDF/A conversion?Ghostscript:为什么我必须为 PDF/A 转换提供 pdfa_def.ps? 【发布时间】:2016-02-29 16:55:28 【问题描述】:

Ghostscript 有描述how to create a PDF/A 的文档。我知道该怎么做。

我不明白为什么这个过程是必要的。特别是:

为什么必须指定输出 ICC 配置文件 (-sOutputICCProfile)?不能从颜色转换策略或印刷色模型的选择中推断出默认值吗? 为什么我必须在PDFA_def.ps 中提供输出 ICC 配置文件的完整文件路径?如果没有指定路径,为什么 Ghostscript 不能假定我的意思是它自己的 ICC 配置文件之一? 为什么我必须同时指定 ICC 配置文件路径和 ICC 配置文件的 /OutputConditionIdentifier?不能从另一个获得吗? 为什么我必须提供pdfa_def.ps,这似乎是Ghostscript 在大多数情况下可以生成的样板并具有合理的默认值? (/DOCINFO 块可以通过命令行传递;ICC 配置文件块似乎是基于命令行参数自行生成的;输出意图字典只需要 Ghostscript 已经知道的颜色配置文件名称。)

就此而言,颜色转换适用于文档中的图像还是仅适用于 Postscript 绘图?

【问题讨论】:

【参考方案1】:

PDF/A 意味着色彩管理工作流程,因此:

1) 不,您不能从颜色转换策略的选择中推断出 ICC 配置文件,因为它是不正确的。您需要指定一个 OutputICCProfile。

2) Ghostscript 配置文件用于输入,即将 PostScript 颜色空间的体面表示转换为 CIE XYZ 空间。不适用于 XYZ 特定色彩空间的转换。

3) ICC 配置文件的名称(通常)可以从配置文件的 desc 标记中读取,但 PDF 输出代码不会检查配置文件内容,它只是将其嵌入。我认为“名称”是指配置文件空间的人类可读描述,即 OutputConditionIdentifier。

4) pdfa_def.ps 的内容并不完全是样板文件,它是一个 PostScript 程序。是的,我们可以添加到 Ghostscript 命令行选项的(已经非常混乱且令人难以置信的长)列表中,但是由于已经有执行这些任务的机制,因此我们选择使用 PostScript(pdfmark 运算符)将其用于大多数配置。不能以这种方式处理的部分被定义为命令行参数(例如-dPDFA)。 PostScript 编程也比命令行参数灵活得多。

最后,颜色转换适用于一切,无论输入语言是什么; PDF、PostScript、XPS、PCL、PXL。

【讨论】:

澄清一下,-sOutputICCProfile 通常应该设置为与 pdfa_def.ps 中的 /ICCProfile 条目相同的文件名吗?此外,我使用 Ghostscript 和 Acrobat 创建了 Adob​​eRGB JPEG 的 sRGB PDF/A。这两个程序都插入了 sRGB 和 Adob​​eRGB 配置文件,大概将其留给查看者执行颜色转换。为什么 ColorConversionStrategy 在这种情况下不执行 Adob​​eRGB -> sRGB? 在使用 pdfa_def.ps 创建 PDF/A 时,通常不应设置 -sOutputICCProfile。如果不查看输入文件并知道使用了哪些参数,我无法回答您的其他问题。但是,pdfwrite 根本不会创建 sRGB PDF 文件,如果您要求 sRGB,我们会转换为 RGB。请注意,在 PDF/A 文件中包含基于 ICC 的颜色空间是完全合法的,因此完全有可能这就是您所拥有的。为了从“adobe RGB”“转换”到 sRGB,我们需要将颜色转换为 CIE,然后再转换回来,这会损害性能,尤其是图像的性能。 谢谢。它看起来像是一个基于 ICC 的色彩空间。 怀疑,但如果不了解更多信息,我无法确定 JPEG 本身包含 ICC 配置文件。您不能使用 Ghostscript 将 JPEG 更改为 PDF,但您可以对其进行编程(使用 PostScript)。在这种情况下,它可能会嵌入未更改的 JPEG,因此如果它包含 ICC 配置文件,那么它将在之后保留。我想 Acrobat 的工作方式类似。

以上是关于Ghostscript:为啥我必须为 PDF/A 转换提供 pdfa_def.ps?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ghostscript 将可搜索的 PDF 转换为可搜索的 PDF/A

通过 Ghostscript 将 PS 文件转换为 PDF/A,色彩空间问题

使用 Ghostscript 将 PDF 转换为 PDF/A 时出错

GhostScript 和 PDF/A?

在 Ghostscript 中处理 PDF/A 兼容性

如何使用 Ghostscript 和 Ghostscript .NET 通过嵌入 IIC 配置文件生成正确的 PDF/A