`
lhx1026
  • 浏览: 307104 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

jasperreport导出pdf中文数据不能正常显示的解决方法

阅读更多

方法一:

1、首先,在用iReport设计报表时将要显示中文数据的地方的属性设置如下:

   Font        name:    宋体 (中文字体)
    PDF font name:   STSong-Light
    PDF  Encoding:  UniGB-UCS2-H(Chinese Siplified)
    PDF   Embeded: √

 

2、iTextAsian.jar 这个包导入项目的classpath中,没有这个包的话,导出含有中文数据的PDF会报以下错误:

net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font :
pdfFontName   : STSong-Light
pdfEncoding   : UniGB-UCS2-H(Chinese Siplified)

isPdfEmbedded : true

iTextAsian.jar包的下载地址为:

http://sourceforge.net/projects/itext/files/extrajars/ExtraJars1.0/iTextAsian.jar/download

 

这种方法虽然能够正常地显示中文信息,但是有一个缺点,就是只有一种字体。因为iText 官 方网站提供的iTextAsian.jar 包中只包 含几种简单的亚洲字体,对于简体中文来说,只有宋体。因此,采用这种方法生成的PDF 中,中文字体 只能为宋体,无法显示其他字体。但这种方法比较简单

 

方法二: 使用 TTF Files (True Type Fonts) 字体文件

 

TTF 是系统的标准字体文件,最初由Mac OS 定义,后来Microsoft Windows 普遍采用这种格式来定义字体文件。这也是目前我们最常用的字体格式。可以通 过制定具体的字体文件的方式来指定字体。

如:<font fontName= 隶书 pdfFontName= STCAIYUN.TTF size= 18 isBold= true isPdfEmbedded = true pdfEncoding = Identity-H />

 

例子中使用的是 华文彩云 字体,STCAIYUN.TTF 为字体文件。需要注意的一点,这里使用的是相对路径,在生成PDF 的时候,程序会从类路径中查找这个字体文件,你可以选择把字体文件放到类路径中,或者使用绝对路径来引用 这个字体文件(如:c:/windows/fonts /STCAIYUN.TTF )。不推荐采用 后一种方法,因为开发环境和使用环境中,系统的路径可能不同,就会导致无法找到字体文件。一种更好的解决办法,把windows 系 统中fonts 下的某些常用的字体打成一个jar 包, 然后把这个jar 报放到类路径下即可。

 

注意,在使用这种方式的时候,pdfEncoding 属性要设为 Identity-H 或者 Identity-V

 

关于iReport

 

针对上述两种解决方案,第一种方案可以直接在iReport界面 中选择pdfFontNamepdfEncoding ,系统中已经集成了 STSong-Light UniGB-UCS2-H ,下拉列 表中可以直接选到。

 

第二种方式下,iReport 的路径下有一个fonts 目录,其中包 括一些TTF 字体文件。在图形界面中选择pdfFontName 的 时候,只 能选择目录中存在的字体文件。如果想使用其他的TTF 字体,可以实现把相关的字体从windows 系统的fonts 目录下拷贝到iReport fonts 路径中,这些字体就会出 现在pdfFontName 的下拉列表中了。

 

分享到:
评论

相关推荐

    JasperReport浏览器输出PDF为空白页的解决方案

    如果XML语法有误,或者数据绑定不正确,可能导致生成的`test.jasper`预编译报告文件无效,从而在导出PDF时显示为空白。 2. **数据源问题**:报表需要数据来填充,如果数据源未正确设置或数据提供者(例如JavaBean、...

    jasperreport 生成pdf实现下载与打印

    标题中的“jasperreport生成pdf实现下载与打印”是指使用JasperReports库来创建PDF报告,并提供下载和打印功能。JasperReports是一个开源的Java报表工具,它允许开发者设计、生成和导出各种类型的报表,包括PDF、...

    jasperreport导出Html xls PDF doc 格式文档源代码

    本文将深入探讨如何使用JasperReport导出不同格式的文档,包括Html、Xls、PDF和DOC。 首先,让我们了解一下JasperReport的核心概念。JasperReport是一个基于Java的报告库,它允许开发人员设计和生成复杂的报表。...

    Jasperreport导出PDF

    **JasperReport PDF导出详解** JasperReport是一款强大的开源报表工具,主要用于生成各种格式的报表,包括PDF、HTML、Excel、CSV等。在Java应用中,它与iReport(设计工具)配合使用,可以方便地创建复杂的报表布局...

    使用jasperreports制作报表(导出pdf excel html)

    **使用JasperReports制作报表(导出PDF, Excel, HTML)** JasperReports是一款开源的Java报表库,它允许开发者创建、设计和显示复杂的报告。这个教程将介绍如何使用JasperReports来制作报表,并将其导出为PDF、...

    使用JasperReport制作PDF所需要的包(1)

    在IT行业中,报表生成是数据分析和业务展示的关键环节,而JasperReport则是一个强大的开源报表工具,能够帮助开发者创建复杂的报告并输出为多种格式,包括PDF。本篇将详细讲解如何利用JasperReport来制作PDF,并介绍...

    使用JasperReport制作PDF所需要的包(2)

    2. **jasperreports-fonts-4.1.1.jar**:此库提供了JasperReport支持的各种字体和符号集,确保在生成PDF时能够正确显示特殊字符和非ASCII字体。这对于创建包含多语言或者需要特殊图形符号的报告至关重要。 3. **jdt...

    使用JasperReport输出image图像

    在寻找解决方案的过程中,开发者发现大部分JasperReport的示例都是关于将报表导出为HTML或PDF,而缺乏直接生成图像的指导。 JasperReport是一个强大的报表生成库,通常用于创建复杂的报告布局,如表格、图表和文本...

    jasperreport 生成pdf,html,xml,csv,xls报表,myeclipse源码

    在Java应用中,jasperreport通常用于生成数据可视化的静态或交互式报表。这个源码项目是基于**MyEclipse**开发的,MyEclipse是一款集成开发环境(IDE),它是Eclipse的扩展,专门针对Java、Web和企业级应用程序的...

    Jasperreport中文版.pdf

    JasperReport是一款功能强大的报表工具,它能够制作复杂的报表并具有多种数据源支持、格式化选项以及导出功能。JasperReport提供iReport Designer作为报表设计工具,它允许用户以可视化的方式设计报表布局和内容,...

    ireport导出pdf文件中文问题

    通过以上步骤,大多数情况下可以解决iReport导出PDF文件时的中文显示问题。当然,每个项目都有其特殊性,可能需要根据实际情况进行调整。对于那些喜欢深入研究源码的开发者,还可以查看iReport和iText的源代码,了解...

    ireport导出pdf和word文档实例

    在IT行业中,报告生成是常见的需求,...尽管过程中可能遇到一些挑战,但只要掌握了基本操作和解决方法,就能够高效地完成任务。在实际工作中,不断实践和学习新的工具和技术,可以提升开发效率,为项目带来更大的价值。

    iReport 4.0.1 + JasperReport 导出Html和PDF报表例子源码

    PDF格式保持了报表的原貌,无论在哪台设备上打开,都能看到一致的显示效果。在iReport中,你可以调整页边距、纸张大小和方向,确保PDF导出后的视觉效果满足需求。 "iReportTest"这个压缩包文件很可能包含了实现这一...

    struts2利用jasperreport导出excel

    在这个主题中,我们将深入探讨如何在Struts2中集成JasperReport来导出Excel。 首先,我们需要理解Struts2的工作原理。Struts2框架基于拦截器模型,通过Action类处理用户请求,并返回结果到视图层。为了实现导出...

    JasperReport中文翻译用户手册.pdf

    通过这个中文翻译用户手册,新手可以系统地学习JasperReport的基本概念、设计原理和使用方法,逐步掌握如何创建模板、设置数据源、定义参数、样式控制、图表制作以及报表的导出和交互操作。手册中会详细解释每个步骤...

    Struts2 + JasperReport应用一:导PDF,Excel,HTML显示

    在“Struts2 + JasperReport应用一:导PDF,Excel,HTML显示”这篇博文中,作者将介绍如何结合这两个工具来实现动态报表的生成和导出。 首先,我们需要了解Struts2的基础知识。Struts2框架是Apache软件基金会的一个...

    JasperReport与Java程序,导出不同格式的报表,包括pdf,excel,html,报表打印等功能

    总的来说,JasperReport和iReport的组合提供了一套强大而灵活的报表解决方案,能够满足各种业务场景下的报表需求,无论是在Web应用还是桌面应用中,都能轻松实现数据的可视化呈现。通过学习和掌握这两者,你将能够...

    struts2+Ireport+Jasperreport实现报表导出

    在这个项目中,这些技术结合在一起,提供了一种强大的报表导出解决方案。以下是对这些关键技术及其在项目中的应用的详细解释。 **Struts2**: Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    jasperreport+ireport创建javaBean多数据源报表

    将JavaBean用作数据源时,jasperreport会遍历JavaBean的属性并将其显示在报表上。这使得开发者能够灵活地利用业务对象的数据生成报表。 **多数据源支持** jasperreport允许使用多个数据源,这对于处理复杂报表场景...

    JasperReport+ireport实现报表导出功能

    **正文** ...总之,JasperReport和iReport是Java报表开发的重要工具,它们提供了一套完整的报表设计、生成和导出解决方案。通过熟练掌握这两者,开发者可以轻松处理各种数据展示需求,提升项目的用户体验。

Global site tag (gtag.js) - Google Analytics