0

私は多かれ少なかれPDFソフトプルーフを説明するものを書き込もうとしています。

抽出したい情報がいくつかありますが、その方法がわかりません。

抽出する必要があるもの:

Bleed:                    I got this somewhat working with pyPdf, given
                          that the document uses 72 dpi, which sadly isn't
                          always the case. I need to be able to calculate
                          the bleed in millimeters.

Print resolution (dpi):   If I read the PDF spec[1] correctly this ought to
                          always be 72 dpi, unless a page has UserUnit set,
                          which was only introduced in PDF-1.6, but shouldn't
                          print documents always be at least 300 dpi? I'm
                          afraid that I misunderstood something…

                          I'd also need the print resolution for images, if
                          they can differ from the default page resolution,
                          that is.

Text color:               I don't have the slightest clue on how to extract
                          this, the string 'text colour' only shows up once
                          in the whole spec, without any explanation how it
                          is set.

Image colormodel:         If I understand it correctly I can read this out
                          in pyPdf with page['/Group']['/CS'] which can be:
                           - /DeviceRGB
                           - /DeviceCMY
                           - /DeviceCMYK
                           - /DeviceGray
                           - /DeviceRGBK
                           - /DeviceN

Font 'embeddedness':      I read in another post on stackoverflow that I
                          can just iterate over the font resources and if a
                          resource has a '/FontFile'-key that means that
                          the font is embedded. Is this correct?

pyPdf以外のライブラリがこの情報(またはそれらの組み合わせ)をより適切に抽出できる場合、それらは大歓迎です。これまでのところ、pyPdf、pdfrw、pdfminerをいじくり回しました。これらすべてに、最も広範なドキュメントが正確に含まれているわけではありません。

[1] http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf

4

1 に答える 1

2

PDF仕様1を正しく読んだ場合、PDF-1.6でのみ導入されたUserUnitがページに設定されていない限り、これは常に72 dpiであるはずですが、印刷ドキュメントは常に少なくとも300 dpiである必要はありませんか?何かを誤解したのではないかと思います…</p>

あなたは何かを誤解しています。デフォルトのユーザースペース単位はデフォルトで1/72インチですが、PDF-1.6以降、ページごとに変更できますが、印刷解像度を定義するのではなく、ユーザーがデフォルトで指定する座標で単位の長さを定義するだけです(つまり、サイズ変更変換がアクティブでない限り)はに対応します。

印刷の場合、すべてのデータはデバイスに依存するスペースに変換され、その解像度はユーザースペースの座標とは関係ありません。印刷解像度は、印刷デバイスとそのドライバによって異なります。低品質の印刷のみを許可するセキュリティ設定により、制限される場合があります。

画像がデフォルトのページ解像度と異なる可能性がある場合は、画像の印刷解像度も必要です。

画像(ビットマップ画像、PDFにはベクターグラフィックもあります)にはそれぞれ個別の解像度があり、レンダリングする前に変換(拡大など)することができます。したがって、「画像印刷解像度」の場合は、すべてのビットマップイメージと、それが挿入されているすべてのページコンテンツを検査する必要があります。そして、画像が回転したり、歪んだり、非対称に引き伸ばされたりした場合、解像度としてどの数字を使用するのだろうか...;)

テキストの色:これを抽出する方法については少しわかりません。文字列「テキストの色」は、設定方法の説明なしに、仕様全体で1回だけ表示されます。

仕様のセクション9.2.3をご覧ください。

グリフのペイントに使用される色は、グラフィックス状態の現在の色である必要があります。テキストレンダリングモードに応じて、非ストローク色またはストローク色(あるいはその両方)のいずれかです(9.3.6「テキストレンダリングモード」を参照)。デフォルトの色は(DeviceGrayでは)黒ですが、グリフをペイントする前に適切な色設定演算子(8.6.8「色演算子」を参照)を実行することにより、他の色を取得できます。

そこには、興味深いセクションへのポインタがいくつかあります。ただし、テキストは単純に色付けされているわけではないことに注意してください。また、任意の背景に適用されるクリップパスとしてレンダリングすることもできます。

私はstackoverflowに関する別の投稿を読みました。フォントリソースを反復処理するだけで、リソースに「/ FontFile」キーがある場合は、フォントが埋め込まれていることを意味します。これは正しいです?

より正確な分析をお勧めします。他にも関連するキーがあります。たとえば、「/FontFile2」や「/FontFile3」などです。正しいキーを使用する必要があります。

タスクを過小評価しないでください...回転、拡大、傾斜したグリフ、ベクターグラフィック、PDFなどのビットマップ画像が混在する環境で検索するプロパティの意味を定義する必要があります。

于 2012-11-08T11:30:57.297 に答える