最近一直在做报表,用的是iReport3.7.3和jasperReport3.7.3,在导出pdf形式的报表时,文字的粗体效果出不来,
弄了大半天,查阅了很多资料,试了很多种方法,效果都不理想。下面总结一下:
1.修改jasperreports-3.7.3.jar包的JRPdfExporter的源码
这种方法网上到处都是,但我没试过,不知道是否可行,因为我反编译出来的源码有大量的错误,下载的一个编译器
也用不了,并且网上说的这种方法的版本和我用的版本不一致,代码也略有不同,感兴趣的可以去试一下。
2.在程序中设置字体
Map fontsMap = new HashMap();
fontsMap.put(new FontKey("黑体", true, false), new PdfFont("simhei.ttf", "Identity-H", true, true, false));
pdfExporter.setParameter(JRExporterParameter.FONT_MAP, fontsMap);
其中,simhei.ttf这个就是粗体的字体,在C:\WINDOWS\Fonts下可以找到,把这个文件copy到项目的classpath下,接着修改jrxml源文件,把pdfFontName="STSong-Light"改为:pdfFontName="simhei.ttf"。我在用iReport设计报表时,把pdfFontName="STSong-Light",pdfEncoding="Identity-H",因为iReport默认的字体中并没有simhei.ttf这种字体,只能在jrxml文件中修改。Pdf Encoding一定要选上Identity-H,否则不会出现粗体,这是
iText.jar这个包的问题。
这样在生成pdf形式的报表时就可以看到粗体效果了。但是,这种方法对于有子报表的报表有点麻烦,因为生成报表时,主报表直接依赖的是子报表的jasper文件而不是jrxml文件,我用的子报表一般都是在iReport中预编译得到jasper文件,如果想让子报表也出现粗体效果,你只能在程序中去单独编译子报表的jrxml文件来得到jasper文件,再把这个jasper文件添加到项目中。
3.为iReport添加simhei.ttf字体(推荐)
2中说到,iReport默认的字体中并没有simhei.ttf这种字体,所以可以为iReport添加这种字体。我个人觉得这个方法是最有效的。为iReport添加这种字体后,你所有的报表都可以用这种字体了,不需要修改jrxml文件也不用在程序中设置。
过程如下:在iReport的主界面,点击“工具”-->“选项”-->“Fonts”-->“Install Font”
然后选择simhei.ttf文件所在的路径,这个文件最好放在classpath下;
然后输入Family Name,也可以用默认的,在Font details框中,有一个“Bold”输入框,再次选择simhei.ttf文件所在的路径,(斜体也是一样的);
在PDF details框中,PDF Encoding选择Identity-H,勾上“Embed this font in the PDF document”,下一步直至完成。
重启iReport,设计报表时,把需要粗体效果的文本选上上面设置的字体就可以了。
强烈推荐第三种方法,只要设置一次,以后用这个iReport设计的报表都可以显示粗体了,斜体也是一样的,不需要改jar包,程序和jrxml文件。
分享到:
相关推荐
**使用JasperReports制作报表(导出PDF, Excel, HTML)** JasperReports是一款开源的Java报表库,它允许开发者创建、设计和显示复杂的报告。这个教程将介绍如何使用JasperReports来制作报表,并将其导出为PDF、...
标题 "jasperreports打印word格式报表的问题" 涉及的是使用JasperReports库生成并打印Word(.doc或.docx)格式报表时遇到的技术挑战。JasperReports是一款开源Java库,它允许开发者创建、设计和导出各种类型的报告,...
标题中的“解决jasperReports中文无法显示问题.rar”指出,这是一个关于jasperReports库在处理中文字符时遇到问题,并提供了解决方案的压缩文件。jasperReports是一个强大的开源报告生成库,广泛用于Java应用程序中...
通过以上步骤,大多数情况下可以解决iReport导出PDF文件时的中文显示问题。当然,每个项目都有其特殊性,可能需要根据实际情况进行调整。对于那些喜欢深入研究源码的开发者,还可以查看iReport和iText的源代码,了解...
本话题主要关注如何利用jasperreports、alivepdf和Flex技术来解决在Web应用中的打印和导出PDF的问题。 jasperreports是一个强大的开源报表库,它允许开发者设计复杂的报告模板,并能在多种格式下生成,包括PDF、...
总之,解决JasperReports在导出PDF时的中文显示问题,关键在于正确配置字体资源并确保字体文件被正确引用。通过这种方法,即使是对Jasper不太熟悉的初学者也能快速解决这类问题,从而提高工作效率。
确保将此文件添加到你的项目的类路径中,以便在导出PDF时系统能够识别和使用这些字体。 3. **其他注意事项**: - 除了`itext-asian-5.2.0.jar`,可能还需要其他的JasperReports相关的JAR文件,如`jasperreports-...
5. **预览与导出**:预览报表,确认无误后,通过JasperReports导出为PDF文件。 #### 六、总结 通过使用JasperReports与iReport,我们可以轻松地创建出既美观又实用的PDF报表。无论是在企业内部还是对外部客户,...
《JasperReports ireports制作PDF报表.pdf》这本书可能专门针对使用iReport设计PDF报表的技巧。PDF报表是一种常见且可打印的格式,适合企业内部的正式报告。书中的内容可能包括如何优化PDF输出,调整字体、页眉和...
- "iReport导出pdf和word"这个压缩包文件很可能包含了`iReport`设计的报表模板(.jrxml文件)以及生成的PDF和Word示例文件。 - 分析这些文件可以帮助理解布局、数据绑定和导出过程。 通过以上的步骤和技巧,你...
- 导出报表时,JasperReports 支持多种格式,如 PDF、XLS、XML 等。在 JSP 页面中,你可以使用 JasperFillManager、JasperExportManager 等类来执行报表的编译、填充和导出操作。 8. **JSP 示例**: - 提供的 JSP...
PDF导出则需要考虑页面布局、字体嵌入和打印质量。PDF格式保持了报表的原貌,无论在哪台设备上打开,都能看到一致的显示效果。在iReport中,你可以调整页边距、纸张大小和方向,确保PDF导出后的视觉效果满足需求。 ...
《iReport-JasperReports报表开发指南+操作手册》是一份详尽的资源,旨在帮助开发者深入理解和高效使用iReport和JasperReports这两个强大的报表工具。iReport是JasperReports的图形化设计工具,用于创建复杂的报表...
使用iReport或者Jaspersoft Studio,设计一个简单的PDF报表,保存为`.jrxml`文件。这个文件包含了报表的布局和样式信息。 在Java代码中,我们将使用JasperReport API来加载`.jrxml`文件,编译成`.jasper`格式,然后...
在 Linux 环境下使用 iReport 时,中文字符可能会出现字体问题,导致报表无法正确打印或导出。解决这个问题的关键是确保系统中安装了正确的字体环境。 第一个问题是 iReport 在 Windows 下打印功能正常,而部署到 ...
它支持多种数据源,如数据库连接、CSV文件、XML数据等,可以导出报表为PDF、HTML、Excel、CSV等多种格式。 2. **报表设计** JasperReports使用一个基于XML的报告设计语言(JasperReport Design)来创建报表模板。...
JasperReports也支持使用CSS样式表来控制报表的显示效果。 5. **子报表和分组**:子报表用于在主报表中嵌套其他报表,通常用于复杂的数据结构展示。分组则是按照特定字段对数据进行分类,每组可以有自己的页眉和...
报表设计时,用户可能需要使用特定字体来保证在不同平台上的一致显示。这个库包含了这些字体文件,使得报表在各种操作系统上都能正确渲染。 **4. jasperreports-applet-4.5.0.jar:Applet 支持** `jasperreports-...