ImageMagickのidentify
にPDFをCMYKとして識別させる)を取得するのに多くの問題があります。
基本的に、このファイルtest.tex
をpdflatex
を使用してビルドしているとします。
\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として取得されます(少なくともソースのリンクに従って)-それでも、その色は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 ...
の部分もコメント解除すると、同じことがほとんど起こります。それでも、ドキュメントに1色(黒)しかない場合、identify
がRGB値のヒストグラムをどこに表示するのかわかりません(おそらく、すべてが灰色に近いと思います)?!
したがって、これを気にしないでください。私はghostscript
を使用してtest.pdf
をidentify
によってCMYKとして認識される新しいPDFに変換することをお勧めしますが、そこにも運がありません:
$ 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
isはCMYK pdfを正しく報告できることに注意してください- CMYKポスターの例:pdfページサイズを(ビットマップ)画像サイズに合わせる?#17843- TeX-LaTeX-Stack Exchange は、このようなPDF convert
とgs
を使用したファイルを生成するコマンドラインの例です。実際には、次のコマンドを実行できます。
convert test.pdf -depth 8 -colorspace cmyk -alpha Off test-c.pdf
...そしてこれwill結果はPDFこれはCMYKとしてidentify
edになります-ただし、PDFラスタライズも行われます(デフォルトは72 dpi)。
編集:OpenOfficeで.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
...実際にはidentify
から報告されたCMYK pdfが生成されます(ただし、黒はリッチではなく、プレーンではなく、4つのチャネルすべてで)。ただし、スライドに画像が追加されている場合、このコマンドはonlyで機能します(明らかに、色変換をトリガーするものです!)。おかしなことに、pdflatex
PDFから同じ効果を得ることができません。
だから私は私の質問が2つの方法で尋ねられると思います:
identify
として認識される(したがって、CMYK色の正しいヒストグラムを構築する)コマンドライン変換方法はありますか?identify
の元のtest.pdf
でもCMYKカラーの使用を正しく認識するpdflatex
に類似した他のコマンドラインLinuxツールはありますか(そして、おそらく任意に選択したPDFページ、identify
がのように想定されている)に基づいて、カラーヒストグラムを作成しますか?どんな答えも事前にありがとう、
乾杯!
いくつかの参照:
たとえば、「0 0 0 1 setcmykcolor」と指定されていますか?それとも「0 0 0 setrgbcolor」のように?後者の場合、RGB画像をカラー管理するためにDeviceRGBがCIEベースのカラースペースに再マッピングされると、テキストはリッチブラックになります。
sdaau、PDFをCMYKに変換するために使用したコマンドが正しくありませんでした。代わりに次のコマンドを試してください:
gs \
-o test-cmyk.pdf \
-sDEVICE=pdfwrite \
-sProcessColorModel=DeviceCMYK \
-sColorConversionStrategy=CMYK \
-sColorConversionStrategyForImages=CMYK \
test.pdf
色変換が希望どおりに機能せず、「色空間をグレーに変換できません。戦略をLeaveColorUnchangedに戻す」のようなメッセージが表示された場合...
この場合、追加-dOverrideICC
をコマンドラインに追加し、必要に応じて結果が変化するかどうかを確認します。
画像にJPEG artifacts appearing (以前は存在しなかった)を回避するには、以下を追加します。
-dEncodeColorImages=false
コマンドラインに。
(これは、このケースだけでなく、ほとんどすべてのGSPDF-> PDF処理に当てはまります。GSはデフォルトで、新しく作成されたオブジェクトと新しいファイル構造を持つ完全に新しいファイルを作成するためPDF出力を生成するように求められた場合、以前のオブジェクトを単に再利用するのではなく、より「ダム」としてPDF pdftk
は{pdftk
にも他の利点がありますが、ステートメントを誤解しないでください!}GSはデフォルトでJPEG圧縮を適用します-現在のPs2pdfドキュメントで検索し、 "ColorImageFilter"を検索して詳細を確認します。 ..)
私は無関係の問題を抱えていますが、現在CMYK PDFについても苦労しています。
私はこの小さなスクリプトをここに書いた(それは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
これはgs 9.04を搭載した64ビットGentooにあります。
ソース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 ;分離を取得するには、tiffsep
のgs
デバイスを使用することが推奨されます。そして、これは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
の表示内容に関係なく、test.pdf
from pdflatex
は、実際にはテキスト色として「プレーンブラック」を持っています(他の区切りは空白です)。ただし、次のようなことをしています。
# 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
には実際には「リッチブラック」があります。つまり、テキストのインクは4つの色分解すべてに適用されます。 (identify
もこれをRGBとして示しています)。
だから、私はこれがgs/tiffsep
テクニックはidentify
よりも信頼性が高いです:)
注:私はGhostScript 9.01に付属しているUbuntu Nattyを使用していますが、tiffsep
に厄介なバグがあります バグ691857 –バージョン9でtiffsepがクラッシュする(lab.iccがない) =。それは9.02で修正され、9.02は ghostscript in 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かどうか)でのみ機能し、他のPDFでは機能しません。具体的には、この非常に単純な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
Linux/cygwinを使用している場合は、gswin64cをgsに置き換えます。
私が使用しているCMYK ICCはPDFX_def.psと上記のコマンドにあります。ここから入手できますが、mooがカードに必要とするのはランダムなICCであり、特別なものではないようです。 http://www.Adobe.com/support/downloads/thankyou.jsp?ftpID = 4075&fileID = 379
これからのtest1.pdf出力は、IllustratorでCMYK pdfとしてロードされますが、-verboseを識別すると、sRGBであることがわかります。 @sdaauのtiffsepを実行すると、セパレーションが書き出され、適切な値が得られます。
だから、私は知らない。
誰かがこのpsファイルを取得して、認識を識別するCMYK pdfに変換できますか?
クリス
編集:おっと。これを理解して修正した可能性があります。識別は、PDFファイルで/ ColorSpace/DeviceCMYKを探しているだけなので、PDFX_def.psをハッキングして出力すると、Identifyは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 )をサポートしていないため、得られるシアンの色合いの画像は満足のいくものではなく、実際には標準に準拠していません。アルファ、不透明度、グラデーションがある場合、プリントショップで絶対に必要でない限り、PDF/X-3に変換されません。
PDF/Xが必要な場合は、ラスタライズしてX-3を使用する必要があります。 X-4 on Linux /「よく知られているツールチェーン」(imagemagick、inkscape、gimpなど)で私が知っているフリーソフトウェア製品はありません。
しかし、私はまだdefined豊かな黒、f.exと戦っています。 60%C、60%M、40%Y、100%K-ここのプリントショップのかなり典型的な標準。これをinkscapeで設定すると、エクスポートするとすぐに消えます(RGBへの変更、カイロの制限)
それでも、これは私が彼らが期待するものに近づくように見えるものです:
#!/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作成からCMYK-PDF出力ワークフローへの洞察は、まだ大歓迎です。 Scribusは、inkscape SVGを正しくインポートするのに多くの問題があるため、実際のソリューションではありません。それ以外に、scribusはCMYK-PDFを作成する適切な仕事をします。