`
longgangbai
  • 浏览: 7340769 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JFreeReport的web报表生成pdf的实现

阅读更多

 

 

 

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 web报表 源代码

    总的来说,JFreeReport的源代码是一个宝贵的教育资源,不仅能够帮助开发者理解报表生成的底层逻辑,还能为构建自己的报表系统提供灵感和指导。对于Java Web开发者来说,掌握JFreeReport源代码的知识点无疑将大大提升...

    Web报表开发技术-JFreeReport开发技术实例

    总结来说,JFreeReport作为一款强大的Java报表工具,提供了丰富的功能和易用的API,能够帮助开发者快速实现Web报表功能。通过理解JFreeReport的工作原理和实践案例,可以大大提高开发效率,为Web应用增添更多价值。...

    Java的Web报表库

    本篇文章将深入探讨Java Web报表库的概念、其重要性以及jFreeReport作为其中一个库的具体应用。 在Web开发中,报表是一种关键的组件,它能够以结构化的形式展示复杂的数据。Java Web报表库使得开发者能够在服务器端...

    报表工具 jfreereport 额

    - **嵌入式功能**:JFreeReport 可以轻松地集成到 Java 应用程序中,如 Swing 或者 Web 应用,提供报表生成和显示的功能。 - **打印与导出**:生成的报表可以被打印,也可以导出为 PDF、HTML、Excel、CSV 等多种...

    java 报表生成 工具介绍

    1. **OpenReports**:OpenReports是一款基于Web的报表生成工具,它能够自动生成动态的PDF、XLS、HTML、CSV和图表报表。该工具利用了Hibernate、Velocity和Webwork等开源技术,为开发者提供了一套灵活的报表解决方案...

    java生成报表方法简介

    它旨在简化Java应用程序中的报表生成过程,支持PDF、Excel、HTML、XHTML、PlainText、XML和CSV等格式的输出。与JasperReports相比,JFreeReport更适合那些需要快速部署和简单报表需求的项目。同时,JFreeReport与...

    Web报表制作工具OpenReports3.0简介

    OpenReports,作为一款开源的Web报表解决方案,凭借其强大的功能、灵活性以及易用性,在报表生成与灵活调度方面表现卓越。它支持多种开源报表引擎,如JasperReports、JFreeReport、JXLS和Eclipse BIRT,旨在满足不同...

    JFreeReport小例子

    JFreeReport是一款开源的Java报表生成工具,它允许开发者在Java应用程序中创建复杂的报表,包括表格、图表、图像等多种元素。这个工具以其灵活性和强大的功能著称,可以方便地嵌入到Java应用、Web应用或者Swing应用...

    推荐6款常用的Java开源报表制作工具.pdf

    JXLS 是基于 Jakarta POI API 的 Excel 报表生成工具,可以生成精美的 Excel 格式报表。它采用标签的方式,类似 JSP 标签, 写一个 Excel 模板, 然后生成报表, 非常灵活, 简单! JXLS 的主要特点: * 基于 ...

    JfreeReport Reference

    总的来说,JFreeReport 提供了强大且灵活的报表生成解决方案,对于需要在Java应用中实现复杂报表功能的开发者来说,是一个非常有价值的工具。通过深入研究源码和实践,开发者可以充分利用其特性,为项目带来高效、...

    JfreeChart生成报表[定义].pdf

    除了JFreeChart,该公司还提供了JFreeReport(报表解决工具)、JCommon(公共类库)和JFreeDesigner(报表设计工具),形成了一套完整的数据呈现解决方案。JFreeChart不仅支持应用程序和Applet,还支持Servlet和JSP...

    jfreechat处理报表简单demo

    在压缩包"Java处理报表"中,可能包含了实现以上步骤的源代码示例,包括创建数据集、构造图表、自定义样式和保存图表等关键函数。你可以通过学习这些代码,理解JFreeChart的工作原理,并将其应用到自己的项目中。 ...

    6款常用的Java开源报表制作工具

    - **简介**:JXLS是一个基于Jakarta POI API的Excel报表生成工具,它可以生成高质量的Excel格式报表。它采用了类似于JSP标签的方式来编写Excel模板,生成报表时非常灵活且简单。 - **特点**: - **模板驱动**:...

    Java报表开发技术深入解析

    例如,通过JasperReports API可以直接生成PDF或HTML格式的报表。对于Web应用,通常会将报表嵌入到Servlet或JSP页面中,利用AJAX技术提供交互体验。 6. **报表导出**: 用户通常需要将报表导出为其他格式保存或分享...

    推荐6款常用的Java开源报表制作工具.docx

    Java 开源报表制作工具推荐 Java 开源报表制造工具是 Java 开发者常用的报表...这 6 款 Java 开源报表制作工具涵盖了报表生成、报表设计、数据分析、商业智能等多个方面,为 Java 开发者提供了丰富的报表解决方案。

    推荐6款常用的Java开源报表制作工具.doc

    JXLS是一个基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表。它采用标签的方式,类似JSP标签,写一个Excel模板,然后生成报表,非常灵活,简单! JXLS的主要特点包括: * 基于Jakarta POI ...

    javabaobiao.rar_java 报表_java报表

    JFreeReport是一个纯Java的报表生成库,它支持自定义设计、多种数据源和多种输出格式,如PDF、HTML、CSV等。而JasperReports则是非常流行的选择,它不仅支持多种输出格式,还有强大的模板设计功能,可以通过IRI...

    java之报表

    【描述】:虽然描述为空,但根据提供的博文链接(已无法访问),我们可以推测讨论可能涉及了Java中的报表生成技术。博主可能分享了如何使用特定的Java库创建、设计和导出报表,以及如何将这些报表集成到Java应用程序...

    java 报表制作

    - JasperReports:广泛应用的报表工具,支持多种数据源,可以生成PDF、HTML、Excel等多种格式的报表。 - BIRT(Business Intelligence and Reporting Tools):基于Eclipse的开源报表系统,适合大型企业级应用。 ...

    jfreechat简介及入门教程.pdf

    JFreeChart是一个强大的Java图表库,用于创建多种类型的图表,包括饼图、柱状图、线图、区域图、分布图、混合图、甘特图和仪表盘等。...无论是用于数据分析、报表生成还是可视化展示,JFreeChart都能提供强大的支持。

Global site tag (gtag.js) - Google Analytics