- PR -

JasperReportsでPDFを複数ページ出力した際のロックの設定方法

1
投稿者投稿内容
シーナ
会議室デビュー日: 2007/06/25
投稿数: 1
投稿日時: 2007-06-25 21:22
初めて投稿させていただきます。

現在、JasperReportsを利用したPDFをブラウザ上に表示する処理を作成しています。
今回の仕様としましては

 1.PDFファイルをダウンロードせずに、直接ブラウザ上に表示する
 2.PDFファイルは1ファイルに複数ページ表示可能となっている
 3.セキュリティを考慮し、パスワードの設定を行う

があるのですが、改ページされた上、パスワード設定がされたPDFファイルを
作成することが出来ません。

改ページのみの設定は以下の内容で出来ました。

JasperPrint print = null;
for (int i=1; i <= pageCount; i++) {
// 1ページ目
if (i==1) {
// byte[]としてPDFを生成
print = JasperFillManager.fillReport(jasperPath, pageMap);

// 2ページ目以降
} else {
  // byte[]としてPDFを生成
  JasperPrint printPlus = JasperFillManager.fillReport(jasperPath, pageMap);
// ページを足す
print.addPage((JRPrintPage)printPlus.getPages().get(0));
}
}

byte[] bytes = JasperExportManager.exportReportToPdf(print);

// 出力設定
response.setContentType("application/pdf");
response.setContentLength(bytes.length);

// 生成したbyte[]をストリームに出力
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(bytes, 0, bytes.length);
outputStream.flush();
outputStream.close();



一方、パスワードの設定は下記の内容で出来ました。
(改ページはされませんでした)

JRPrintPage page = new JRBasePrintPage();
page.setElements(print2.getPages());
// ページを足す
print.addPage((JRPrintPage)print2.getPages().get(0));

// 出力設定
response.setContentType("application/pdf");

// ストリーム
javax.servlet.ServletOutputStream outputStream = response.getOutputStream();

// Exporterの生成
JRPdfExporter exporter = new JRPdfExporter();
// 出力オブジェクトの設定
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT, print);
// 出力先の設定
exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, outputStream);
// パスワード保護を有効にする
exporter.setParameter(JRPdfExporterParameter.IS_ENCRYPTED, Boolean.TRUE);
// Permissionsの設定(7:印刷のみ許可)
exporter.setParameter(JRPdfExporterParameter.PERMISSIONS, new Integer(7));
// パスワードの設定
exporter.setParameter(JRPdfExporterParameter.OWNER_PASSWORD, "password");

// 出力の実行
exporter.exportReport();
outputStream.flush();
outputStream.close();


また、テンプレートファイルはiReportで作成しています。
iReport上でもパスワードの設定を行ってみましたが
iReportでPDF出力をした場合しかパスワードが設定されませんでした。


環境===================
・J2SDK1.4.2_11
・JasperReport-1.3.3
・iReport1.3.3
・weblogic8.1 SP6
・IE6
=======================
1

スキルアップ/キャリアアップ(JOB@IT)