0

すべてのページが (LZW) TIFF ファイルである PDF ファイルがあります。これは私が作ったので知っています。それを読み込んで、TIFFファイルの束として保存できるようにしたいです。

CGPDFDocumentCreateWithURL で PDF ファイルを開き、ページを取得できます。ページを画面に描画することもできます。

私がやりたいことは、CGBitmapContextCreateImage を使用して画像を CGImageRef に取得できるように、ページを bitmapContext に描画することです。ただし、ビットマップ コンテキストを作成するには、画像のサイズと解像度を知る必要があります。そのページの画像オブジェクトの解像度を教えてくれる CGPDFDocument または CGPDFPage を取得する方法を見つけることができないようです。

私が気付いていないこれを行う簡単な方法はありますか?

ありがとう。

4

1 に答える 1

1

ここでGhostscriptが機能します:

gs -sDEVICE=tiff32nc -sOutputFile=foo-Page%d.tif foo.pdf

2 ページのドキュメント foo.pdf の場合、次のようになります。

  • foo-Page1.tif
  • foo-Page2.tif

メモリから、GS からの出力解像度は、含まれているページの解像度であり、必ずしも埋め込みファイルの解像度ではないと思います (これらが最初から同じでない限り)。

この場合、画像を元の res-wise として復元したい場合は、iText (java) またはiTextSharp (.net) を使用して画像コンテンツ ストリーム (つまり、バイト) を取得し、それらを次の場所に書き出すことができます。コンテンツ ストリームを PdfImage iirc に変換した後、選択した形式でディスクを作成します。

Ghostscript オプションを適用して、さらに別のユーティリティの作成を節約できることを願っています...

于 2009-01-17T13:54:09.363 に答える