📄 pdfsavebug.java
字号:
/** * ======================================== * JFreeReport : a free Java report library * ======================================== * * Project Info: http://www.jfree.org/jfreereport/index.html * Project Lead: Thomas Morgner; * * (C) Copyright 2000-2003, by Simba Management Limited and Contributors. * * This library is free software; you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Foundation; * either version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along with this * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. * * ------------------------------ * PDFSaveBug.java * ------------------------------ * (C)opyright 2003, by Thomas Morgner and Contributors. * * Original Author: Thomas Morgner; * Contributor(s): David Gilbert (for Simba Management Limited); * * $Id$ * * Changes * ------------------------- * 21.08.2003 : Initial version * */package com.jrefinery.report.ext.junit.bugs;import java.awt.print.PageFormat;import java.io.BufferedOutputStream;import java.io.ByteArrayOutputStream;import java.io.OutputStream;import java.net.URL;import com.jrefinery.report.JFreeReport;import com.jrefinery.report.demo.SampleData1;import com.jrefinery.report.io.ReportGenerator;import com.jrefinery.report.targets.pageable.PageableReportProcessor;import com.jrefinery.report.targets.pageable.output.PDFOutputTarget;import com.jrefinery.report.util.Log;import com.lowagie.text.DocWriter;import com.lowagie.text.pdf.PdfReader;import junit.framework.TestCase;public class PDFSaveBug extends TestCase{ private static final String REPORT = "/com/jrefinery/report/demo/security.xml"; public PDFSaveBug () { } public void testSaveEncrypted() throws Exception { JFreeReport report = parseReport(); byte[] b = createPDF(report); PdfReader reader = new PdfReader(b, DocWriter.getISOBytes("Duck")); assertTrue(reader.isEncrypted()); } public JFreeReport parseReport() throws Exception { final URL url = this.getClass().getResource(REPORT); assertNotNull(url); try { JFreeReport report = ReportGenerator.getInstance().parseReport(url); report.setData(new SampleData1()); return report; } catch (Exception e) { Log.debug("Failed to parse " + url, e); fail(); } return null; } /** * Saves a report to PDF format. * * @param report the report. * * @return true or false. */ private static byte[] createPDF(final JFreeReport report) { ByteArrayOutputStream bout = new ByteArrayOutputStream(); OutputStream out = null; try { out = new BufferedOutputStream(bout); final PageFormat pf = report.getDefaultPageFormat(); final PDFOutputTarget target = new PDFOutputTarget(out, pf, true); target.configure(report.getReportConfiguration()); target.open(); final PageableReportProcessor proc = new PageableReportProcessor(report); proc.setOutputTarget(target); proc.processReport(); target.close(); } catch (Exception e) { Log.error ("Writing PDF failed.", e); } finally { try { if (out != null) { out.close(); } } catch (Exception e) { Log.error("Saving PDF failed.", e); } } return bout.toByteArray(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -