アイデアの甕

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

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?

広告を非表示にする