目前Ghostscript能否将PDF转换为PDF/X?

4
打印厂要求我的论文PDF符合PDF/X1a:2001标准。内容文件是使用XeTeX LaTeX编译的,第二个PDF是使用Inkscape 0.48设计的封面。我在这篇文章中找到了最接近的答案:https://dev59.com/E3I-5IYBdhLWcg3w0MHx#3483801,如果我理解正确,至少可以使用Ghostscript将PDF转换为PDF/X。

如上所述,将文件转换为PDF/X需要一个有效的ICC配置文件。我联系了印刷厂,他们提供了他们首选的文件ISOcoated_v2_300_eci.icc。我将.icc文件添加到目标PDF文件的相同文件夹中(感谢VadimR的提示)。

Ghostscript
我使用了命令行中的此脚本,但它没有起作用:

gswin32c -dPDFX -dBATCH -dNOPAUSE -dNOOUTERSAVE -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sOutputFile=outputfile.pdf PDFX_def.ps doctorate.pdf  

我会尽力进行翻译。以下是您需要翻译的内容:

我花了一些时间做了220页,但效果很糟糕,不尽人意。

PDFX_def.ps的内容:

%!
% This is a sample prefix file for creating a PDF/X-3 document.
% Feel free to modify entries marked with "Customize".

% This assumes an ICC profile to reside in the file (ISO Coated sb.icc),
% unless the user modifies the corresponding line below.

systemdict /ProcessColorModel known {
  systemdict /ProcessColorModel get dup /DeviceGray ne exch /DeviceCMYK ne and
} {
  true
} ifelse
{ (ERROR: ProcessColorModel must be /DeviceGray or DeviceCMYK.)=
  /ProcessColorModel cvx /rangecheck signalerror
} if

% Define entries to the document Info dictionary :

/ICCProfile (ISOcoated_v2_300_eci.icc) def  % Customize or remove.
%/ICCProfile (ISO Coated sb.icc) def  % Customize or remove.

[ /GTS_PDFXVersion (PDF/X-3:2002) % Must be so (the standard requires).
  /Title (Title)                  % Customize.
  /Trapped /False                 % Must be so (Ghostscript doesn't provide other).
  /DOCINFO pdfmark

% Define an ICC profile :

currentdict /ICCProfile known {
  [/_objdef {icc_PDFX} /type /stream /OBJ pdfmark
  [{icc_PDFX} <</N systemdict /ProcessColorModel get /DeviceGray eq {1} {4} ifelse >> /PUT pdfmark
  [{icc_PDFX} ICCProfile (r) file /PUT pdfmark
} if

% Define the output intent dictionary :

[/_objdef {OutputIntent_PDFX} /type /dict /OBJ pdfmark
[{OutputIntent_PDFX} <<
  /Type /OutputIntent              % Must be so (the standard requires).
  /S /GTS_PDFX                     % Must be so (the standard requires).
  /OutputCondition (Commercial and specialty printing) % Customize
  /Info (none)                     % Customize
  /OutputConditionIdentifier (CGATS TR001)      % Customize
  /RegistryName (http://www.color.org)   % Must be so (the standard requires).
  currentdict /ICCProfile known {
    /DestOutputProfile {icc_PDFX}  % Must be so (see above).
  } if
>> /PUT pdfmark
[{Catalog} <</OutputIntents [ {OutputIntent_PDFX} ]>> /PUT pdfmark

那么,我遗漏了什么?

备注

  • Windows 7 32位操作系统
  • 不需要商业软件

该错误信息仅表示GS无法找到您的ICC配置文件。将其放入当前目录(与输入文件相同)。我认为您还需要将(PDF/X-3:2002)更改为(PDF/X-1a:2001)并添加-sColorConversionStrategy=CMYK。请查看此处以获取可能需要的其他参数。请注意,如果输入确实包含RGB,并且文件对颜色要求严格(即使是简单的文本或图形也需要纯黑而不是CMYK黑),最好由专业人员完成此工作。 - user2846289
@VadimR 谢谢,将 .icc 文件放在目标 PDF 的同一文件夹中使 GS 工作了,但似乎并不是最好的方法,正如您所指出的。只支持 X-3(最新版本),而不支持 X-1。我现在考虑使用 pdflatex 编译整个论文,而不是 xelatex,只是为了让一个有 bug 的包 pdfx 来完成工作,即使它符合 PDF/X-1a:2001 标准。我不知道。 - doctorate
由于这看起来像是一次性任务,您可以考虑获取Adobe Acrobat XI并使用试用期一个月。在Acrobat中,转换为PDF-X1a是预检工具的内置部分。或者,您可以设置Distiller设置,当处理PS文件时会创建PDF-X1a。为了使事情更好,询问印刷店他们更喜欢哪个ICC配置文件(ISO Coated v2 300是标准胶印机配置文件,但如果使用数字打印机,则可能有自己的配置文件,或者您可以使用ISO Coated v2 330)。 - Max Wyss
@MaxWyss 如果是这样,我想知道为什么这些超级富有的印刷厂不为穷人客户自己做,从一开始就节省他们所有的罪恶感,而不是使用CYMK?更好的是出售此服务,我们会欣然接受。 - doctorate
如果您要求并支付这样的服务,他们会提供。 - Max Wyss
1个回答

3
您可以生成PDF/X文件,但不能生成PDF/X1。我记得PDF/X-1要求所有颜色都以CMYK或灰度指定,而旧版本的pdfwrite无法做到这一点,当前版本可以,但需要进行其他工作以使其与PDF/X-1兼容,我不确定这是否值得努力。
请参见错误报告

这个PDF/X实际上是PDF/X-3吗?我从Ghostscript文档http://ghostscript.com/doc/current/Ps2pdf.htm#PDFX中读到了这个想法(抱歉,我对这些术语还很陌生)。另外,最新的Ghostscript能否将PDF转换为PDF/X-4? - LaBird
1
是的,它是PDF/X-3格式,不过我们目前不支持PDF/X-4的制作。就我记得,并没有什么特别激动人心的东西涉及到PDF/X-4,所以解决问题应该很容易。PDF/X的主要作用在于强制限制。 - KenS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接