ホーム > デスクトップ > ScanSnapで読み取ったPDFを無劣化で画像ファイルに変換する

ScanSnapで読み取ったPDFを無劣化で画像ファイルに変換する

僕は技術書をScanSnapで読み取り、PDFとして電子化しています。Mac上で閲覧する時はそのままで問題がありませんが、iPadに転送する場合などは、ページ単位の画像ファイルに変換してから、ePubなどに再構成しています。

この画像ファイルに変換する作業は、Automatorを使ってページ単位でJPEG画像にレンダリングを行っていたのですが、非常に時間がかかる上に再圧縮の過程で劣化します。

元々ScanSnapはビットマップ画像として読み込みを行っているので、PDFの中にはページ単位のビットマップ画像データが存在するはずです。これをそのまま切り出せば、短時間に無劣化で画像ファイルへの変換が可能になるはずです。

PDFからのビットマップ画像の取り出し
調べた所、Xpdfに含まれるpdfimagesコマンドで抽出可能な事が解りました。XpdfはMacPortsでインストールするか、ここで配布しているバイナリパッケージなどをインストールしてください。次のようなコマンドで抽出可能です。

pdfimages -j PDFファイルパス 出力プリフィックス

画像は、「出力プリフィックス-xxx.pbm」か「出力プリフィックス-xxx.jpg」として出力されます。ScanSnapの読み取り時にモノクロになった場合は1ビットのPBM形式に、カラーになった場合はJPEG形式です。つまりモノクロは可逆圧縮で、カラーはDCTとしてPDFに格納されているようです。

PBMからTIFF形式のG4 FAX圧縮に変換
カラーの方のJPEGはそのままePubに変換できますが、モノクロの方は別のファイル形式に変換する必要があります。最初はGIFを試してみましたが、画像の合計サイズが元のPDFの1.5倍程度まで大きくなりました。次にPNGを試した所、GIFよりはファイルサイズが小さくなりましたが、元のPDFと比較すると大きなサイズになりました。一瞬、「ちょ、PDFのモノクロ圧縮はすごすぎだろ」とか思いましたが、冷静に考えると1ビットのモノクロなので、TIFF形式のG4 FAX方式で圧縮してみたら、見事に元のPDFファイルとほぼ同じサイズになりました。PDFの画像部分は、TIFFが手本なのかもしれません。カラーにJPEGをサポートしているのも同様ですし。

変換作業自体は、ImageMagickを使うと簡単です。MacPortsを使うなり、バイナリパッケージをダウンロードするなりしてインストールしてください。次のコマンドでTIFF形式のG4 FAX圧縮に一括変換できます。

mogrify -format tiff -compress Group4 PBMファイルパス...

GIFやPNGは問題無いと思いますが、TIFFをサポートしていないePubリーダーもあるかもしれません、その時はファイルサイズを犠牲にして、PNGに変換する事になると思います。ファイルは大きくなりますが、無劣化には違いありません。

ScanSnapの型が新しい場合は、モノクロがグレイスケールになると聞いています。その場合、pdfimagesがどのようなファイルを吐くか判りません。恐らくJPEGだと思うのですが……

広告
カテゴリー:デスクトップ
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。