poppler|comment:nonまたまた山本です。以前ご紹介した自社サービスのZENPREの反響が思いのほか大きく、とりあえずほっとしております。いいスタートダッシュは切れたので、引き続き新たな機能の実装を続けてまいります。今回はZENPREで使用している機能の1つを紹介させていただきます。ZENPREではアップロードされたMicrosoftOfficeのPowerPointのデータやPDFを画像変換することで、Flashを通しての配信を可能にしておりますが、この時のフローとしては、3つの段階を経ています。↓ImageMagickを使用して、ppmファイルをjpgへ変換つい最近まで、OpenOfficeのバージョンは3.2.0でした。このバージョンでは、Office2007の形式である「pptx」も変換可能なのですが、1枚目に表示される「クリックしてサブタイトルを入力」というガイドまでも変換されてしまうというバグがありました。最近バージョンが3.2.1にあがりその問題が解消されましたので、晴れて「pptx」にも対応いたしました。「pdf→jpg」変換を行っておりました。この変換方法だと生成される画像の解像度が低いという問題がありました。600×480ほどのサイズであれば問題なく、表示もそれに合わせればよいのですが、ZENPREの機能の一つにフルスクリーンモードというのがあり、それを使用すると利用者によってはとてつもなく大きいモニターで表示することになり、その場合、画像が引き伸ばされぼやけてしまうことになります。そこで着目したのがpopplerでした。popplerの前身はXpdfであり、pdfをppmという高解像度の画像へ変換することが可能です。以下は、ppmに変換せずに生成したjpgとppmに変換した上で生成したjpgの2ファイルです。ppm処理しないjpgppm処理したjpg前者は粗さが目立ちますが、後者は文字の縁が滑らかなまま表示されています。ファイルサイズが大きくなってしまいますが、大した負荷ではないので採用することにしました。インストールは、Redhat系をご使用であればyumインストールで使用可能なのですが、yumだと肝心のpdfをppmに変換する機能である、「pdftoppm」が含まれてません。情報が少なくて、pdftoppmを導入する方法がなかなかわからなかったのですが、popplerをyumインストールするのではなく、ソースからインストールすることで解決しました。Poppler課題としては、全体的に変換に時間がかかるということです。pdf変換においても結構時間がかかるのですが、その上にppm変換を挟んでいるのでどうしても短縮が困難です。pptの変換サービスとしては有名なところでSlideshareがあると思いますが、この変換速度はかなりなものだと思います。これに近づけたらと思います。Reserved.このblogについて株式会社Fusicのエンジニア陣が書くblogです。日々の業務で培った技術ネタや活用事例などをご紹介いたします。