さくらのレンタルサーバーでpdfをテキスト化する方法

Pocket

PHPにて、PDFをテキスト化する方法を調べたところ、XPDFというのがあった。
http://www.foolabs.com/xpdf/download.html
これを、さくらのレンタルサーバで入れたいのだが、厄介。日本語を抽出するのも設定が面倒そう。。
https://saturday-development.com/archives/2297.html
もう少し調べてみると、Popplerというのがあることを知った。
https://poppler.freedesktop.org/

Popplerとは

Poppler is a PDF rendering library based on the xpdf-3.0 code base.

Popplerをインストール

さくらのレンタルサーバへSSHで入ったあとに、こちらの手順に従う。
http://pulltab.info/2017/02/-pdfimages.html
2017年6月7日時点では、

  • poppler-0.55.0.tar.xz
  • poppler-data-0.4.7.tar.gz

が最新。

% mkdir -p $HOME/local/src
% cd $HOME/local/src
% wget https://poppler.freedesktop.org/poppler-0.55.0.tar.xz
% tar -xvzf poppler-0.51.0.tar.xz
% cd poppler-0.51.0
% ./configure -prefix=$HOME/local
% make
% make install
% cd ../
% wget https://poppler.freedesktop.org/poppler-data-0.4.7.tar.gz
% tar -xvzf poppler-data-0.4.7.tar.gz
% cd poppler-data-0.4.7
% make install datadir=$HOME/local/share

 

使い方

上の手順に従うと、pdftotextなどのbinaryが /home/〇〇/local/bin/ に入っているので、

$result = shell_exec("/home/〇〇/local/bin/pdftotext hoge.pdf -");

とすれば、pdfから抽出したtextを取得できる。
pdftotextの他に、

  • pdfdetach
  • pdffonts
  • pdfimages
  • pdfinfo
  • pdfseparate
  • pdftohtml
  • pdftoppm
  • pdftops
  • pdfunite

が使える。便利。