我很难得到ImageMagick的identify
,确定PDF为CMYK。
基本上,假设我正在用pdflatex
构build这个文件test.tex
:
\documentclass[a4paper,12pt]{article} %% https://tex.stackexchange.com/questions/13071 \pdfcompresslevel=0 %% http://compgroups.net/comp.text.tex/Making-a-cmyk-PDF %% ln -s /usr/share/color/icc/sRGB.icm . % \immediate\pdfobj stream attr{/N 4} file{sRGB.icm} % \pdfcatalog{% % /OutputIntents [ << % /Type /OutputIntent % /S/GTS_PDFA1 % /DestOutputProfile \the\pdflastobj\space 0 R % /OutputConditionIdentifier (sRGB IEC61966-2.1) % /Info(sRGB IEC61966-2.1) % >> ] % } %% http://latex-my.blogspot.com/2010/02/cmyk-output-for-commercial-printing.html %% https://tex.stackexchange.com/questions/9961 \usepackage[cmyk]{xcolor} \begin{document} Some text here... \end{document}
如果我然后尝试识别生成的test.pdf
文件,我将它作为RGB,无论我尝试了什么选项(至less根据源中的链接) – 然而,它的颜色将被保存为CMYK; 对于上面的源代码:
$ grep -ia 'cmyk\|rgb\| k' test.pdf 0 0 0 1 k 0 0 0 1 K 0 0 0 1 k 0 0 0 1 K 0 0 0 1 k 0 0 0 1 K 0 0 0 1 k 0 0 0 1 K FontDirectory/CMR12 known{/CMR12 findfont dup/UniqueID known{dup /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.11-2.2 (TeX Live 2010) kpathsea version 6.0.0) $ identify -verbose 'test.pdf[0]' ... Type: Palette Endianess: Undefined Colorspace: RGB Depth: 16/8-bit Channel depth: red: 8-bit green: 8-bit blue: 8-bit Channel statistics: Red: ... Green: ... Blue: ... Histogram: 5: (12593,11565,11822) #31312D2D2E2E rgb(49,45,46) 4: (16448,15420,15677) #40403C3C3D3D rgb(64,60,61) 9: (20303,19275,19532) #4F4F4B4B4C4C rgb(79,75,76) 25: (23901,23130,23387) #5D5D5A5A5B5B rgb(93,90,91) ...
如果我也取消注释\immediate\pdfobj stream ...
部分相同的几乎发生; 但是,如果文档中只有一种颜色(黑色),我不会看到identify
出RGB值的直方图(尽pipe可以说所有这些都接近灰色)?
所以不要这样,然后我尽量用ghostscript
把test.pdf
转换成一个新的pdf,这个pdf会被识别为CMYK – 但是没有运气,
$ gs -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=test-gs.pdf -dUseCIEColor -sProcessColorModel=DeviceRGB -dProcessColorModel=/DeviceCMYK -sColorConversionStrategy=/CMYK test.pdf GPL Ghostscript 9.01 (2011-02-07) Copyright (C) 2010 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 1. Page 1 $ identify -verbose 'test-gs.pdf[0]' ... Type: Grayscale Base type: Grayscale Endianess: Undefined Colorspace: RGB Depth: 16/8-bit ...
所以唯一identify
为变化的东西就是Type: Grayscale
(从前面的Type: Palette
); 但除此之外,它仍然看到一个RGB色彩空间!
除此之外,请注意identify
能够正确报告CMYK pdf – 请参阅CMYK海报示例:将pdf页面大小拟合(位图)图像大小? #17843 – TeX – LaTeX – Stack Exchange为使用convert
和gs
生成这样的PDF文件的命令行示例。 其实我们可以执行:
convert test.pdf -depth 8 -colorspace cmyk -alpha Off test-c.pdf
…这将导致与PDF将被identify
为CMYK – 但是,PDF也将光栅化(默认在72 dpi)。
编辑:我刚刚发现,如果我在OpenOffice中创build.odp演示文稿,并将其导出到PDF; PDF将默认为RGB,但是,下面的命令(来自ghostscript Examples | Production Monkeys ):
# Color PDF to CMYK: gs -dSAFER -dBATCH -dNOPAUSE -dNOCACHE -sDEVICE=pdfwrite \ -sColorConversionStrategy=CMYK -dProcessColorModel=/DeviceCMYK \ -sOutputFile=output.pdf input.pdf
…实际上将产生一个CMYK pdf,通过identify
报告(虽然,黑色将是丰富的,不平凡 – 在所有四个渠道); 然而,这个命令只有当幻灯片有一个添加的图像(显然,它是一个触发颜色转换?!)! 有趣的是,我无法从pdflatex
PDF获得同样的效果。
所以我想我的问题可以通过两种方式提出:
identify
被识别为(因此将build立正确的CMYK颜色直方图) identify
,即使在pdflatex
的原始test.pdf
正确识别CMYK颜色的使用( 并可能基于任意select的PDF页面构build颜色直方图,到 )? 预先感谢任何答案,
干杯!
一些参考:
它是例如指定为“0 0 0 1 setcmykcolor”? 或者可能更像是“0 0 0 setrgbcolor”? 在后一种情况下,如果将DeviceRGB重新映射到基于CIE的颜色空间,以便获得RGB图像的颜色pipe理,则最终会产生丰富的黑色文本。
sdaau,您尝试将PDF转换为CMYK的命令不正确。 试试这个:
gs \ -o test-cmyk.pdf \ -sDEVICE=pdfwrite \ -sProcessColorModel=DeviceCMYK \ -sColorConversionStrategy=CMYK \ -sColorConversionStrategyForImages=CMYK \ test.pdf
如果颜色转换不能按要求工作,并且如果看到类似“无法将颜色空间转换为灰色,将策略还原为LeaveColorUnchanged”的消息,则…
在这种情况下,将-dOverrideICC
添加到命令行,并查看是否根据需要更改了结果。
正如@Marein所评论的,如果你想避免出现在图像中的JPEG伪像(以前没有),你应该添加
-dEncodeColorImages=false
进入命令行。
(对于几乎所有的GS PDF-> PDF处理都是如此,而不仅仅是这种情况。因为当默认GS在被要求产生PDF输出时默认创建一个全新的文件,新构建的对象和新的文件结构 – 它不简单地重复使用以前的对象,像pdftk
那样更“笨”的PDF处理器{ pdftk
还有其他优点,不要误解我的说法!} GS默认应用JPEG压缩 – 查看当前的Ps2pdf文档 ,搜索“ColorImageFilter”以了解更多细节…)
我有一个无关紧要的问题,但是我现在也在苦于CMYK PDFs。
我在这里写了这个小脚本(叫做pdf2pdfx):
#!/bin/bash gs \ -dPDFX \ -dBATCH \ -dNOPAUSE \ -dNOOUTERSAVE \ -sDEVICE=pdfwrite \ -sColorConversionStrategy=CMYK \ -dProcessColorModel=/DeviceCMYK \ -dPDFSETTINGS=/prepress \ -sOutputFile="${1%%.pdf}_X-3.pdf" \ PDFX_def.ps \ "$1"
和我的PDFX_def.ps包含以下(我删除了ICC配置文件和定义FOGRA39,这应该是):
%! % $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 (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 (/usr/share/color/icc/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 (Commercial and specialty printing) % Customize /Info (none) % Customize /OutputConditionIdentifier (FOGRA39) % 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
确定然后正确地报告CMYK颜色空间。 之前:
tbart@blackknight ~/orpheus/werbung/action $ identify -verbose action_schulungsvideo_v3_print.pdf Image: action_schulungsvideo_v3_print.pdf Format: PDF (Portable Document Format) Class: DirectClass Geometry: 612x859+0+0 Resolution: 72x72 Print size: 8.5x11.9306 Units: Undefined Type: TrueColor Endianess: Undefined Colorspace: RGB Depth: 16/8-bit Channel depth: red: 8-bit green: 8-bit blue: 8-bit Channel statistics: Red: min: 0 (0) max: 65535 (1) mean: 53873.6 (0.822058) standard deviation: 19276.7 (0.294144) kurtosis: 1.854 skewness: -1.82565 Green: min: 0 (0) max: 65535 (1) mean: 55385.6 (0.84513) standard deviation: 19274.6 (0.294112) kurtosis: 2.09868 skewness: -1.91651 Blue: min: 0 (0) max: 65535 (1) mean: 51020 (0.778516) standard deviation: 20077.7 (0.306367) kurtosis: 0.860627 skewness: -1.52344 Image statistics: Overall: min: 0 (0) max: 65535 (1) mean: 53426.4 (0.815235) standard deviation: 19546.7 (0.298263) kurtosis: 1.59453 skewness: -1.75701 Rendering intent: Undefined Interlace: None Background color: white Border color: rgb(223,223,223) Matte color: grey74 Transparent color: black Compose: Over Page geometry: 612x859+0+0 Dispose: Undefined Iterations: 0 Compression: Undefined Orientation: Undefined Properties: date:create: 2011-09-14T15:38:57+02:00 date:modify: 2011-09-14T15:38:57+02:00 pdf:HiResBoundingBox: 612.283x858.898+0+0 pdf:Version: PDF-1.5 signature: 210bfc9cf90e3b9505385f8b2267da1665b5c2de28bb5223311afba01718bbeb Artifacts: verbose: true Tainted: False Filesize: 1.577MBB Number pixels: 526KB Pixels per second: 52.57MB User time: 0.020u Elapsed time: 0:01.009 Version: ImageMagick 6.6.5-6 2011-04-08 Q16 http://www.imagemagick.org
后:
tbart@blackknight ~/orpheus/werbung/action $ pdf2pdfx action_schulungsvideo_v3_print.pdf GPL Ghostscript 9.04 (2011-08-05) Copyright (C) 2011 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 1. Page 1 tbart@blackknight ~/orpheus/werbung/action $ identify -verbose action_schulungsvideo_v3_print_X-3.pdf Image: action_schulungsvideo_v3_print_X-3.pdf Format: PDF (Portable Document Format) Class: DirectClass Geometry: 612x859+0+0 Resolution: 72x72 Print size: 8.5x11.9306 Units: Undefined Type: ColorSeparation Base type: ColorSeparation Endianess: Undefined Colorspace: CMYK Depth: 16/8-bit Channel depth: cyan: 8-bit magenta: 8-bit yellow: 8-bit black: 8-bit Channel statistics: Cyan: min: 0 (0) max: 65535 (1) mean: 8331.78 (0.127135) standard deviation: 14902.2 (0.227392) kurtosis: 1.62171 skewness: 1.7799 Magenta: min: 0 (0) max: 62194 (0.94902) mean: 6739.34 (0.102836) standard deviation: 14517.5 (0.221523) kurtosis: 2.08183 skewness: 1.93276 Yellow: min: 0 (0) max: 65535 (1) mean: 13310.1 (0.203098) standard deviation: 17022.5 (0.259746) kurtosis: 0.991135 skewness: 1.45216 Black: min: 0 (0) max: 56540 (0.862745) mean: 7117.47 (0.108606) standard deviation: 16803.7 (0.256408) kurtosis: 3.02752 skewness: 2.16554 Image statistics: Overall: min: 0 (0) max: 65535 (1) mean: 8874.66 (0.135419) standard deviation: 15850.6 (0.241864) kurtosis: 2.17614 skewness: 1.88139 Total ink density: 292% Rendering intent: Undefined Interlace: None Background color: white Border color: cmyk(223,223,223,0) Matte color: grey74 Transparent color: black Compose: Over Page geometry: 612x859+0+0 Dispose: Undefined Iterations: 0 Compression: Undefined Orientation: Undefined Properties: date:create: 2011-09-14T15:39:30+02:00 date:modify: 2011-09-14T15:39:30+02:00 pdf:HiResBoundingBox: 612.28x858.9+0+0 pdf:Version: PDF-1.3 signature: 0416db7487ea147b974ece5748bc4284e82bfc3fb7cd07a4de050421ba112076 Artifacts: verbose: true Tainted: False Filesize: 2.103MBB Number pixels: 526KB Pixels per second: 5.25708PB User time: 0.000u Elapsed time: 0:01.000 Version: ImageMagick 6.6.5-6 2011-04-08 Q16 http://www.imagemagick.org
这是在64位的Gentoo与GNSS 9.04也许这有帮助吗?
源PDF源自inkscape pdf导出,颜色被限制在ECI ISO涂层v2中涵盖的颜色。 我用这个作为一个解决方案,用于缺少inkscape的CMYK导出和缺少印前准备好的PDF / X输出…
好的,至少是…
最初,我需要这样做,以确保我的PDF文件在CMYK,并有文本为“纯黑色”C:0,M:0,Y:0,K:100 – 因为我有问题与以前的打印机,他们会抱怨我的Latex PDF包含“丰富的黑色”的文字(这成本更高)。 而且我通常会去identify
因为它似乎是唯一可以解析PDF和颜色的工具(而且它也相对容易记住)。
那么,我读了技术提示:使用Ghostscript转换和合并文件| Linux Journal ; 在那里建议使用gs
的tiffsep
设备来获得分色。 这对我来说就是和identify
。 我可以这样做:
$ gs -sDEVICE=tiffsep -dNOPAUSE -dBATCH -dSAFER -r150x150 -sOutputFile=p%08d.tif test.pdf $ ls p* p00000001.Black.tif p00000001.Magenta.tif p00000001.Yellow.tif p00000001.Cyan.tif p00000001.tif $ eog p00000001.tif
…然后我可以通过使用左/右箭头“迭代”分离图像 – 如果是“纯黑”或“富黑色”,立即显而易见。
因此,这表明,不管什么identify
显示, pdflatex
的test.pdf
实际上具有“纯黑色”作为文本颜色,正如它应该(其他分隔是空白的) – 然而,执行如下操作:
# do a conversion of original PDF $ gs -dPDFA -dBATCH -dNOPAUSE -dNOOUTERSAVE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sOutputFile=out_pdfa.pdf test.pdf # do a separation on the converted pdf $ gs -sDEVICE=tiffsep -dNOPAUSE -dBATCH -dSAFER -r150x150 \ -dFirstPage=1 -dLastPage=1 -sOutputFile=p%08d.tif out_pdfa.pdf # view $ eog p00000001.tif
…将显示特定的out_pdfa.pdf
实际上具有“丰富的黑色” – 即文字的墨水遍历所有四个分色! (也identify
为RGB的这个)。
所以,我希望这个gs/tiffsep
技术比identify
更可靠:)
注意:我正在使用运行GhostScript 9.01的Ubuntu Natty,但是,它有一个tiffsep
令人讨厌的bug: 错误691857 – 版本9中tiffsep崩溃(缺少lab.icc) 。 这已经被固定为9.02 – 和9.02已经作为ghostscript在oneiric发布。 为了在Natty下使用9.02,我遵循了如何使用apt-get来更新一个包? – Ubuntu论坛 :
sudo nano /etc/apt/sources.list # add deb http://archive.ubuntu.com/ubuntu/ oneiric main restricted sudo apt-get update sudo apt-get install ghostscript # this upgrades only gs and dependencies sudo nano /etc/apt/sources.list # remove/comment oneiric repo sudo apt-get update && sudo apt-get upgrade # should be back to normal here
请注意,对于错误的9.01版本,即使这个命令也会失败:
$ GS_LIB=/usr/share/ghostscript/9.01/iccprofiles/ gs -sICCProfilesDir=/usr/share/ghostscript/9.01/iccprofiles/ -sDEVICE=tiffsep -dNOPAUSE -dBATCH -dSAFER -sOutputFile=p%08d.tif out_pdfa.pdf ... sfopen: gs_parse_file_name failed. sfopen: gs_parse_file_name failed. ... gsicc_open_search(): Could not find lab.icc ...
..和9.02,没有必要明确指定sICCProfilesDir
。
我也被这个疯狂所驱使。 我试过@ tbart的例子,但它只适用于某些输入的pdf(看起来已经包含图像,rgb或不是),而不是其他的。 具体来说,我们来看看这个超级简单的ps文件:
%!PS /Times-Roman findfont 30 scalefont setfont 72 680 moveto 0.81 0.72 0 0 setcmykcolor (This is text!) show showpage
如果我调用这个test1.ps,然后运行这个命令(在windows上,gs 9.14):
gswin64c -dEmbedAllFonts=true -dPDFX -dBATCH -dNOPAUSE -dNOOUTERSAVE -sDEVICE=pdfwrite -dProcessColorModel=/DeviceCMYK -sOutputICCProfile=CoatedGRACoL2006.icc -sColorConversionStrategy=CMYK -sColorConversionStrategyForImages=CMYK -sOutputFile=test1.pdf PDFX_def.ps test1.ps
用gs替换gswin64c,如果你在linux / cygwin上。
我正在使用的CMYK ICC位于PDFX_def.ps和上面的命令中。 你可以从这里得到它,但它只是一个随机ICC,mo要他们的卡,这似乎并不特殊: http : //www.adobe.com/support/downloads/thankyou.jsp? ftpID=4075&fileID=3790
从此加载的test1.pdf作为Illustrator中的CMYK pdf加载,但标识为-verbose表示它是sRGB。 如果我做@ sdaau的tiffsep事情它写出分离,他们有正确的价值观。
所以,我不知道。
任何人都可以得到这个PS文件转换为识别识别的CMYK PDF?
克里斯
编辑:哇。 我可能已经弄清楚了并修正了它。 它看起来像识别只是在PDF文件中寻找一个/ ColorSpace / DeviceCMYK,所以如果我砍了PDFX_def.ps输出它,识别将称之为CMYK。 所以,通过查看工作的pdf,我发现如果他们有这个行识别工作,如果没有,他们被错误地标记为sRGB。
在PDFX_def.ps的末尾添加/ ColorSpace / DeviceCMYK行:
[/_objdef {OutputIntent_PDFX} /type /dict /OBJ pdfmark [{OutputIntent_PDFX} << /ColorSpace /DeviceCMYK % convince ImageMagick's identify that it's CMYK /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 TR 003) % 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
繁荣。 我希望这不会做任何奇怪的兼容性或任何东西。
再次使用PDF / X-3重新访问CMYK转换,因为我在队列中有另一个打印作业,这让我发现了以下内容:
如果您只需要CMYK,请避免使用X-3。 它不支持透明度( https://en.wikipedia.org/wiki/PDF/X ),你得到的青色图像既不令人满意,也不符合任何标准。 如果你有alpha,不透明度,如果你的印刷厂不需要,渐变不会转换成PDF / X-3。
如果您确实需要pdf / X,则需要栅格化并转到X-3。 我知道在“众所周知的工具链”(imagemagick,inkscape,gimp等)中没有Linux /免费软件产品的X-4,
然而,我仍然与定义丰富的黑色,f.ex战斗。 60%C,60%M,40%Y,100%K – 这里是一个比较典型的印刷厂的标准。 每当我在inkscape中设置它,只要导出(到RGB; cairo限制)
不过,这似乎让我接近他们所期待的:
#!/bin/bash # possibly ps2ps2 for keeping fonts? pdf2ps -sOutputFile=- "$1" | gs \ -dPDFX \ -dBATCH \ -dNOPAUSE \ -dNOOUTERSAVE \ -dPDFSETTINGS=/prepress \ -dCompatibilityLevel=1.4 \ -sDEVICE=pdfwrite \ -sColorConversionStrategy=CMYK \ -sProcessColorModel=DeviceCMYK \ -dHaveTransparency=false \ -sOutputFile="${1%%.pdf}_X-3.pdf" \ PDFX_def.ps \ -
CMYK-PDF输出工作流程的真正CMYK创建的任何见解仍然非常受欢迎。 Scribus并不是真正的解决方案,因为它有许多问题正确地导入了Inkscape SVG。除此之外,scribus创造了CMYK-PDF。