CodeZine(コードジン)

特集ページ一覧

iTextSharpを利用して.NETでPDF帳票を出力する

iTextSharpで見栄えの良い印刷帳票を作成する

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/08/07 00:00
目次

(5)パスワードの設定、PDFファイルのプロパティ情報の設定

 最後に、セキュリティやプロパティなどPDFファイル全体に関する設定について紹介します。

パスワードを設定する

 重要な文書を生成するときには、PDFファイルにパスワードを設定することができます。また、ユーザーに複製させたくなかったり、印刷させたくないといったセキュリティの設定を行うこともできます。

 このような場合には、PdfWirterGetInstanceにて、PdfWriterのインスタンスを取得し、SetEncryptionメソッドを呼び出します。

パスワードの設定
//ファイル出力用のストリームを取得
PdfWriter writer = PdfWriter.GetInstance(doc,
    new FileStream("05_Security.pdf", FileMode.Create));
//暗号化の設定(強度,ユーザパスワード,オーナーパスワード,印刷/保存設定)
writer.SetEncryption(PdfWriter.STRENGTH128BITS, "pass", 
    "opass", PdfWriter.AllowPrinting | PdfWriter.AllowCopy);

 SetEncryptionメソッドを呼び出すときに、引数に、「暗号化強度/ユーザーパスワード/オーナーパスワード/セキュリティ設定」という順で設定をすることができます。

 暗号化の強度は「STRENGTH40BITS(40bit暗号化:Acrobat Reader3.0以降対応)」か「STRENGTH128BITS(128bit暗号化:Acrobat Reader5.0以降対応)」を選択できます。このメソッドを呼び出して生成したPDFファイルは、次のようにPDFファイルを開くときにパスワードを入力するダイアログが表示されます。ここでは「pass」と入力しなければ、PDF文書を開くことができません。

パスワードの入力が要求される(ここでは「pass」)
パスワードの入力が要求される(ここでは「pass」)

 また、設定したセキュリティの内容は、プロパティの[セキュリティ]タブから確認することができます。ここでは、印刷とコピーを許可しています。

セキュリティの内容
セキュリティの内容

 セキュリティで許可する項目は次の列挙子を「|」でつなぐことで定義できます。(すべて禁止にする場合は0と入力します。)

セキュリティで許可できる項目
設定内容PdfWriterクラスの列挙子
印刷AllowPrinting
文書の変更AllowModifyContents
内容のコピーと抽出AllowCopy
注釈AllowModifyAnnotations
フォームフィールドの入力と署名AllowFillIn
アクセシビリティを有効にするAllowScreenReaders
文章アセンブリAllowAssembly

 なお、暗号化された文書を生成するときには、DocumentOpenメソッドを呼び出す前に、setEncryptionメソッドを呼び出す必要があります。

作成者などのメタ情報を設定する。

 PDFの文書には、誰がどのような目的で作成したのかといった「メタ情報」を設定することができます。

メタ情報を設定するDocumentクラスの主要メソッド
メソッド説明
addTitle()タイトルを設定
addAuthor()作成者を設定
addSubject()サブタイトルを設定
addKeywords()キーワードを設定
addCreator()アプリケーションを設定

 これらを次のコードのように実行すると、PDF文書に属性を設定することができます。

表の中の値の設定
//PDFドキュメントのメタ情報を設定
doc.AddTitle("タイトルです");
doc.AddAuthor("アイテキスト 太郎");
doc.AddSubject("サブタイトルです");
doc.AddKeywords(".NET, iTextSharp");
doc.AddCreator("iTextSharpSample.exe");

 この結果は、プロパティの[概要]タブから確認することができます。

メタ情報の確認
メタ情報の確認

まとめ

 これまで説明してきたようにiTextSharpでは、文字、フォント、表の部品を表すクラスを組み合わせてPDFドキュメントを作成します。

 最後に登場したクラスについて整理します。

  • Documentクラスは、PDF文書そのものを表すクラスです。
  • PdfWriterクラスは、PDFを書き出すクラスです。
  • Paragraphクラス、Phraseクラス、Chunkクラスはコンテンツを表すクラスです。
  • Fontクラスは、フォントを定義するクラスです。
  • Tableクラスは表を、Cellクラスはマス目を表すクラスです。
  • PDFファイルのメタ情報やセキュリティ設定も行うことができます。

 以上、駆け足でしたが、iTextSharpを使って、PDFを生成する方法について紹介しました。今後、.NETからPDFを生成する場合にはiTextSharpの利用を検討してみてはいかがでしょうか。

参考資料

  1. SourceForge 『iTextSharp
  2. WikiPedia 『PDF(Portable Document Format)
  3. PDFなんでも情報ブログ 『PDF千夜一夜
  4. どっとねっとふぁん 『iTextSharpを利用したPDF作成(Web編)
  5. 河端善博の.TEXTでウェブログ 『iTextSharp:ASP.NETからPDF出力』
  6. iText.NET 『チュートリアル
  7. iText.NET 『サンプル(C#)
  8. iText.NET 『サンプル(VB)
  9. @IT 『iText.NETでPDF文書に表を追加するには?
  10. iText Homepage(英語)
  11. CodeZine 『iTextを利用してJavaからPDF形式の帳票を出力する
※注
 iText(Java)やiText.NETの資料です(iTextSharpの資料ではありません)
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 青木 淳夫(アオキ アツオ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きた...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5