アイデアの甕

アイデアを放り込んでおくと甕は腐臭を発しない

当サイトではアフィリエイトプログラムを利用して商品を紹介しています。

Windows上のRubyで日本語PDFを読むためにpoppler-dataをインストールする方法

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

 

 

Rubyで日本語PDFを読みましょう。ただし、Windows上で。

 

WindowsでのRuby開発環境の構築などについて、ここで改めて述べることはしません。詳細は各種書籍、ウェブサイトをご参照ください…といいつつ、『たのしいRuby 第5版』には記載されていない内容を含みますので、以下の書籍などなどをご参照ください。

 

パーフェクトRuby (PERFECT SERIES 6)

 

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

 

そう、日本語PDFを読み込むための準備にはDevelopment-Kitを使うのです。使わにゃならんのです、たぶん。

 

qiita.com

 

こちらの記事にも記載がありました。

 

 

Development Kit

さて、当のDevelopment Kit…についての説明は荷が重いので最小限にするとして、ある種のgemや、今回用いるような追加データを上手いことRuby環境に載せるために必要な「ビルドツール」と呼ばれるものです。

 

未だ、よく分かってないのですが。

 

とにかく、Development Kitについてはインストールしておきましょう。

 

ちなみに、「Ruby」という括りをなくすと「MinGW」というDevelopment Kitのより一般的な(?)ビルドツール/コンパイラーに出くわします。

 

yohshiy.blog.fc2.com

 

今回紹介するpoppler-dataのインストールにおいて、「どうやら“ビルド”が必要だぞ」と察してから真っ先にダウンロードしたのがこの「MinGW」。ですが、Rubyで“ビルド”と言えばこれはもう「Development Kit」を使えば良いわけで、わざわざ「MinGW」を手に入れる必要はありませんでした。

 

poppler-data

日本語でPDFを読もうと思ってpopplerをインストールの上、簡単なスクリプトを書き、お試しのPDFを読み込んでみたらば。

 

エラー(フォントがないよ、みたいなエラー)。

 

日本語を扱うには、poppler-dataが必要のようです。

 

d.hatena.ne.jp

 

が、如何せんWeb上の情報にはLinuxやMacOS向けのモノが多く、Windows環境で再現するために試行錯誤を必要としました。

 

popplerのgem installは完了していることにして、poppler-dataのダウンロードから始めましょう。

 

①ダウンロード

https://poppler.freedesktop.org/

 

上記サイトより、「poppler-data-0.4.7.tar.gz」みたいなファイルをダウンロードします。

 

②解凍・展開

圧縮・解凍ソフト 7-Zip を使って、解凍してください。gzもtarも展開してください。

 

③コンソール画面からmake

「コマンド プロンプト」から、カレントディレクトリを先ほど解凍したフォルダへ移動します。

 

そこで、カタカタっと徐に入力。

 

make install

 

Development Kit(DevKit)はこのコマンドを実行可能にするツールだったんですね(たぶん。実行できない場合はDevKitにPATHが通っているか確認してみてください)。

 

Makefileがある場所で、makemake installを入力するとビルドされる…はず。そのくらいの理解で、ここは一つ。

 

そうすると、すすすいっと何らかの過程が進行し、DevKitのインストールフォルダにファイルが追加されます。

 

\development-kit\local\share\

 

あたりを見てみると、popplerフォルダが出来上がっているのではないでしょうか。

 

これでWindows上のRuby環境に対するpoppler-dataのインストールは完了し、エラーも解消して、めでたく日本語PDFを扱うことができるようになりました。

 

…もしなってなかったらごめんなさい!ここにあなたの求める情報はありません。

 

また別のエラーが現れた?その場合には下記記事が参考になるかもしれません。

 

 

bukki.hatenablog.com

 

ご参照ください。日本語PDFが扱えるようになると、クロール対象が飛躍的に拡がる…かも?

 

追記

しばらく後にテストしたPDF以外のPDFをpopplerで読む機会があり、「ふふふん♪」と鼻唄まじりに試してみたらば。

 

Poppler-INFO **:Syntax error at position -1: No font in show/space

Poppler-INFO **:Syntax error at position -1: Missing language pack for 'Adobe-Japan1' mapping

Poppler-INFO **:Syntax error at position -1: Unknown font tag 'C2_0'

Poppler-INFO **:Syntax error at position 151358: No font in show

 

なんだか大量のエラーを吐き出し、全然読めていませんでした。肝心なpoppler-dataのファイルが認識されていない?実はテスト用のファイルはpoppler-dataなしで読めていた…?

 

という訳で(?)、解決策を示しておきます。

 

④ファイルを移動

上記手順③でMake installして得られたpopplerフォルダを、Gemがインストールされたフォルダへ移動します。

 

Rubyの環境次第で違うかもしれませんが、

 

ruby(インストールフォルダ) > lib > ruby > gems > (ヴァージョン)> poppler-3.0.8-x86-mingw32 > vendor > local > share

 

などなどと辿ったそのshareフォルダにpopplerフォルダをコピーすれば読み取ってくれるようです。*1*2

 

お試しあれ。

 

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

 

 

 

*1:③「make install」すら必要なくって、上記shareフォルダにpopplerフォルダをつくって「cidToUnicode」「cMap」「nameToUnicode」「unicodeMap」をコピーするだけでも可?

*2:「make install datadir=c:/(省略)/local/share」としてもOK?