2013/06/17

PDF の文字化けを解消する

Android の PDF ビューアに SideBooks というアプリがあるのですが、たまに文字化けが発生するので困っていました。同じ PDF を開いても Adobe Reader などの他のビューアでは文字化けすることがないので SideBooks 特有の不具合のようでした。

開発元に不具合の報告をしたところ、
問題の原因を調査したところ、SideBooksに使用している他社製のモジュール(PDFレンダリングエンジン)が原因であることが判明し、弊社単独での対応が不可能なことがわかりました。

この問題は、モジュールの開発元に障害案件として報告し、対応を待つことにいたします。開発元が海外の企業であることもあり、いつ修正されるかの確約ができないこと、お詫び申し上げます。
との回答をいただきました。

とりあえず、SideBooks については当面の改善は見込めないということで、他の改善策を考えなければなりませんでした。

他に使いやすいビューアはないかと思って探してみたのですが、どれもいまいちな感じだったので、ビューア探しはあきらめて PDF ファイル自体を修正することにしました。

今まで PDF 作成には Apache OpenOffice の PDF エクスポート機能を使っていました。

OpenOffice Writer で作成しているのですが、文字化けする部分だけを修正しても他の部分が文字化けするようになったりして、まるでもぐらたたきのようでした。

文書全体のフォントの指定を変えても直りません。

OpenOffice のエクスポートではだめなのかと思って、他の PDF 作成ソフトを試してみることにしました。

CubePDF というフリーソフトをインストールしてみました。

文書を印刷するときにプリンタドライバーとして CubePDF を使うことで PDF として出力することができます。

CubePDF にも多少癖があるようで、一部のフォントの埋め込みに失敗することがあるので、問題のないフォントを選ぶ必要があります。

どうにか出来上がった PDF は OpenOffice でエクスポートしたものに比べるとファイルサイズが3倍くらいに膨れ上がっていたのですが、画像の解像度指定を 600 dpi から 96 dpi に変えるとほぼ同じくらいになりました。

SideBooks で閲覧してみると文字化けは完全に解消されていたようでした。

ただ、画像の品質については OpenOffice の PDF に比べるとかなり落ちていました。ファイルサイズをとるか画質をとるかということになりますが、画質については妥協すべきところかもしれません。

一つだけ CubePDF の利点として気づいたことがありました。

今まで OpenOffice でエクスポートした縦書き文章の PDF はテキストを一文字ずつ分断して無理やり縦組みしたような構造だったようなのですが、そのせいで PDF をテキスト化したときに問題があったのです。たとえば、SlideShare にアップロードするとこんな感じになってしまうわけです。
  • 霊性の評価について(SlideShare)
    (スライド下部に文書内から解析されたテキストが表示されていますが……)
CubePDF で作成した場合には文章が一行ごとに改行されているので、テキスト化しても普通に読める文書になっていました。つまり、日本語の体裁を保っているということですね。たぶん、読み上げソフトなんかでは都合がいいんじゃないかな? ウェブ上で公開したときにはキーワードで検索されやすくなるだろうし。

OpenOffice からのエクスポートはとても使いやすかったのですが、今後は CubePDF を使っていこうかと思います。

外国製のソフトで日本語を扱うのは何かと問題が多いですね。

ニッポンの技術者さんたち、がんばってください。

この記事をサンプルとして CubePDF で作成した PDF を SlideShare にアップロードしてみました。
スライド下部に表示されているテキストもまともに読める状態になっています。

1 件のコメント:

  1. CubePDF は文書内のハイパーリンクが無効になってしまうのが残念なところ。

    ハイパーリンクが必要な場合は OpenOffice からエクスポートした方がいいね。

    返信削除