`
longgangbai
  • 浏览: 7341145 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
import java.text.SimpleDateFormat;
import java.util.Date;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRImageRenderer;
import net.sf.jasperreports.engine.JRPrintImage;
import net.sf.jasperreports.engine.JRPrintLine;
import net.sf.jasperreports.engine.JRPrintPage;
import net.sf.jasperreports.engine.JRPrintText;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.base.JRBasePrintImage;
import net.sf.jasperreports.engine.base.JRBasePrintLine;
import net.sf.jasperreports.engine.base.JRBasePrintPage;
import net.sf.jasperreports.engine.base.JRBasePrintText;
import net.sf.jasperreports.engine.design.JRDesignStyle;
import net.sf.jasperreports.engine.type.HorizontalAlignEnum;
import net.sf.jasperreports.engine.type.ScaleImageEnum;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;

/**
 * 
 * <p>动态报表的实现<p>
 *
 * 创建日期 2013-5-3<br>
 * @author  longgangbai<br>
 * @version $Revision$ 2013-5-3
 * @since   3.0.0
 */
public class DynamicJasperReport {
    /**
    *
    */
    @SuppressWarnings("deprecation")
    private static JasperPrint getJasperPrint() throws JRException {
        // JasperPrint
        JasperPrint jasperPrint = new JasperPrint();
        jasperPrint.setName("NoReport");
        jasperPrint.setPageWidth(595);
        jasperPrint.setPageHeight(842);
        
        // Fonts
        JRDesignStyle normalStyle = new JRDesignStyle();
        normalStyle.setName("Sans_Normal");
        normalStyle.setDefault(true);
        normalStyle.setFontName("DejaVu Sans");
        normalStyle.setFontSize(8);
        normalStyle.setPdfFontName("Helvetica");
        normalStyle.setPdfEncoding("Cp1252");
        normalStyle.setPdfEmbedded(false);
        jasperPrint.addStyle(normalStyle);
        
        JRDesignStyle boldStyle = new JRDesignStyle();
        boldStyle.setName("Sans_Bold");
        boldStyle.setFontName("DejaVu Sans");
        boldStyle.setFontSize(8);
        boldStyle.setBold(true);
        boldStyle.setPdfFontName("Helvetica-Bold");
        boldStyle.setPdfEncoding("Cp1252");
        boldStyle.setPdfEmbedded(false);
        jasperPrint.addStyle(boldStyle);
        
        JRDesignStyle italicStyle = new JRDesignStyle();
        italicStyle.setName("Sans_Italic");
        italicStyle.setFontName("DejaVu Sans");
        italicStyle.setFontSize(8);
        italicStyle.setItalic(true);
        italicStyle.setPdfFontName("STSong-Light");
        italicStyle.setPdfEncoding("UniGB-UCS2-H");
        italicStyle.setPdfEmbedded(true);
        jasperPrint.addStyle(italicStyle);
        
        
        JRPrintPage page = new JRBasePrintPage();
        JRPrintLine line = new JRBasePrintLine(jasperPrint.getDefaultStyleProvider());
        line.setX(40);
        line.setY(50);
        line.setWidth(515);
        line.setHeight(0);
        page.addElement(line);
        JRPrintImage image = new JRBasePrintImage(jasperPrint.getDefaultStyleProvider());
        image.setX(45);
        image.setY(55);
        image.setWidth(165);
        image.setHeight(40);
        image.setScaleImage(ScaleImageEnum.CLIP);
        image.setRenderer(JRImageRenderer.getInstance(JRLoader.loadBytesFromResource("jasperreports.png")));
        page.addElement(image);
        JRPrintText text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider());
        text.setX(210);
        text.setY(55);
        text.setWidth(345);
        text.setHeight(30);
        text.setTextHeight(text.getHeight());
        text.setHorizontalAlignment(HorizontalAlignEnum.RIGHT);
        text.setLineSpacingFactor(1.3133681f);
        text.setLeadingOffset(-4.955078f);
        text.setStyle(boldStyle);
        text.setFontSize(18);
        text.setText("JasperReports Project Description");
        page.addElement(text);
        text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider());
        text.setX(210);
        text.setY(85);
        text.setWidth(325);
        text.setHeight(15);
        text.setTextHeight(text.getHeight());
        text.setHorizontalAlignment(HorizontalAlignEnum.RIGHT);
        text.setLineSpacingFactor(1.329241f);
        text.setLeadingOffset(-4.076172f);
        text.setStyle(italicStyle);
        text.setFontSize(12);
        text.setText((new SimpleDateFormat("yyyy年 MM月 dd日")).format(new Date()));
        page.addElement(text);
        text = new JRBasePrintText(jasperPrint.getDefaultStyleProvider());
        text.setX(40);
        text.setY(150);
        text.setWidth(515);
        text.setHeight(200);
        text.setTextHeight(text.getHeight());
        text.setHorizontalAlignment(HorizontalAlignEnum.JUSTIFIED);
        text.setLineSpacingFactor(1.329241f);
        text.setLeadingOffset(-4.076172f);
        text.setStyle(normalStyle);
        text.setFontSize(14);
        text.setText("JasperReports is a powerful report-generating tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV or XML files.\n\n"
                + "It is entirely written in Java and can be used in a variety of Java enabled applications, including J2EE or Web applications, to generate dynamic content.\n\n"
                + "Its main purpose is to help creating page oriented, ready to print documents in a simple and flexible manner.");
        page.addElement(text);
        jasperPrint.addPage(page);
        return jasperPrint;
    }

    public static void main(String[] args) throws JRException {
        JasperPrint jasperPrint = getJasperPrint();
        JasperViewer.viewReport(jasperPrint, false);
        // JasperViewer view = new JasperViewer(jasperPrint, false);
        // view.pack();
        // view.setVisible(true);
    }
}

 

分享到:
评论

相关推荐

    JasperReport动态报表归并行数据

    在“JasperReport动态报表归并行数据”这个主题中,我们主要讨论如何利用JasperReport来处理和展示动态变化的数据,并实现数据的合并。 1. **动态报表设计**: JasperReport支持XML或Java代码定义报表模板(jrxml...

    JasperReport动态生成报表

    **JasperReport动态生成报表** JasperReport是一款强大的开源报表工具,主要用于生成各种复杂的静态和动态报表。它基于Java,可以很好地与Java应用程序、Web应用和企业级应用集成,提供丰富的报表设计和灵活的数据...

    JasperReport 中交叉报表指南

    JasperReport 中交叉报表指南 JasperReport 是一个功能强大且灵活的报表生成工具,它提供了许多功能来帮助开发者生成复杂的报表。在报表生成中,交叉报表是一种常用的报表类型,能够将数据按照行和列进行交叉处理,...

    jasperreport一个子报表的例子

    在实际操作中,我们可能需要以下步骤来实现子报表: 1. **设计子报表**:使用报表设计工具创建子报表的JRXML文件,定义其布局和数据绑定。 2. **编译子报表**:将子报表的JRXML文件编译成.jasper文件。 3. **在主...

    jasperReport动态列的实现

    实现了jasperReport进行报表动态列的实现,使用者只需要利用eclipse将工程文件导入,即可查看运行结果的展示,不需要其他的配置和jar包如果想进行动态展示只需要修改构造参数就可以看到动态的展示

    jasperreport 6.4.1报表动态列,以及生成导出html

    JasperReport通过其内建的脚本语言JasperReports Scriptlet或Java类来实现动态列的逻辑,可以在运行时根据数据源动态调整列的布局和内容。 生成HTML导出是JasperReport的另一项重要特性。它允许用户将报表以网页的...

    如何使用JasperReport做动态报表

    NULL 博文链接:https://bighappy1983.iteye.com/blog/1850827

    使用jasperReport实现动态表头.pdf

    在本文中,我们将深入探讨如何使用JasperReport来实现动态表头,这是一个在报表生成过程中非常重要的特性,尤其是在处理如服装行业中需要灵活调整的尺码组数据时。JasperReport是一个开源的报表工具,具有良好的可...

    JasperReport+iReport 报表工具详细开发手册

    JasperReport还允许在报表设计中直接调用Java代码,从而实现更加复杂的逻辑处理。例如,可以在表达式中调用自定义的Java类或方法来执行特定的操作。 #### 5. 技巧篇 **5.1. 在WEB中显示数据不分页显示** 在某些...

    springboot整合JasperReport实现报表功能

    总的来说,SpringBoot与JasperReport的整合使得报表生成变得简单,它提供了灵活的设计工具和丰富的数据绑定能力,可以帮助开发者快速地实现复杂报表的展示需求。通过学习和掌握这一技术,你可以提升企业应用的报表...

    JasperReport动态表头及subreport实现多表

    本篇文章将详细讲解如何利用JasperReport实现动态表头和多表分页,并通过subreport来达到灵活的布局效果。 首先,让我们了解JasperReport的基础。JasperReport是一款基于Java的报表设计工具,它允许开发者创建复杂...

    JasperReport 水晶报表

    - **子报表:** 提供子报表功能,允许在一个报表中嵌套另一个报表,实现复杂的数据层次结构展示。 - **多格式输出:** 报表可导出为PDF、HTML、Excel、CSV等多种格式,满足不同应用场景的需求。 - **图表支持:** ...

    ireport+jsp基于jasperReport 实现导出报表至web页面

    JasperReport与iReport结合使用,可以方便地实现报表设计和预览。 3. **JavaServer Pages (JSP)**:JSP是Java EE平台的一部分,用于创建动态Web页面。开发者可以在JSP页面中混合HTML、CSS、JavaScript以及Java代码...

    JasperReport+iReport报表工具

    JasperReport使用XML格式的报表定义文件(.jrxml),开发者可以通过定义这些文件来创建静态或动态的报表。当这些报表需要展现时,JasperReport引擎会将.jrxml文件编译成.jasper文件,然后通过报表查看器进行展示。...

    jasperreport动态表头

    要实现JasperReport的动态表头,首先需要理解报表设计的基本元素,如文本框、表格、样式和变量。动态表头通常涉及到以下步骤: 1. **设计报表模板**:使用iReport(现在已被Jaspersoft Studio取代)等设计工具,...

    基于jasperreport的java报表组件

    XML模板设计完成后,可以通过JasperFillManager加载并解析,然后结合Java代码实现报表的动态生成。 5. **简单调用** 在Java项目中集成JasperReport非常方便。只需通过JasperExportManager或JasperPrintManager类,...

    struts2+jasperReport+ireport做报表总结

    本文主要针对使用Struts2框架结合JasperReport5.0与iReport5.0进行报表开发时可能遇到的问题进行总结。 1. **报表预览问题**: - 数据源为空:确保在iReport中设置正确的数据源,可以是JavaBean、数据库连接或其他...

    JasperReport+iReport报表开发手册.zip

    程序,包括 J2EE,Web 应用程序中生成动态内容,它主要目的是辅助生成面向页面的(page oriented),准备付诸打印的文档。总的而言,JasperReports 主要分成三个部分,包括数据报表 设计、数据填充与数据报表导出。

    JasperReport+iReport报表工具详细开发手册

    通过一个名为reportRun.jsp的JSP页面来展示报表,这里的“reportRun.jsp”是服务器端的一个页面,它能够根据传入的参数动态地生成报表,并展示给用户。 手册中还提供了一些具体的操作指南,例如如何在iReport中创建...

    jasperReport测试项目(含报表设计文件).rar_jasperReport 设计报表_jasperreport_报表设

    此外,通过嵌入JavaScript或其他脚本,可以实现报表的交互功能,如按钮点击事件等。 这个测试项目很可能包含了示例报表的JRXML设计文件、样本数据源文件以及编译后的.jasper文件,便于学习和调试。通过对这些文件的...

Global site tag (gtag.js) - Google Analytics