Lightweight Language Lovers
火事場のCPAN 〜 偉大なるLLの"おかん"Perl 〜
- 最近、1つのPDFファイルを切り分けて複数のファイルに分割する必要に迫られました。
- Windows用のフリーソフトがいくつかあるようですが、自動化を考えるとLLで処理したいものです。
ただ、今回は急で時間がほとんどありません。
こんな時、火事場の○○力になってくれるのがPerlのCPANです。 PDF::API2というモジュールを使うと、本当に簡単に実現できてしまいました。CPANについてはあちこちで説明されていると思いますので、ここではポイントだけ書いておきます。
まず、CPANを使うための準備ですが、# perl -MCPAN -e shell
として、基本的にはデフォルトですすめていくのですが、proxy の設定でちょっとつまずいてしまいました。あわてていたので、そのサイトのページに出ていたとおり、Your ftp_proxy? [http://proxy:8000/]
と"[ ]"(ブラケット)まで入れて答えてしまいました。(愚か・・・) 今、冷静に考えるとこれはデフォルト値が表示されている例だったのですね・・・ 普通にURLだけ入れれば良かったのです。アドレスだけ入れたり、IPアドレスで入れたりしてもつながらなかった訳です。- 小一時間ほど損をしてしまいましたが、設定さえ出来ればモジュールのインストールそのものは
> install PDF::API2
で一発です。関連するモジュールも自動的にインストールしてくれました。 PDF-API2-0.59.002.tar.gzの中には、サンプルと思われるプログラムがいくつか入っています。この中のpdf-merge.plが雛型として使えそうです。
CPANコマンドのシェルから install コマンドでインストールした場合、どこに入ったのかがわかりませんでしたが、今探してみると、.cpan/build/PDF-API2-0.59.002/contribにありました。
- これは複数のPDFファイルをマージして1つのPDFファイルにするプログラム例で、今、実現したい事とは逆の事なのですが、中のコードを見ると少しの変更で対応できそうです。
具体的なコードは /PdfMerge を見ていただくとして、サンプルプログラムをほんの数行を直すだけで実現出来てしまいました。しかも単に切り出すだけではなく、複数のファイルから必要な部分だけ寄せ集めることも出来ます。やっぱりPerlはストリートファイトではまだまだ最強なのかも知れません。最初、この記事のサブタイトルを、Perlの成功が数々のLLの発展の基礎になったという意味で、「LLの母」と考えていたのですが、生活力にあふれた「おかん」という表現がぴったりなのに気づきました。... CategoryColumn/PerlAndPython
- 完璧に整理しようとして途中で終わってしまっている父を尻目に、全然片付けられていないぐ書類の山の中から、目的の書類をすばやく出して言うのです。「はい、これ」