我为这事挣扎了几天,所以我想我应该在这里寻求帮助.
基本上,我试图使用ps2pdf (版本9.10)来创建正确的PDF/X-1和PDF/X-3文档。是的,我知道ps2pdf据说只支持PDF/X-3 (参见这条线、这条线和这条线)。然而,由于PDF/X-1基本上是PDF/X-3的子集,我想这种转换应该是可能的。还有,使用命令..。
gs -sDEVICE=pdfwrite -dPDFX -dBATCH -dNOPAUSE -dNOOUTERSAVE -sProcessColorModel=DeviceCMYK -sOutputFile=out.pdf PDFX_def.ps in.pdf我注意到,我正在创建的PDF/X-3文件的颜色被转换为CMYK,而不是留在RGB中(PDF/X-3应该是这种情况)。因此,从技术上讲,这些文件现在是PDF/X-1:,我可以通过在PDFX_def.ps中添加“PDFX_def.ps (PDF/X-1a:2003)”来确认这一点,并通过Adobe的预运行来运行该文件。
这就引出了问题的第一部分:如何防止在原始PDF文档中定义的RGB颜色被转换为CMYK?开关"-dColorConversionStrategy=/LeaveColorUnchanged“似乎没有任何效果。(实际上,我在这里上读到过这样的转换是不可能的。为什么会发生这种事?或者这是过时的信息?)
其次,为什么文档说“不允许”与"-dPDFX“结合使用?这不是PDF/X-3的全部内容吗?
第三,是否也可以创建通过Adobe预飞的PDF/X-4文档?
顺便提一下,这是我的PDFX_def.ps文件:
%!
% $Id$
% 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 (Blurb_ICC_Profile.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.
[ /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 (ISOcoated_v2_300_eci.icc) % Customize
/Info (Info) % Customize
/OutputConditionIdentifier (Custom) % 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提前感谢!
发布于 2015-05-25 11:12:31
好的,首先,您的不能产生PDF/X-1目前使用pdfwrite,因为在PDF/X-1的颜色支持的限制。这实际上是几乎有可能做到现在,但分离和DeviceN颜色空间没有转换为设备空间,并需要。
其次,您应该真正使用Ghostscript的当前版本(9.16)。
正如您在后面的回答中指出的那样,文档声明您不能使用/RGB。因此,您的RGB颜色转换为CMYK的原因是,您不能使用RGB (请稍后参阅)。
您所引用的Ghostscript bug报告已有5年历史,5年前的情况不再是真的( 9.10在将近2年前发布时也不是这样)。但是,正如我前面提到的,您仍然不能生成PDF/X-1,这就是为什么bug仍然是开放的。已经做了一些工作,还有更多工作要做。
将ColorConversionStrategy与PDFX一起设置没有效果,因为PDFX的颜色转换要求取代了命令行中的ColorConversion。
您不能在PDF/X-1文档中使用DeviceRGB空间,除非您指定一个DefautlRGB颜色空间,它本身不是DeviceRGB或DeviceN空间。据我回忆,pdfwrite中目前没有关于指定DefaultRGB空间的规定,这就是为什么不能使用DeviceRGB。
最后,您还不能使用pdfwrite设备生成PDF/X-4文件。
发布于 2015-05-25 15:17:34
好的,KenS的答案应该被接受为这个问题的正确答案,但是在从事标准工作几年(现在大约十五年:)之后,我想添加一些更一般性的陈述。
PDF/X-1a
请参阅PDF/X-1a,而不是PDF/X-1。这是两个不同的东西,虽然目前没有人使用PDF/X-1,但最好使用标准的正确名称,其中包括"a“。
PDF/X-3和RGB
原问题中的陈述“而不是把它们留在RGB (PDF/X-3应该是这样)”是不正确的,或者至少是误导性的(尽管我认为意图是正确的)。
PDF/X-1a和PDF/X-3之间的区别实际上是PDF/X-3支持CMYK以外的颜色空间。但这并不意味着CMYK是不允许的,或者您不能很好地将PDF/X-3用于仅用于CMYK的文件。事实上,据我所知,大多数使用"PDF/X-3“的实现仅仅使用CMYK文件。
是的,如果您有一个只包含CMYK和/或spot颜色的PDF/X-3文件,并且将标准元数据字段更改为PDF/X-1a,您将得到一个有效的PDF/X-1a文件;这些标准之间的差别很小。
https://stackoverflow.com/questions/30434868
复制相似问题