Ghostscript:为什么我必须为PDF/a转换提供pdfa_def.ps?

Ghostscript:为什么我必须为PDF/a转换提供pdfa_def.ps?,pdf,ghostscript,Pdf,Ghostscript,Ghostscript有文档描述。我知道怎么做 我不明白的是为什么这个过程是必要的。特别是: 为什么必须指定输出ICC配置文件(-soutputicprofile)?不能从颜色转换策略或过程颜色模型的选择中推断默认值吗 为什么我必须在PDFA_def.ps中提供输出ICC配置文件的完整文件路径?如果没有指定路径,为什么Ghostscript不能假定我指的是它自己的ICC配置文件之一 为什么我必须同时指定ICC配置文件路径和ICC配置文件的/OutputConditionIdentifier?一

Ghostscript有文档描述。我知道怎么做

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

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

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

PDF/a意味着颜色管理工作流,因此:

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

2) 重影脚本配置文件用于输入,即从PostScript颜色空间的适当表示转换为CIE XYZ空间。不用于从XYZ特定颜色空间的转换

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

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


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

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