import java.io.IOException; import java.net.URL; import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jfree.report.Boot; import org.jfree.report.JFreeReport; import org.jfree.report.modules.output.pageable.base.PageableReportProcessor; import org.jfree.report.modules.output.pageable.pdf.PDFOutputTarget; import org.jfree.report.modules.parser.base.ReportGenerator; import org.jfree.report.util.Log; import org.jfree.report.util.ReportConfiguration; import org.jfree.xml.ElementDefinitionException; /** * * <p>JFreeReport的pdf文件的生成。<p> * * 创建日期 2013-5-13<br> * @author longgangbai<br> * @version $Revision$ 2013-5-13 * @since 3.0.0 */ public class JFreeReportServlet extends HttpServlet implements Servlet { // private static final long serialVersionUID = 1L; /** * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("application/pdf"); ServletOutputStream out = resp.getOutputStream(); try { // initialize JFreeReport Boot.start(); ReportConfiguration.getGlobalConfig().setLogLevel("Error"); // update the log system to use the new settings ... Log.getJFreeReportLog().init(); final URL in = getServletContext().getResource("/resources/swing-icons.xml"); if (in == null) { throw new Exception("swing-icons.xml can't be found."); } final JFreeReport report = parseReport(in); report.setData(new com.easyway.jfreereport.ext.SwingIconsDemoTableModel()); PDFOutputTarget target = new PDFOutputTarget(out, report.getDefaultPageFormat(), false); target.configure(report.getReportConfiguration()); target.open(); PageableReportProcessor proc = new PageableReportProcessor(report); proc.setOutputTarget(target); proc.processReport(); target.close(); } catch (Exception ex) { System.err.println("Generate PDF failed: " + ex); } finally { try { out.close(); } catch (Exception e) { System.err.println("Output PDF failed: " + e); } } } /** * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } /** * Reads the report from the swing-icons.xml report template. * * @param templateURL The template location. * * @return A report. * @throws ElementDefinitionException if the report generator encountered an error. * @throws IOException if there was an IO error while reading from the URL. */ private JFreeReport parseReport(final URL templateURL) throws IOException, ElementDefinitionException { final ReportGenerator generator = ReportGenerator.getInstance(); return generator.parseReport(templateURL); } }
相关推荐
总的来说,JFreeReport的源代码是一个宝贵的教育资源,不仅能够帮助开发者理解报表生成的底层逻辑,还能为构建自己的报表系统提供灵感和指导。对于Java Web开发者来说,掌握JFreeReport源代码的知识点无疑将大大提升...
总结来说,JFreeReport作为一款强大的Java报表工具,提供了丰富的功能和易用的API,能够帮助开发者快速实现Web报表功能。通过理解JFreeReport的工作原理和实践案例,可以大大提高开发效率,为Web应用增添更多价值。...
本篇文章将深入探讨Java Web报表库的概念、其重要性以及jFreeReport作为其中一个库的具体应用。 在Web开发中,报表是一种关键的组件,它能够以结构化的形式展示复杂的数据。Java Web报表库使得开发者能够在服务器端...
- **嵌入式功能**:JFreeReport 可以轻松地集成到 Java 应用程序中,如 Swing 或者 Web 应用,提供报表生成和显示的功能。 - **打印与导出**:生成的报表可以被打印,也可以导出为 PDF、HTML、Excel、CSV 等多种...
1. **OpenReports**:OpenReports是一款基于Web的报表生成工具,它能够自动生成动态的PDF、XLS、HTML、CSV和图表报表。该工具利用了Hibernate、Velocity和Webwork等开源技术,为开发者提供了一套灵活的报表解决方案...
它旨在简化Java应用程序中的报表生成过程,支持PDF、Excel、HTML、XHTML、PlainText、XML和CSV等格式的输出。与JasperReports相比,JFreeReport更适合那些需要快速部署和简单报表需求的项目。同时,JFreeReport与...
OpenReports,作为一款开源的Web报表解决方案,凭借其强大的功能、灵活性以及易用性,在报表生成与灵活调度方面表现卓越。它支持多种开源报表引擎,如JasperReports、JFreeReport、JXLS和Eclipse BIRT,旨在满足不同...
JFreeReport是一款开源的Java报表生成工具,它允许开发者在Java应用程序中创建复杂的报表,包括表格、图表、图像等多种元素。这个工具以其灵活性和强大的功能著称,可以方便地嵌入到Java应用、Web应用或者Swing应用...
JXLS 是基于 Jakarta POI API 的 Excel 报表生成工具,可以生成精美的 Excel 格式报表。它采用标签的方式,类似 JSP 标签, 写一个 Excel 模板, 然后生成报表, 非常灵活, 简单! JXLS 的主要特点: * 基于 ...
总的来说,JFreeReport 提供了强大且灵活的报表生成解决方案,对于需要在Java应用中实现复杂报表功能的开发者来说,是一个非常有价值的工具。通过深入研究源码和实践,开发者可以充分利用其特性,为项目带来高效、...
除了JFreeChart,该公司还提供了JFreeReport(报表解决工具)、JCommon(公共类库)和JFreeDesigner(报表设计工具),形成了一套完整的数据呈现解决方案。JFreeChart不仅支持应用程序和Applet,还支持Servlet和JSP...
在压缩包"Java处理报表"中,可能包含了实现以上步骤的源代码示例,包括创建数据集、构造图表、自定义样式和保存图表等关键函数。你可以通过学习这些代码,理解JFreeChart的工作原理,并将其应用到自己的项目中。 ...
- **简介**:JXLS是一个基于Jakarta POI API的Excel报表生成工具,它可以生成高质量的Excel格式报表。它采用了类似于JSP标签的方式来编写Excel模板,生成报表时非常灵活且简单。 - **特点**: - **模板驱动**:...
例如,通过JasperReports API可以直接生成PDF或HTML格式的报表。对于Web应用,通常会将报表嵌入到Servlet或JSP页面中,利用AJAX技术提供交互体验。 6. **报表导出**: 用户通常需要将报表导出为其他格式保存或分享...
Java 开源报表制作工具推荐 Java 开源报表制造工具是 Java 开发者常用的报表...这 6 款 Java 开源报表制作工具涵盖了报表生成、报表设计、数据分析、商业智能等多个方面,为 Java 开发者提供了丰富的报表解决方案。
JXLS是一个基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表。它采用标签的方式,类似JSP标签,写一个Excel模板,然后生成报表,非常灵活,简单! JXLS的主要特点包括: * 基于Jakarta POI ...
JFreeReport是一个纯Java的报表生成库,它支持自定义设计、多种数据源和多种输出格式,如PDF、HTML、CSV等。而JasperReports则是非常流行的选择,它不仅支持多种输出格式,还有强大的模板设计功能,可以通过IRI...
【描述】:虽然描述为空,但根据提供的博文链接(已无法访问),我们可以推测讨论可能涉及了Java中的报表生成技术。博主可能分享了如何使用特定的Java库创建、设计和导出报表,以及如何将这些报表集成到Java应用程序...
- JasperReports:广泛应用的报表工具,支持多种数据源,可以生成PDF、HTML、Excel等多种格式的报表。 - BIRT(Business Intelligence and Reporting Tools):基于Eclipse的开源报表系统,适合大型企业级应用。 ...
JFreeChart是一个强大的Java图表库,用于创建多种类型的图表,包括饼图、柱状图、线图、区域图、分布图、混合图、甘特图和仪表盘等。...无论是用于数据分析、报表生成还是可视化展示,JFreeChart都能提供强大的支持。