質問はそれをすべて言います。異なるdpi(Dot Per Inch)の画像を含むPDFドキュメントはありますか?
または、1つの画像のdpiを知っている場合、ドキュメント全体のdpiを知っていると想定されますか?
私は@ypnosの答えに賛成しましたが、これは完全に正しいです。
しかし、ユーティリティのごく最近の新機能を紹介することで、それを補完したいと思いpdfimages
ます。
pdfimages
以前はPDFファイルから画像を抽出できることが知られていました(そしてそれが唯一の有用な目的でした)。ただし、これを使用して、画像を抽出せずに、使用されている画像の詳細を調査することもできます。
-list
次のコマンドでは、新しいパラメーターを使用して、特定のPDFファイルの7ページと8ページにあるすべての画像のデータを照会します。
pdfimages -list -f 7 -l 8 ct-magazin-14-2012.pdf ページ番号タイプ幅高さ色compbpcencinterpオブジェクトID -------------------------------------------------- ------------------- 70画像581838rgb 3 8 jpeg no 39 0 71画像44rgb38画像番号400 72画像314332rgb3 8 jpx no 44 0 73画像358430rgb3 8 jpx no 45 0 74画像44rgb38画像番号460 75画像44rgb38画像番号470 76画像46rgb38画像番号480 77画像596462rgb 3 8 jpx no 49 0 78画像46rgb38画像番号500 79画像44rgb38画像番号510 710画像810rgb38画像番号410 711画像66rgb38画像番号420 712画像11327rgb 3 8 jpx no 43 0 813画像582839グレー18jpeg no 2080 0 814画像344364グレー18jpx no 2079 0
ただし、このバージョンはpdfimages
Popplerのものです(XPDFのものは(まだ?)この新機能をサポートしていません):
pdfimages -version pdfimagesバージョン0.20.2 Copyright 2005-2012 The Poppler Developers-http://poppler.freedesktop.org Copyright 1996-2011 Glyph&Cog、LLC
この-list
オプションは、2012年3月1日にリリースされたPopplerv0.19.0で初めて登場しました。
さて、上記のリストは画像の解像度( "dpi")を直接教えてくれません。その値は以下に依存します:この画像はPDFページにどのサイズでレンダリングされますか?
PDFは、PDFファイルのさまざまな場所で同じ画像を簡単に使用でき、その都度異なるレンダリングサイズを使用できます。画像をPDFに埋め込む必要があるのは一度だけですが、「参照により」複数回使用/レンダリングできます(非効率的に作成されたPDFには、同じ画像が複数回含まれている場合がありますが、それは別のトピックです...)
次に、それぞれの列見出しを確認することで発生する可能性のある質問を明確にします。それらはどういう意味ですか?
page
num
type
image
不透明な画像)、mask
(モノクロ画像マスク)、smask
(ソフトマスク画像)、およびstencil
(色またはパターンのペイントに使用されるモノクロマスク画像)です。注: 画像のPDFの透明度は、2つの別々のPDFオブジェクトを使用して作成されます。1つは画像用で、もう1つはマスクまたはスマスク用です。透明な画像に属するマスク/スマスクは、常にリスト内の画像の直後に続きます。width
height
color
gray
(L * a * b)、(ICCベース)、(インデックスカラー)、(分離)、および(DeviceN)です。rgb
cmyk
lab
icc
index
sep
devn
comp
bpc
enc
image
のとおりです。(ラスターイメージ-内部で汎用/Flate
または/LZW
圧縮を使用できますが、特別なイメージエンコーディングは使用できません)、jpeg
(JPEG圧縮)、jpx
(JPEG2000圧縮)、jbig2
(JBIG2圧縮)、およびccitt
(ファックス圧縮)。interp
yes
画像を拡大するときに補間が要求された場合です。object ID
Poppler v0.25.0(2013年12月11日リリース)以降のバージョンでは、コマンドに、PDFレンダラーによってPDFページ内に表示される各埋め込み画像pdfimages -list
の自動的に計算されたx-ppi
(水平)および(垂直)解像度を示す新しい列が含まれるようになりました。 y-ppi
。
さらに、各画像で使用されるサイズ(バイト/キロバイト単位)(非圧縮の場合)とそのサイズ圧縮率(PDFに埋め込まれている)が示されます。
上記と同じファイルの結果を(Poppler v0.42.0を使用して)表示するには:
page num type width height color comp bpc enc interp objectID x-ppi y-ppi size ratio
------------------------------------------------------------------------------------
7 0 image 581 838 rgb 3 8 jpeg no 39 0 73 73 2107B 0.1%
7 1 image 4 4 rgb 3 8 image no 40 0 150 150 54B 112%
7 2 image 314 332 rgb 3 8 jpx no 44 0 150 150 19.0K 6.2%
7 3 image 358 430 rgb 3 8 jpx no 45 0 150 150 15.7K 3.5%
7 4 image 4 4 rgb 3 8 image no 46 0 150 150 62B 129%
7 5 image 4 4 rgb 3 8 image no 47 0 150 150 51B 106%
7 6 image 4 6 rgb 3 8 image no 48 0 150 150 62B 86%
7 7 image 596 462 rgb 3 8 jpx no 49 0 150 150 40.7K 5.0%
7 8 image 4 6 rgb 3 8 image no 50 0 150 150 86B 119%
7 9 image 4 4 rgb 3 8 image no 51 0 150 150 62B 129%
7 10 image 8 10 rgb 3 8 image no 41 0 150 150 157B 65%
7 11 image 6 6 rgb 3 8 image no 42 0 150 150 82B 76%
7 12 image 113 27 rgb 3 8 jpx no 43 0 151 152 1090B 12%
8 13 image 582 839 gray 1 8 jpeg no 2080 0 72 72 319B 0.1%
8 14 image 344 364 gray 1 8 jpx no 2079 0 150 150 4325B 3.5%
x-ppi
y-ppi
size
ratio
答えはイエスです。DPIは、埋め込まれた各画像で独立しています。
一部のDTPプログラムでは、すべての画像のDPIを上限まで再計算するのが一般的な手法です(以前はDPIが低かった場合は、そのままになります)。ただし、これはオプションです。また、(変更されていない)PDFをPDFに埋め込むこともできます。この段階で、あなたはあなたがすることができるすべての仮定を失いました。
Do演算子を使用して画像を描画します。この演算子に渡されるオペランドは、画像の名前です。画像名は、現在のページのリソース辞書で検索されます。画像リソースには、幅(ピクセル列の数)と高さ(ピクセル行の数)があります。PDFページに表示される画像の物理的な幅と高さは、Do演算子の時点でのCTM(現在の変換行列)の値によって決まります。CTMが単位行列と等しい場合、物理的な幅と高さは高さ1 pt、幅1ptになります。(1ポイントは1/72インチに相当します)。一般に、CTMには、1x1ptの正方形をより大きな画像に変換する非同一性の値があります。ピクセル行とピクセル列の数と画像の物理的な広がりの組み合わせにより、PDFページに表示される画像の解像度が決まります。
例:画像リソースは300ピクセルの行で構成されています。各行は400ピクセルで構成されています。CTMは[40000 300 100、100]に等しくなります。画像の高さは300ポイント、画像の幅は400ポイントになります。したがって、解像度は両方向で72dpiになります。
つまり、PDF仕様では、PDFにさまざまな解像度の画像を含めることができます。