28

identifyImageMagickで 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.pdfidentify

$ 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.pdfpdflatexidentify

ご回答ありがとうございます。
乾杯!

 

参考文献:

4

6 に答える 6

30

sdaau さん、PDF を CMYK に変換するために使用したコマンドが正しくありませんでした。代わりにこれを試してください:

 gs \
   -o test-cmyk.pdf \
   -sDEVICE=pdfwrite \
   -sProcessColorModel=DeviceCMYK \
   -sColorConversionStrategy=CMYK \
   -sColorConversionStrategyForImages=CMYK \
    test.pdf 

アップデート

色変換が期待どおりに機能せず、 「カラー スペースをグレーに変換できません。戦略を LeaveColorUnchanged に戻しています」などのメッセージが表示された場合は...

  1. お使いの Ghostscript は、おそらく9.x バージョン シリーズの新しいリリースであり、
  2. ソース PDF は、埋め込まれたICC カラー プロファイルを使用している可能性があります

この場合-dOverrideICC、コマンド ラインに追加して、結果が希望どおりに変化するかどうかを確認します。


更新 2

画像にJPEGアーティファクトが表示されないようにするには (以前はなかった)、次を追加します。

-dEncodeColorImages=false

コマンドラインに。

(これは、この場合だけでなく、ほとんどすべての GS PDF->PDF処理に当てはまります。GSはデフォルトで、PDF 出力を生成するように要求されたときに、新しく構築されたオブジェクトと新しいファイル構造を持つ完全に新しいファイルを作成するため、そうではありません。以前のオブジェクトを再利用するだけで、{他の利点がありますが、私の声明を誤解しないでください!} のpdftkように、より「ばかげた」PDF プロセッサとして. GS はデフォルトで JPEG 圧縮を適用します -- 現在のPs2pdf ドキュメントを見て、詳細については、 「ColorImageFilter」を参照してください...)pdftk

于 2011-12-19T21:02:07.493 に答える
6

無関係な問題がありますが、現在 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 出力の欠落の回避策として使用します...

于 2011-09-14T13:56:40.930 に答える
4

わかりました、ここに何かがあります、少なくとも...

もともと、PDFファイルがCMYKであり、テキストが「プレーンブラック」C:0、M:0、Y:0、K:100であることを確認する方法としてこれが必要です-問題があったため以前のプリンターでは、テキストに「リッチブラック」が含まれている私の Latex PDF について文句を言うことがありました (したがって、より多くの費用がかかります)。identifyそして、PDF と色を解析できる唯一のツールのように思われるので、私は通常、このツールを使用します (また、覚えるのも比較的簡単です)。

さて、Tech Tip: Using Ghostscript to Convert and Combine Files |を読みました。Linux ジャーナル; 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.pdffrompdflatexがテキストの色として「無地の黒」を持っていることを示しています (他の分離は空白です) - ただし、次のようなことを行います:

# 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ます: Bug 691857 – tiffsep crashes in Version 9 (missing lab.icc ) これは 9.02 で修正され、9.02 は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

于 2011-06-05T10:00:05.193 に答える
1

キューに別の印刷ジョブがあるため、PDF/X-3 を使用して CMYK 変換を再検討すると、次のことがわかりました。

CMYK のみが必要な場合は、X-3 を避けてください。透明度 ( https://en.wikipedia.org/wiki/PDF/X ) をサポートしておらず、得られるシアン色の画像は満足できるものではなく、実際にはどの標準にも準拠していません。アルファ、不透明度がある場合、印刷所で絶対に必要でない限り、グラデーションは PDF/X-3 に変換されません。

pdf/X が必要な場合は、ラスタライズして X-3 を使用する必要があります。「よく知られているツールチェーン」(imagemagick、inkscape、gimpなど)で私が知っているLinux /フリーソフトウェア製品上のX-4はありません。

しかし、私はまだ定義された豊かな黒と戦っています。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 作成から CMYK-PDF 出力ワークフローへの洞察は、引き続き大歓迎です。Scribus は、inkscape SVG を正しくインポートする際に多くの問題を抱えているため、実際の解決策ではありません。

于 2015-09-24T21:40:48.290 に答える