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,本博客专注于励志、人生、名人、故事、时事热点等富有正能量文章的分享。是一款简洁美观、自适应的博客系统。
  • 相关阅读:
    杂记:Linux下gcc升级
    杂记:OSX下编译安装最新版RedisDesktopMmanager
    查漏补缺:Vector中去重
    Mac下使用VScode进行C/C++开发
    添砖加瓦:几种常见的数据摘要算法(MD5、CRC32、SHA1和SHA256)
    添砖加瓦:snappy无损压缩算法
    杂记:OSX 安装openssl
    码海拾遗:内存四区
    Luogu 4284 [SHOI2014]概率充电器
    Luogu 4473 [国家集训队]飞飞侠
  • 原文地址:https://www.cnblogs.com/sdream/p/5084726.html
Copyright © 2011-2022 走看看