PDF作成

PDF作成の調査。

PDF出力は正攻法でやると死んでまう。
ある程度、メソッドは用意されているものの、細かい部分はソースコードで座標位置設定して書くしかない。
途中で、お客様に「帳票のレイアウト変わったよ。えへ。」と言われるだけで死亡フラグびんびんだ。

最初は、iTextSharpで、ベースのPDFテンプレートを読み込んで記述することを考えたが
やはり、内容を書き込むときは座標位置指定なるので、それほど負担が軽くなることはない。


管理的にもコスト的にも、ExcelファイルからPDFに変換した方が良いだろうと調査。

処理手順は以下の感じ。
1.テンプレートのExcelファイルを読み込んで、更新(一時ファイル作成)
2.JODConveterをソースから叩いて、PDF変換
3.PDFファイルできあがるまで少し待って、出来上がったらレスポンスに乗っけて戻す。

テストプログラム組んでやってみたが、速度的にも問題無し。
まぁ、ちょっとサーバー側にOpenOfficeをインストールして、サービスとして常駐させないといけないが
メリットを考えれば、全然問題にならん。

Excelファイルなら、レイアウト変更も対応できるし、Name定義してその値に対して更新するように
組んでおけば、ソース側の修正が全く要らない。


今は、時間あるから、使いそうなメソッド完備させて、他のPJでも使えるようにしようかしら。

コメント / トラックバック 2 件

  1. ookkyuo より:

    PDF作成は大部分のMicrosoft officeファイル例えば:Word(doc/docx)、Excel(xls、xlsx)、PowerPoint (ppt、pptx)をPDFに作成できます。さらに、PDF作成フリーでその他の印刷可能なファイル:テキスト、画像(JPEG、GIF、PNG、 BMP、EMF、EWF、TIFF)、HTMLなどからPDFファイルに作成します。PDFを作成するだけでなく、PDF作成があらゆる印刷可能なファイ ルを以下のファイル形式に作成することができます:PNG、JPEG、BMP、PCX、TIFF、PS、EPS。


  2. おちあい より:

    ookkyuoさん

    コメントありがとうございます。
    前提条件が抜けておりました。
    WEBシステムで、ボタンクリックにより、既に用意されたExcelテンプレートに対し、データを埋め込んだ後、サーバー上でExcelファイルからPDFファイルに変換してダウンロードさせないといけなかったのです。

    ご指摘のように
    Office2008は、PDF出力ボタンがあった気がしますし、無くてもPDFCreatorやPrimoPDF,クセロPDFなどの印刷イメージをPDF出力させるようなフリーのツールを使えばできますね。

    ちなみに、OpenOffice+JODConvertorだと、ページブレークの位置などが
    オリジナルのExcelからずれてしまうため、最終的にPDFCreatorをコマンドラインから実行して対応しました。


コメントをどうぞ