WebアプリにはPDF帳票で。 使い慣れたOAアプリで楽々設計! JavaAPIで動的にPDF帳票を作成。
WebKCore(TM) PDFレポート ライブラリEdition JFEグループ KITシステムズ株式会社
JFEシステムズ株式会社

●ご購入ご検討のお客様へ
試用版ダウンロード

PDF帳票出力デモ

機能

動作環境

価格

お問い合わせ

●ご使用されているお客様へ
インストール手順

開発環境設定手順

開発手順

ツールコマンドの使い方

CookBook
1.基礎編
2.応用編
3.バーコード編

Tips
1.文字間ピッチを調整する
2.異なるフォーマットを含んだPDFを作る
3.Acrobat Java Scriptを含んだPDFを作る

●共通
商標について

更新履歴

お客様へ重要なお知らせ

SiteMap

   
CookBook

2-4 文書にセキュリティを設定する

これまでCookBook2(応用編)で作成してきたPDF帳票にセキュリティを設定してみましょう。セキュリティの設定により以下の制限を持つPDF帳票をそれぞれ生成します。

  • 閲覧のみ可能なPDF帳票
  • 閲覧および印刷が可能なPDF帳票
  • 表示の際にパスワード入力が必要なPDF帳票

まずはじめに「閲覧のみ可能なPDF帳票」の設定をおこないましょう。利用するAPIは以下の通りです。

<利用API-1>
クラス:UserAccessPermission
コンストラクタ:UserAccessPermission()
メソッド:setOwnerPassword(String ownerPassword)
<引数>
ownerPassword:PDF文書の権限パスワード
<用途>
PDF文書のセキュリティ設定を作成します。
<利用API-2>
クラス:Report
コンストラクタ:Report(File formFile, File datFile, OutPutStream fout, UserAccessPermission permission)
<引数>
formFile: テンプレートPDFファイル
datFile: フォーム定義ファイル
fout: 出力先
permission:セキュリティ情報
<用途>
セキュリティ情報を含んだ空のPDF帳票を準備します。
<記述例>
//UserAccessPermissionインスタンスを生成する
UserAccessPermission permission = new UserAccessPermission();
//このPDF帳票のセキュリティ設定変更時に必要な
//権限パスワードを設定する
permission.setOwnerPassword("testPassword");
//セキュリティ付PDF帳票のReportインスタンスを生成する
Report report = new Report(formFile, datFile, fout, permission);

記述されたコードはこちらをご覧下さい。
◎javaファイル:cookbook/chapter2-4/ViewOnly.java

コードの追記が終了したら、プログラムを実行し生成されたPDF帳票を開いてみましょう。
閲覧のみが可能なことを確認してください。
◎出力されたPDF帳票:cookbook/chapter2-4/ViewOnly.pdf

このPDF帳票の文書のプロパティ [セキュリティ] は以下のように表示されます。




先ほど作成したPDF帳票を印刷のみ実行可能としてみましょう。利用するAPIは以下の通りです。

<利用API>
クラス:UserAccessPermission
メソッド:enable(int bitToEnable)
<引数>
bitToEnable: セキュリティ設定の情報
<定数>
UserAccessPermission.PRINTING : 印刷(通常 - 暗号化レベル40bit, 低解像度 - 暗号化レベル128bit)
UserAccessPermission.DEGRADED_PRINTING : 印刷(低解像度 - 暗号化レベル128bitのみ)
UserAccessPermission.HIGHEST_QUARITY_LEVEL_PRINTING : 印刷(高解像度 - 暗号化レベル128bitのみ)
<用途>
PDF帳票に対してセキュリティ設定を行ないます。
<記述例>
UserAccessPermission permission = new UserAccessPermission();
//権限パスワードを設定する
permission.setOwnerPassword("testPassword");
//セキュリティ設定を行なう
permission.enable(UserAccessPermission.HIGH_QUARITY_LEVEL_PRINTING);
☆コラム☆〜 暗号化レベル 〜
パーミッション設定を行う際、暗号化レベルとして40bit、128bitを選択することが出来ます。それぞれ以下のような違いがあります。
暗号化レベル 互換性
40bit Acrobat3.0およびAcrobat4.0
128bit Acrobat5.0およびAcrobat6.0

ReportクラスのコンストラクタReport(File templatePdfFile, File datFile, OutputStream out,UserAccessPermission permission)を使用すると暗号化レベルとして128bitが使用されます。暗号化レベルとして40bitを使用する場合にはコンストラクタReport(File templatePdfFile, File datFile, OutputStream out,int keyLength,UserAccessPermission permission)を使用し、引数keyLengthに'40'を渡してください。
<記述例>
//暗号化レベルを40bitとして設定
Report report = new Report(form, dat, fout, 40, permission)
                                            ^^
■参考■
enable()メソッドに設定できる定数には印刷設定以外にも以下の設定が存在します。
詳細はこの下のコラム、チュートリアル・JavaDocをご覧ください。
UserAccessPermission.MODIFY
UserAccessPermission.MODIFY_COPY
UserAccessPermission.MODIFY_ANNOTATIONS
UserAccessPermission.FILL_IN_FORM_FIELDS
UserAccessPermission.EXTRACT
UserAccessPermission.ASSEMBLE
■参考■
enable()メソッドとは逆の働きをするdisable()メソッドもAPIには準備されています。
詳細はこの下のコラム、チュートリアル・JavaDocをご覧ください。

記述されたコードはこちらをご覧下さい。
◎javaファイル:cookbook/chapter2-4/ViewPrint.java

コードの追記が終了したら、プログラムを実行し生成されたPDF帳票を開いてみましょう。
閲覧に加えて印刷が可能なことを確認してください。
◎出力されたPDF帳票:cookbook/chapter2-4/ViewPrint.pdf

このPDF帳票の文書のプロパティ [セキュリティ] は以下のように表示されます。




最後に、これまで作成してきたPDF帳票を表示する際にパスワード入力が必要となるように変更してみましょう。利用するAPIは以下の通りです。

<利用API>
クラス:UserAccessPermission
メソッド:setUserPassword(String userPassword)
<引数>
userPassword:PDF文書のユーザパスワード
<用途>
PDF文書に対してユーザパスワードを設定します。
<記述例>
//ユーザパスワードを設定する
permission.setUserPassword("openPassword");

記述されたコードはこちらをご覧下さい。
◎javaファイル:cookbook/chapter2-4/InputPassword.java

コードの追記が終了したら、プログラムを実行し生成されたPDF帳票を開いてみましょう。
開く際にパスワードの確認ダイアログが表示されることと設定したユーザパスワードの入力よって文書が開かれることを確認してください。以下のようなダイヤログが表示されます。



◎出力されたPDF帳票:cookbook/chapter2-4/InputPassword.pdf

☆コラム☆〜 Acrobatにおけるパーミッション設定 〜
Acrobatでの代表的なパーミッション(印刷以外)の設定方法について以下に示しておきます。参考にしてください。
(文字の抽出および注釈の操作については暗号化レベルによって設定が異なりますのでご注意下さい)
PDF文書に対して許可される操作 プログラム内での設定内容
文字の抽出
(暗号化レベル-128bit)
enable(UserAccessPermission.COPY)
enable(UserAccessPermission.EXTRACT)
文字の抽出
(暗号化レベル-40bit)
enable(UserAccessPermission.COPY)
文書の変更 enable(UserAccessPermission.MODIFY)
enable(UserAccessPermission.MODIFY_ANNOTATIONS)
文書アセンブリ(ページ回転など) enable(UserAccessPermission.ASSEMBLE)
注釈の操作
(編集、追加 - 暗号化レベル128bit)
enable(UserAccessPermission.MODIFY_ANNOTATIONS)
enable(UserAccessPermission.EXTRACT)
注釈の操作
(編集、追加 - 暗号化レベル40bit)
enable(UserAccessPermission.MODIFY_ANNOTATIONS)
フィールドの入力 enable(UserAccessPermission.FILL_IN_FORM_FIELDS)
文字抽出以外の全ての操作 enable(UserAccessPermission.MODIFY)
enable(UserAccessPermission.MODIFY_ANNOTATIONS)
disable(UserAccessPermission.COPY)







Last Updated : 2006-12-11

Copyright © 2006 . JFEシステムズ株式会社
http://www.jfe-systems.com