我这几天一直在努力,所以我想我会在这里寻求帮助......
基本上,我正在尝试使用ps2pdf(版本9.10)来创建正确的PDF / X-1和PDF / X-3文档。是的,我知道ps2pdf据说只支持PDF / X-3(见this thread和this thread和this thread)。但是,由于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:我可以通过将“/ GTS_PDFXVersion(PDF / X-1a:2003)”添加到PDFX_def.ps并通过Adobe的Preflight运行文件来确认。
这让我想到问题的第一部分:如何防止原始PDF文档中定义的RGB颜色转换为CMYK?开关“-dColorConversionStrategy = / LeaveColorUnchanged”似乎没有任何效果。 (实际上,我读到here这种转换甚至不可能。那么,它为什么会发生?或者这是过时的信息吗?)
其次,为什么documentation与“-dPDFX”结合使用“RGB不被允许”?这不是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
提前致谢!
答案 0 :(得分:3)
确定首先,无法目前使用pdfwrite生成PDF / X-1,因为PDF / X-1中的颜色支持有限制。实际上几乎可以立即执行,但Separation和DeviceN颜色空间不会转换为设备空间,并且需要。
其次,你应该使用当前版本的Ghostscript(9.16)。
正如您在回答中提到的那样,文档说明您无法使用/ RGB。因此,将RGB颜色转换为CMYK的原因是因为您无法使用RGB(请参阅后面的内容)。
你引用的Ghostscript错误报告是5年,5年前的真实情况不再是真的(当9.10在近2年前发布时并非如此)。但是,正如我在上面注意到的那样,你仍然无法生成PDF / X-1,这就是bug仍然存在的原因。已经完成了一些工作,还有更多工作要做。
将ColorConversionStrategy与PDFX一起设置无效,因为PDFX的颜色转换要求从命令行取代ColorConversion。
除非您指定的DefautlRGB色彩空间本身不是DeviceRGB或DeviceN空间,否则您无法在PDF / X-1文档中使用DeviceRGB空间。我记得目前在pdfwrite中没有指定DefaultRGB空间的规定,这就是为什么你不能使用DeviceRGB。
最后;不,你还不能使用pdfwrite设备生成PDF / X-4文件。
答案 1 :(得分:2)
好的,KenS的答案应该被接受为这个问题的正确答案,但是已经参与了标准工作了几年(现在大约十五岁):),我想补充一些更一般的语句。
<强> PDF / X-1A 强>
请参阅PDF / X-1a,而不是PDF / X-1。这是两个不同的事情,虽然目前没有人使用PDF / X-1,但最好使用标准的正确名称,其中包括&#34; a&#34;。
PDF / X-3和RGB
原始问题中的陈述&#34;而不是将它们留在RGB中(应该是PDF / X-3的情况)&#34;不正确或至少具有误导性(虽然我认为意图是正确的)。
PDF / X-1a和PDF / X-3之间的区别确实是PDF / X-3支持CMYK以外的色彩空间。但这并不意味着CMYK不被允许,或者您不能完全将PDF / X-3用于仅CMYK文件。事实上,大多数使用&#34; PDF / X-3&#34;我所知道的只是使用CMYK文件。
是的,如果你有一个仅包含CMYK和/或专色的PDF / X-3文件,并且你将标准元数据字段更改为PDF / X-1a,那么你最终会得到一个有效的PDF / X-1a文件;这些标准之间的差别很小。