50

有没有办法使用 ghostscript 将 PDF 转换为 PDF/A 或 PDF/X?我知道它可以用来将PDF转换为图像,但我不知道它是否可以用来转换PDF/A。我应该使用哪些参数?

4

5 回答 5

62

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

希望这会帮助一些人!

于 2012-02-18T18:16:14.933 回答
22

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

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

安装它

在 Mac OS中,您可能更喜欢使用Homebrew

brew install ghostscript

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

wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs919/ghostscript-9.19-linux-x86_64.tgz

如果您在 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

在 Macgs-919-linux_x86_64中将是简单gs的 .

请注意,output_file.pdfandinput_file.pdf必须更改为输出文件(转换后的文件)和输入文件(要转换的文件)的名称。/path/to/PDFA_def.ps是您的文件副本PDFA_def.ps

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

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

是什么PDFA_def.ps

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

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

wget http://tutankhamon.acc.umu.se/mirror/archive/ftp.sunet.se/pub/vendor/adobe/adobe/iccprofiles/win/

在该 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

于 2016-09-09T23:09:48.843 回答
15

@danio,@imgen:即使是最近发布的关于 PDF/X(标准化印前要求)和 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

输出文件将声明自己为 PDF/A(大多数 PDF 查看器会很乐意接受),但输出文件未通过所有真正的合规性测试。

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

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

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

于 2010-08-14T14:39:07.127 回答
10

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

gs -dPDFA -dBATCH -dNOPAUSE -sColorConversionStrategy=UseDeviceIndependentColor -sDEVICE=pdfwrite -dPDFACompatibilityPolicy=2 -sOutputFile=output_filename.pdf input_filename.pdf

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

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

于 2019-06-05T10:52:43.007 回答
-1

如果您使用 Windows 并想明确创建 PDF/A-1b 文档(PDFCreator 有 PDF/A-2b 的输出选项,但 PDF/A-1b 没有),您只需将上述参数 Artur 输入到PDFCreator 的 ui 设置,没有文档名称的设置。启动 PDFCreator,选择打印机菜单,然后转到设置。现在,'Ghostscript'从左侧的设置列表中进行选择。在 下'additional ghostscript settings',输入如下:

-dPDFA|-dBATCH|-dNOPAUSE|-dUseCIEColor|-sProcessColorModel=DeviceCMYK|-sDEVICE=pdfwrite|-sPDFACompatibilityPolicy=1

单击'Save',然后从 MS Word 或您想要使用 PDFCreator 的任何其他应用程序打印一些内容 - 它将在 PDF/A-1b 中创建。

问候,弗里茨

于 2018-09-05T07:29:43.500 回答