如何使用ghostscript将PDF转换为PDF/A或PDF/X?

img*_*gen 40 pdf ghostscript pdfa

有没有办法使用ghostscript将PDF转换为PDF/A或PDF/X?我知道它可用于将PDF转换为图像,但我不知道它是否可用于转换PDF/A. 我应该使用什么参数?

Art*_*tur 48

这是将pdf文档(不是pdf/a)转换为pdf/a: gs -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=output_filename.pdf input_filename.pdf

希望这会有所帮助!

  • 根据以下内容设置兼容性策略的正确方法是“-dPDFACompatibilityPolicy=1”:/sf/ask/4001744911/Detected -in-docinfo (4认同)
  • gs输出不推荐CIE; CMYK让我的一些页面变蓝了.我只是使用`gs -dPDFA -dBATCH -dNOPAUSE -sProcessColorModel = DeviceRGB -sDEVICE = pdfwrite -sPDFACompatibilityPolicy = 1 -sOutputFile = output_filename.pdf input_filename.pdf`并且它有效. (3认同)
  • 我尝试使用``veraPDF````(PDF/A 一致性检查器)验证生成的 PDF。输出发现 3 个验证错误:1) ```仅当文件具有使用 RGB 颜色空间的 PDF/A-1 OutputIntent 时才能使用```。2) ```注释字典不得包含 C 数组或 IC 数组,除非 6.2.2 中定义的 PDF/A-1 OutputIntent 字典中 DestOutputProfile 的颜色空间为 RGB``` 和 3) ` “仅当文件具有使用 CMYK 色彩空间的 PDF/A-1 OutputIntent 时,才可以使用 DeviceCMYK”。 (2认同)

mot*_*bói 15

希望这个答案可以帮助来自Google的其他人遇到同样的问题:

要将PDF转换为PDFA-1b或PDFA-2b,您可以使用Ghostscript.我建议你使用最新版本(今天9.19).

安装它

在Mac OS中,您可能更喜欢使用自制程序:

brew install ghostscript
Run Code Online (Sandbox Code Playgroud)

在Linux中,一些发行版带来了更旧的版本(rhel7 sports 9.07).要下载完全独立的现代单文件ghostscript,请直接从网站下载:

wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs919/ghostscript-9.19-linux-x86_64.tgz
Run Code Online (Sandbox Code Playgroud)

如果您在20年后尝试上述链接时,请参阅ghostscript.com并搜索下载部分.下载二进制版本,不要去源,除非你知道你在做什么.

在Windows中,我无法帮助您,但如果您设法安装它,如果您替换文件和gs可执行文件的位置,以下命令也将起作用.

命令行

gs-919-linux_x86_64 -dPDFA=1 -dNOOUTERSAVE -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -o output_file.pdf /path/to/PDFA_def.ps -dPDFACompatibilityPolicy=1 input_file.pdf
Run Code Online (Sandbox Code Playgroud)

请注意,output_file.pdfinput_file.pdf必须变为输出文件(转换后的文件),并输入文件的名称(文件转换)./path/to/PDFA_def.ps是你的文件副本PDFA_def.ps.

-dPDFA=1 适用于PDFA-1b.

-dPDFA=2 如果你想要PDFA-2b.

什么是PDFA_def.ps

PDFA_def.ps是ghostscript用于创建PDFA文件的某种模板.棘手的部分是,由于某种原因,ghostcript带有一个非工作文件.

您需要编辑PDFA_def.ps并包含有效ICC(颜色配置文件)文件的路径.从Adobe下载好的颜色配置文件:

brew install ghostscript
Run Code Online (Sandbox Code Playgroud)

在该zip文件中,找到一个名为的文件AdobeRGB1998.icc,将其放在某处并将该文件的路径放在PDFA_def.ps文件中.

这是PDFA_def.ps的一个版本,更改PATH_TO_YOUR_ICC_FILE为您的路径AdobeRGB1998.icc.

https://gist.githubusercontent.com/weltonrodrigo/19df77833f023fbe1572168982e4b515/raw/ea86e87379d14120d7ff26f6f235ac7eeb5f5dd5/PDFA_def.ps


Kur*_*fle 14

@danio,@ imgen:即使是最近发布的关于PDF/X(标准化Prepress要求)和PDF/A(标准化存档要求)一代的文档页面也颇具误导性.(您的链接指向v8.63版本.)最后,它建议使用示例运行示例命令行PDF*_def.ps已经生成了有效的PDF/A和PDF/X文件.

但是,他们没有!

这是一个示例命令,它本身是正确的:

  gs \
    -dPDFA \
    -dBATCH \
    -dNOPAUSE \
    -dNOOUTERSAVE \
    -dUseCIEColor \
    -sDEVICE=pdfwrite \
    -sOutputFile=out-a.pdf \
     PDFA_def.ps \
     input.ps
Run Code Online (Sandbox Code Playgroud)

输出文件将声明为PDF/A(并且大多数PDF查看器都会很满意),但输出文件无法通过所有真正的一致性测试.

修复很简单:您需要编辑样本PDFA_def.ps(对于PDF/X:您的PDFX_def.ps)文件以匹配您的环境.在较旧的文档版本中没有明确说明这些必需的编辑,并且提供的命令表明它可以开箱即用.

特别是在PDF/X的情况下,您必须指定要使用的有效ICC配置文件.

另请参阅有关此内容的更新文档(当前SVN中继版本):


Cyd*_*ric 8

请注意,当前的答案并不完全正确。您可以定义所需的 PDF/A 级别,从而导致程序的不同行为。这个是对的:

gs -dPDFA -dBATCH -dNOPAUSE -sColorConversionStrategy=UseDeviceIndependentColor -sDEVICE=pdfwrite -dPDFACompatibilityPolicy=2 -sOutputFile=output_filename.pdf input_filename.pdf
Run Code Online (Sandbox Code Playgroud)

请注意我从s dPDFACompatibilityPolicy更改为d PDFACompatibilityPolicy。将其更改为更高的数字以获得其他版本。如果您不需要 DOCINFO,则 1 很好。此外,我们使用UseDeviceIndependentColor选项来避免验证问题。

如果您在此处更改选项,您很可能会得到不合规的 PDF/A(即使声明不同)。您可以在此处查看您的 pdf/a:https : //www.pdf-online.com/osa/validate.aspx