- - PR -
JasperReportsでPDFを複数ページ出力した際のロックの設定方法
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