zoukankan      html  css  js  c++  java
  • JasperReport 中文问题解决

    1 运行环境
        1.1 JasperReport 3.5
        JasperReports 是iReport的核心内容。它是一个强有力的开源报表产生工具,可以将内容输出到屏幕上、打印机或生成PDF, HTML, XLS, CSV和XML等文件。它完全用Java编写,并可在各种Java应用(包括J2EE或WEB应用)中用来产生动态报表内容。JasperReports 组织根据在一个XML文件中定义的报表设计通过JDBC访问关系数据库中的数据.填充报表数据之前必须先将报表设计被编译成一个jasper文件。
    下载地址: http://jasperreports.sourceforge.net/
        1.2 iReport3.5.2
        iReport是一个制作Jasperreport XML文件的优秀可视化开发工具,通过它可以方便的设计报表模板。目前最高版本为iReport3.5.2

    下载地址: http://ireport.sourceforge.net
       1.3 iText 1.3.1
       iText是一个开放源码的Java类库,是用来生成PDF文件的。
    下载地址: http://itext.sourceforge.net
       1.4 iTextAsian.jar
       如果要在生成的pdf文件显示中文等亚洲字符,还必须下载itext的亚洲字符包。
    下载地址: http://itextdocs.lowagie.com/downloads/iTextAsian.jar
    以上四个包必须加到应用程序的构建路径中或加到CLASSPATH,若是Web应用放入相应的WEB-INFlib中。
    2 设置中文支持
        为了在报表中能够显示中文,加入以上四个包还不够(因为以上四个包仅对报表生成及中文显示提供了支持),必须设置报表上各显示对象的相关属性,各属性设置说明如下:
        Font        name:    宋体 (中文字体)
        PDF font name:   STSong-Light
        PDF  Encoding:  UniGB-UCS2-H(Chinese Siplified)
        PDF   Embeded: √

        注意:此三项的设置必须确保iTextAsian.jar亚洲语言包已经包含在项目中,否则出现编译错误.
        若读者觉得对每一个对象设置比较麻烦,可通过iReport的”Format”?”Fonts”菜单进行统一设置,并设成报表的默认字体。如下图所示:
     
    3可能出现的问题
       经过以上的设置,报表中文的显示应该没什么问题了,笔者在报表的开发过程中遇到几个问题,现总结如下:
      3.1 问题描述
       在WinXp中运行iReport1.2.8,设计报表时将数据字段的字体设置成中文字体,调好格式后编译并运行,并使用JRViewer进行预览一切正常(中文显示正常),但使用PDF、Excel预览出现如下错误:
       Could not load the following font :
       pdfFontName   : STSong-Light
       pdfEncoding   : UniGB-UCS2-H
       isPdfEmbedded : true
       产生原因:成成PDF的亚洲语言包没有包含到项目中
       解决办法: 将亚洲语言包iTextAsian.jar包含到项中,可能过iReport的”Options”?”Classpath”将 iTextAsian.jar添加Classpath中或者直接将iTextAsian.jar复制到iReport安装目录下的lib中.若是Web项目则应该将iTextAsian.jar复制到此项目的WEB-INFlib中.
       3.2 问题描述
        在WinXp中运行iReport1.2.8,设计报表时将数据字段的字体设置成中文字体,调好格式后编译并运行,并使用JRViewer进行预览一切正常(中文显示正常),使用PDF、Excel预览时无任何错误,但中文无法显示(只显示空白).
        产生原因:报表显示对象的PDF字体属性设置不正确
        解决办法: 报表对象有关字体属性的设置如下:
        Font        name:         宋体 (中文字体)
        PDF font name:  STSong-Light
        PDF Encoding:   UniGB-UCS2-H(Chinese Siplified)
        PDF Embeded:  true

     jrxml相关配置如下:

    <reportFont name="标准" isDefault="true" fontName="黑体" isBold="false"
    isItalic="false" isUnderline="false" isStrikeThrough="false"
    pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>
    <style
    name="标准类型"
    isDefault="false"
    fontName="黑体"
    isItalic="false"
    pdfFontName="STSong-Light"
    pdfEncoding="UniGB-UCS2-H"
    >
    </style>

    www.52newblog.com,本博客专注于励志、人生、名人、故事、时事热点等富有正能量文章的分享。是一款简洁美观、自适应的博客系统。
  • 相关阅读:
    搭建非域AlwaysOn win2016+SQL2016
    从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
    四、基于Windows 2012配置SQL Server 2014 AlwaysOn
    三、安装SQLserver 2014(For AlwaysOn)
    二、 Windows 2012配置故障转移(For SQLServer 2014 AlwaysOn)
    Mybatis-SQL语句构建器类及日志
    Mybatis-JavaAPI
  • 原文地址:https://www.cnblogs.com/sdream/p/5084726.html
Copyright © 2011-2022 走看看