identify
ImageMagickで 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 つの色 (黒) しかない場合、RGB 値のヒストグラムがどこに表示されるかわかりませんidentify
(ただし、ほぼ間違いなく、すべてがグレーに近い) ?!
だから、これを気にしないでください。それから、CMYKとして認識される新しいpdfにghostscript
変換するために使用したほうがよいでしょうが、それでも運はありません:test.pdf
identify
$ 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 色空間が表示されます!
これに加えて、CMYK pdf を正しく報告できることに注意してください - CMYK ポスターの例を参照identify
してください: pdf ページ サイズを (ビットマップ) 画像サイズに合わせますか? #17843 - TeX - LaTeX -convert
およびを使用してこのような PDF ファイルを生成するコマンド ラインの例についてのStack Exchange gs
。実際、以下を実行できます。
convert test.pdf -depth 8 -colorspace cmyk -alpha Off test-c.pdf
...これによりidentify
、CMYKとして編集されるPDFが生成されます-ただし、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
...実際にはCMYK pdfが生成され、そのように報告されidentify
ます(ただし、黒はプレーンではなくリッチになります-4つのチャネルすべてで); ただし、このコマンドは、スライドに画像が追加されている場合にのみ機能します (どうやら、それが色変換をトリガーしている?!)! pdflatex
おかしなことに、 PDFから同じ効果を得ることができません。
したがって、私の質問は2つの方法で尋ねられると思います。
- Linux には、RGB pdf を CMYK pdf に変換しながら、そのように認識されるベクトルを保持するコマンドライン変換方法はありますか
identify
(その結果、CMYK 色の正しいヒストグラムが作成されます)。 - に似た他のコマンドライン Linux ツールはありますか?これは、オリジナルのfromで
identify
あっても CMYK カラーの使用を正しく認識し、任意に選択されたPDF ページに基づいてカラー ヒストグラムを作成する可能性があります。test.pdf
pdflatex
identify
ご回答ありがとうございます。
乾杯!
参考文献:
- adobe - PDFでRGBをCMYKに変換するスクリプト(またはその他の手段)? - スタックオーバーフロー
- color - PDFカラーモデルとLaTeX - TeX - LaTeX
- color - xcolorパッケージのオプションcmykはCMYK PDFを生成しません - TeX - LaTeX
- cmyk PDF の作成 - comp.text.tex | コンピュータグループ
- ゴーストスクリプトでカラーマネジメント?- サイ:
たとえば、「0 0 0 1 setcmykcolor」と指定されていますか? それとも「0 0 0 setrgbcolor」のように?後者の場合、RGB 画像の色を管理するために DeviceRGB が CIE ベースの色空間に再マッピングされると、テキストがリッチ ブラックになります。