2017-09-04 124 views
-1

我试过这个命令:错误将PDF转换为PDF/A

gs -dPDFA -dBATCH -dNOPAUSE -sProcessColorModel=DeviceRGB -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=/tmp/test/pdfa/pdftopdfa.pdf /tmp/test/pdftopdfa.pdf 

但我得到这个错误:

Artifex Ghostscript 9.14: Can't find initialization file gs_init.ps.

我尝试另一个命令:

gs -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=/tmp/test/pdfa/23238input.xml_2.pdf 23238input.xml_2.pdf 

但我得到这个错误:

Artifex Ghostscript 9.14 (2014-03-26) Copyright (C) 2014 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Can't find (or open) initialization file (gs_std_e.ps) Unrecoverable error: undefined in .uninstallpagedevice Operand stack: gs_std_e.ps gs_std_e.ps gs_std_e.ps

回答

1

首先你使用的是旧版本的Ghostscript,你应该升级。

其次,无论您从何处获得它的非标准,因为它具有存储在磁盘上的PostScript资源,默认情况下它们将作为ROM文件系统构建到二进制文件中。

最后似乎是磁盘上的资源丢失或损坏。您可以搜索它们,它们通常位于/ usr/local/bin/ghostpdl/Resource之类的位置,然后使用-I开关将该路径呈现给Ghostscript,以便它知道在哪里寻找。

但是由于它的旧版本,我建议你改为使用最新版本(9.21)。如果你拿到一个软件包,但是不能工作,那么你应该向软件包维护者投诉。如果你觉得它可以,你可以简单地克隆Ghostscript Git仓库并自己构建它,如果你有一个工作的C编译器(gcc),它不难。最后,有预制的Linux二进制文件here其中可能在您的系统上工作,具体取决于您的设置。

在你的命令行上有几个注释;您尚未指定PDFA_def.ps文件,您必须执行该文件才能创建有效的PDF/A文件,请参阅此documentation,但请注意这是当前的9.21文档。如果您没有提供该文件(从提供的型号中正确修改),那么您将无法创建符合要求的PDF/A文件。

不要使用-dUseCIEColor,除非你有一个很好的理由,如果你不知道它做什么(我猜你不这样做),那么你没有一个很好的理由。如果您在不理解的情况下使用它,只会对性能产生不利影响,并可能导致色彩还原不佳。