きれいにデザインされたPDFの帳票を出力する必要があった。帳票生成ツールはどれも高い。そこでお勧めされたのが FastPDFGen。テンプレートとして用意した PDF のフォームに文字を流し込むことで、自由なデザインの PDF を作ることができる。

<ul>
<li>準備
<ol>
<li>まず、PDF の帳票を作る。Word でも PowerPoint でも PDF を作ることができさえすれば何でも良いが、今回はデザイナーさんにきれいなものを作ってもらったので Illustrator。</li>
<li>PDF に変換する。Illustrator なら、PDFに「書き出し」する。その際、最小サイズになるように。</li>
<li>Acrobat でフォームのフィールドを配置していく。項目が多いと手間がかかるが、地道に。画面上の表示と実際のフォームの位置がずれることがあるのは、Acrobat のバグなのか、FastPDFGen が情報をきちんと読み取れていないからなのか。結果を見て修正できるから致命傷ではない。フィールドのプロパティの設定に、FastPDFGen によって課される様々な制約がある。ユーザマニュアルをきちんと読んで確実に設定しておく。</li>
<li>Acrobat で最適化して保存する。最終的に生成される PDF ファイルのサイズを小さくするため。</li>
<li>FastPDFGen 付属の mkPDFTpl コマンドで、フォームを配置した PDFファイルをテンプレート化する。一ページ一ファイル。</li>
</ol>
</li>
<li>アプリで動的にPDFを生成
<ol>
<li>アプリから FastPDFGen コマンドを実行してやると、テンプレート群から PDFファイルが生成される。フォームに流し込むテキスト、貼り付ける画像は、帳票生成コマンドを記述したテキストファイルを読み込ませることによって行う。つまり、この帳票生成コマンドファイルを動的に生成すれば、内容が動的に変わるPDFファイルを作ることができる。
</ol>
</li>
</ul>

良いところと悪いところ

<ul>
<li>FastPDFGenの良いところ
<ul>
<li>安い。本番環境で使うランタイムライセンス1つと開発環境で使う開発ライセンス1つがセットで85,000円弱</li>
<li>速い。名前に違わず、生成速度が速い。3ページの帳票を生成しているが、FastPDFGenの実行そのものは一瞬で終わる。</li>
<li>どんなデザインでも実現できる。元ファイルは Illustrator で凝っても良いし、Word でも良い。</li>
<li>購入する前に、機能制限なしの FastPDFGen を一ヶ月利用することができる。シリアルも Web上に公開されているので、問い合わせなどの手間もなし。</li>
</ul>
</li>
<li>FastPDFGenの良くないところ
<ul>
<li>テキストはフォームフィールドへの流し込みなので、同じフィールド内で文字の一部の大きさを変えたり、色を変えたりという細かい修飾ができない。PDFlib はできるようだが、50万円も払えないので我慢我慢。</li>
<li>貼り付けられる画像が JPEG 限定。他にマニュアルには rgb 形式というなぞのフォーマットも記載されている。bitmap のこと?</li>
<li>デザインを変えるのに手間がかかる。デザインを変えると、PDF生成、フォームフィールドの配置、テンプレートの生成、をやり直さなくてはならない。面倒。</li>
<li>呼び出し形式が API、ライブラリではなく、コマンド実行。別に嫌いじゃなくて、むしろ好きですが、ライブラリ形式もあっても良いのではないか。</li>
<li>マイナーなので、Web上に情報がほとんどない。といっても、ユーザマニュアルだけで充分開発できたので不満はない。シンプルなので、トラブルにも会いにくい。</li>
<li>Acrobat でフォームを変更するたびに、「名前をつけて保存」しなくてはならない。いろいろと事情があるのだろう。その流儀?を理解してからは面倒だというだけで、特別困りはしなかった。</li>
</ul>
</li>
</ul>

シンプルで手軽なので、別の帳票を出力する用事が出来たら、また、使うと思う。お金があれば、PDFlib も使ってみたいけど、今の職場では機会(お金)なさそう。