PDF作成
PDF作成の調査。
PDF出力は正攻法でやると死んでまう。
ある程度、メソッドは用意されているものの、細かい部分はソースコードで座標位置設定して書くしかない。
途中で、お客様に「帳票のレイアウト変わったよ。えへ。」と言われるだけで死亡フラグびんびんだ。
最初は、iTextSharpで、ベースのPDFテンプレートを読み込んで記述することを考えたが
やはり、内容を書き込むときは座標位置指定なるので、それほど負担が軽くなることはない。
管理的にもコスト的にも、ExcelファイルからPDFに変換した方が良いだろうと調査。
処理手順は以下の感じ。
1.テンプレートのExcelファイルを読み込んで、更新(一時ファイル作成)
2.JODConveterをソースから叩いて、PDF変換
3.PDFファイルできあがるまで少し待って、出来上がったらレスポンスに乗っけて戻す。
テストプログラム組んでやってみたが、速度的にも問題無し。
まぁ、ちょっとサーバー側にOpenOfficeをインストールして、サービスとして常駐させないといけないが
メリットを考えれば、全然問題にならん。
Excelファイルなら、レイアウト変更も対応できるし、Name定義してその値に対して更新するように
組んでおけば、ソース側の修正が全く要らない。
今は、時間あるから、使いそうなメソッド完備させて、他のPJでも使えるようにしようかしら。
2010 年 8 月 24 日 12:16 PM
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。
2010 年 8 月 24 日 1:02 PM
ookkyuoさん
コメントありがとうございます。
前提条件が抜けておりました。
WEBシステムで、ボタンクリックにより、既に用意されたExcelテンプレートに対し、データを埋め込んだ後、サーバー上でExcelファイルからPDFファイルに変換してダウンロードさせないといけなかったのです。
ご指摘のように
Office2008は、PDF出力ボタンがあった気がしますし、無くてもPDFCreatorやPrimoPDF,クセロPDFなどの印刷イメージをPDF出力させるようなフリーのツールを使えばできますね。
ちなみに、OpenOffice+JODConvertorだと、ページブレークの位置などが
オリジナルのExcelからずれてしまうため、最終的にPDFCreatorをコマンドラインから実行して対応しました。