サーバー上でPDFをHTMLに変換する

ブラウザでPDFを開くととっても重いんですよ。まぁ、かっこいい人たちはAdobe Readerなんて使わずに Foxit Reader とか軽いの使ってるのかも知れないんだけど。
ともかく、http://finance.firstlife.jp/を自分で使ってて、重いAcrobat Readerを何度も開くのは嫌になってきたので、サーバー上で変換かけれないのか、ってとこを調べてみました。
さて、何が使えるかな。Xpdfあたりかな、なんて思ってたら知らない間にForkして、Popplerってのが出来てるらしい。で、その中にpdftohtmlってコマンドがあって、それで実現できそう。
今回インストールしたサーバーのOSはFreeBSD、サクラインターネットなんだけどね。SSHとか解放してくれてるのが有り難いです。自前のサーバーとかroot権限があるところなら、パッケージでインストールするのがお勧め。poppler と poppler-data。poppler-dataのパッケージを入れないと日本語が扱えないので注意してね。
さて、早速インストール。以下が手順。
今回は$HOME/local 以下にインストールすることにしたので、まずディレクトリ作成。
$ mkdir $HOME/local
※$HOME ってのは、SSHでログインして $ echo $HOME ってやると判ると思うけど /home/[アカウント名] の事ね。
http://poppler.freedesktop.org/ から必要なファイルをダウンロード。
$ wget http://poppler.freedesktop.org/poppler-0.8.2.tar.gz
$ wget http://poppler.freedesktop.org/poppler-data-0.2.0.tar.gz
popplerをコンパイルしてインストール。
$ tar -xvzf poppler-0.8.2.tar.gz
$ cd poppler-0.8.2
$ ./configure –prefix=$HOME/local
$ make
$ make install
$ cd ../
データのインストール(これがないと日本語が処理できないよ)
$ tar -xvzf poppler-data-0.2.0.tar.gz
$ cd poppler-data-0.2.0
$ make install datadir=$HOME/local/share
コマンドラインだとこんな感じで example.pdf から example.html HTMLが出力できます。
$ $HOME/local/bin/pdftohtml -noframes -enc UTF-8 example.pdf
主なオプション:
-enc 出力HTMLの文字コードの指定
-noframes デフォルトだとフレームを使ったHTMLが出力されるが、それをせずに1つのHTMLに纏める。
-c 画像で無理矢理テーブルなどを表示する
便利といえば便利なんだけど・・・いまいち綺麗じゃないなぁ。googleとかのPDFのHTML変換は独自エンジンなのかな
ちなみに、htmltotext なんてコマンドもはいってて、こちらはPDFをテキストに変換できます。
tree 12:10 2010年9月16日 パーマリンク
PDF作成が専門な変換ツールとして、すべて印刷できるファイルをPDFに変換できます。PDFに作成する他に、PNG、JPEG、BMP、PCX、TIFF、PS、EPSなどとしても保存できます。フリーダウンロードを支持しご楽に楽しめましょう。
http://www.oxpdf.jp/pdf-creator.html
さくらインターネットでpdftoppm | ダリの雑記:WEBプログラム版 20:23 2011年8月31日 パーマリンク
[...] サーバー上でPDFをHTMLに変換する 渋谷でサボるエンジニアの日記 [...]