2011-02-09 6 views
5

PDFに保存された画像をストリームとして抽出しようとしています。私はこれを簡単に行うことができますが、私は正確な画像回転情報を得ることができません。 MediaBox、回転、風景/ポートレートモードなどの特定の情報を探しています。PDF画像の回転情報はどこに保存されていますか?

イメージを抽出すると、そのアライメントは、エンドユーザーがpdfリーダーツールで見るものと一致しません。

私は2つのPDFを比較しました(前者は画像を90度回転し、後者は270画像を回転させました)、特定のストリームオブジェクトに違いがあります。しかし、私はそのストリーム情報が何であるかを調べることができません。

http://bit.ly/eQZGKJ http://bit.ly/g43Whb

答えて

1

保存されたほぼすべての画像がそのように呼ばれているCTM(現在の変換行列)へ:ここ

は私が話しています二つの文書です。これは、画像の位置、回転、および傾きに関する情報を読者に提供します。

4

ページに表示されたときのイメージの位置、サイズ、および向きは、現在の変換マトリックス(CTM)によって決まります。イメージが表示されたときに配置されているCTMを判断するには、ページコンテンツストリーム全体を実行する必要があります。これは、PDFページの仮想レンダリングのようなものです。

+0

各ページに、ページオブジェクトにページローテーション値を設定することもできます。 –

+0

ページ座標のイメージの位置はページの回転とともに変化しませんが、イメージの位置を画面に表示したい場合座標系(ページを表示し、画像が画面上のどこに表示されるかを知りたければ)、ページの回転も考慮する必要があります。 – iPDFdev

+0

@iPDFdev PDFファイルからCTM情報を取得(抽出)する方法はありますか?そこにはLinuxのutilsがありますか? –

0

これはクリップを持つこともできるので、画像の一部しか見ることができません。 MediaBoxと回転はページ全体に関連しています。 PDFの参考文献に記載

1

チェックCM演算子、「指定されたマトリックスを連結することによって、現在の変換行列(CTM)を変更(セクション4.2.1参照 『』座標空間)オペランドが行列を指定しているが、彼らは配列ではなく、6つの別個の数字として書かれています。あなたのPDF文書で:

  1. rotated1.pdfは "0 550.08 -743.04 0 743.04 0 CM"
  2. rotated2.pdfが "0 -550.08 743.04 0 0 550.08 CM"

が含まれている含まれているので、私たちあなたの画像が時計回りに90°回転しているか、反対方向に90°回転していると言えます。

+0

これらのCTM座標はどうやって取得できましたか? –

関連する問題