2010年05月28日

PDFが太ってしまう

不思議なことではないのだが、PDF文書をInkscapeで編集すると、ファイルサイズが重くなる。その理由はいろいろあるのだろうけれど、いくつかは推測がつく。たとえば、OpenOfficeのPDFに書き出しのオプションからは(あるいはWindowsのPrimoとかその他のPDF作成ユーティリティからでも)、PDFを書き出すときに画像の圧縮オプションがある。Inkscapeにはこれがない。だから、単純に画像データ分だけでもサイズが大きくなる。
今日、5ページある英文PDF文書(中身は基本的に画像)を日本語化する作業があった。英語の部分を隠して日本語を貼り付ければいいので、割と単純な作業。Inkscapeでページごとに作業してやってからいつものようにPDF Shufflerで合体すればOKと思った。ところが、そうは問屋が卸さなかった。
まず、Inkscapeで修正した5枚のPDFファイルをPDF Shufflerで1つにまとめると、どういうわけか画像が一部分だけ拡大されて表示されてしまう。どういうエラーなのかわからないが、ここでだいぶと悩んだ。先日のScribusまで引っ張り出していろいろ試したが、うまくいかない。
結局、この部分は、PDF Shufflerでは解決がつかなかった。もうひとつのPDFのマージ・スプリット用のGUIであるPDF SAMがリポジトリにあるので、これをインストールすると、今度はうまく通った。どうもPDFのバージョン1.4というのがいけないような気がする。詳細はわからないがPDF SAMだとPDF 1.5で出力となっていたから、これが関係あるのかなと。
しかし、ここで冒頭に書いた太りすぎの問題が気になった。1ページや2ページなら別に気にしないのだけれど、画像で5ページのPDFが太ったら、相当に重くなる。いくらブロードバンドの時代といっても、やっぱり遠慮してしまう。どうにか元ファイル程度の大きさにできないものだろうか。元ファイルの3倍以上あるのだから。

さらに、この合成PDF、どうも処理がおかしいらしく、Inkscapeで開くと画像が裏返ったりする。これはどうもいただけない。やっぱり別の方法を考えたほうがいい。
しょせん画像ファイルなのだから、元のPDFを(先日かおりんさんにつくっていただいたツールを使って)画像ファイルに落とし、それをOpenOfficeのドローで作り直すのがたぶん最も簡単だろうと見当をつけた。ただ、PDFファイルに埋め込まれた画像というのは、元の解像度がわからない。ここのところでいい加減な解像度を指定して画質を落としたり、不必要にファイルを太らせたりはしたくない。できれば、元の画像は元のまま抜き取りたい。
そこで考えたのは、OpenOfficeのドローなら、SVG形式が読めるということだった。まず、Inkscapeで元のPDFをページごとに読み込む。これをSVGで保存し、OpenOfficeで開く。すると、画像ファイルが選択できるようになっているから、これをコピーして、順次5ページの文書に配置する。そして日本語を英語の上に貼りつけておいて、PDF出力。この際、画像の圧縮にチェックを入れ、倍率に97%の指定で、ほぼ元のファイルと同じサイズに収まった。めでたしめでたし。
仕上がったファイルを元ファイルと目視で比べると、やっぱり少し圧縮した分だけ劣化はしている。けれど、それほど気になるほどではない。この方法で、ほぼ大丈夫。この先も似たような作業が入るので、このルーチンでいけばいいかもしれない。
これは、私のように画像ファイルの上に日本語テキストを貼りつけるというような手作業を行う場合の話で、単純にInkscape処理後の非圧縮PDFを圧縮してスリム化するには、Ghostscriptのコマンド一発という荒業があるらしい。そういう方向でやる場合もあるかもしれないから、そっちもちょっと試してみようとは思うが、今日のところはここまで。試す余裕ができたら、そのときに報告ということで。
posted by 松本 at 22:59| Comment(0) | Ubuntuのアプリケーション | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。