|
.NET TIPS [ASP.NET]あらかじめ用意したPDF文書をインポートするには?山田 祥寛2005/06/24 |
![]() |
|
|
|
「TIPS:[ASP.NET]Webフォームから動的にPDF文書を作成するには?」や「TIPS:[ASP.NET]PDF文書のセキュリティ情報やヘッダ/フッタを設定するには?」では、iText.NETライブラリを利用して、WebフォームからPDF文書を生成する方法を紹介した。
しかし、PDF文書を動的に生成するといっても、定型的なデザインを一から動的に生成する必要はない。そのようなことをすれば、コードが無駄に冗長になり、サーバに対する負荷を増やしてしまう一因ともなる。また、帳票レイアウトに変更が生じた場合に、コードを直接修正しなければならないのもうれしいことではないだろう。
そこで、一般的には定型的な枠組みの部分は「テンプレート」としてあらかじめ用意しておき、動的にデータベースなどから取得するべきデータ部分だけをASP.NETから操作するのが好ましい。
本稿では、あらかじめ用意したテンプレートPDF「template.pdf」に対してデータを動的に追記する方法について紹介しよう。なお、本稿ではあらかじめ以下のようなPDF文書を用意し、サーバ上に配置しておくものとする。
![]() |
| あらかじめ用意しておくPDFテンプレート(template.pdf) |
それではさっそく、具体的なサンプル・コードを眺めてみることにしよう。なお、本稿のサンプルを実行するには、「TIPS:[ASP.NET]Webフォームから動的にPDF文書を作成するには?」の手順に従って、iText.NETの展開とweb.configの設定を行っておく必要がある。
|
|
| テンプレートPDFを基にPDF文書を生成するWebフォーム(C#版:pdf_template_cs.aspx) |
|
|
| テンプレートPDFを基にPDF文書を生成するWebフォーム(VB.NET版:pdf_template_vb.aspx) |
ここで注目していただきたいのは、ソースコード中、太字で示した部分だ。テンプレートを利用するには、PdfReaderクラス(com.lowagie.text.pdf名前空間)でまず、あらかじめ用意したテンプレートPDFを読み込む必要がある。読み込んだテンプレートは、PdfWriterオブジェクト(com.lowagie.text.pdf名前空間)のgetImportedPageメソッドからページ数を指定してインポートすることが可能だ。
|
||
| PdfWriter.getImportedPageメソッドのシグネチャ(上:C#、下:VB.NET) | ||
| このメソッドでは、第1パラメータにPdfReaderオブジェクトを、第2パラメータにページ数を渡すことができる。戻り値として、インポートされたページを表現するPdfImportedPageオブジェクト(com.lowagie.text.pdf名前空間)を返す。 |
インポートしたページを現在のページに追加するには、PdfContentByteオブジェクト(com.lowagie.text.pdf名前空間)のaddTemplateメソッドを使用すればよい。
|
||
| PdfContentByte.addTemplateメソッドのシグネチャ(上:C#、下:VB.NET) | ||
| このメソッドでは、第1パラメータにPdfTemplateオブジェクト(com.lowagie.text.pdf名前空間)を、第2パラメータにx座標、第3パラメータにy座標を渡すことができる。 |
以上を理解したら、実際にサンプルを動かしてみよう。以下の画面のように、テンプレートtemplate.pdfに対して、文字列が追記されていれば成功だ。
![]() |
| pdf_template_cs.aspx/pdf_template_vb.aspxの実行結果 |
ちなみに、本サンプルではインポートしたテンプレートをそのまま貼り付けているが、貼り付け前に(先ほど示したaddTemplateメソッドの別バージョンのメソッドを利用することで)縮小/拡大処理を施すことも可能だ。![]()
| カテゴリ:Webフォーム 処理対象:PDF 使用ライブラリ:PdfWriterクラス(com.lowagie.text.pdf名前空間) 使用ライブラリ:PdfReaderクラス(com.lowagie.text.pdf名前空間) 使用ライブラリ:PdfContentByteクラス(com.lowagie.text.pdf名前空間) 使用ライブラリ:PdfTemplateクラス(com.lowagie.text.pdf名前空間) 関連TIPS:[ASP.NET]Webフォームから動的にPDF文書を作成するには? 関連TIPS:[ASP.NET]PDF文書のセキュリティ情報やヘッダ/フッタを設定するには? |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




