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

JasperReport导出PDF报缺少字体错误

阅读更多
最近在使用JasperReport做打印导出时出现“Font '宋体' is not available to the JVM. See the Javadoc for more details.”查了那边的环境后发现部署的Linux机子没有按照宋体,后来查找了一些资料,采用了以下的方案来解决:

(1)下载Jasperreport项目进入目录\demo\fonts\net\sf\jasperreports\fonts\dejavu

(2)将C:\WINDOWS\Fonts目录中的宋体字体文件,拷贝到上述目录中,并修改后缀为simsun.ttf

(3)修改\demo\fonts\net\sf\jasperreports\fonts目录中的fonts.xml,追加fontFamily元素,并配置宋体信息:

  <fontFamily name="宋体">

       <normal>net/sf/jasperreports/fonts/dejavu/simsun.ttf</normal>

       <bold>net/sf/jasperreports/fonts/dejavu/simsun.ttf</bold>

       <italic>net/sf/jasperreports/fonts/dejavu/simsun.ttf</italic>

       <boldItalic>net/sf/jasperreports/fonts/dejavu/simsun.ttf</boldItalic>

       <pdfEncoding>Identity-H</pdfEncoding>

       <pdfEmbedded>true</pdfEmbedded>

       <exportFonts>

           <export key="net.sf.jasperreports.html">'宋体', Arial, Helvetica, sans-serif</export>

           <export key="net.sf.jasperreports.xhtml">'宋体', Arial, Helvetica, sans-serif</export>

       </exportFonts>

</fontFamily>

(4)demo\fonts目录下的字体项目打出jar包放到项目的WEB-INF/lib目录

(5)最后,在Web项目的根目录增加配置文件jasperreports.properties,内容如下:

net.sf.jasperreports.awt.ignore.missing.font=true net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory net.sf.jasperreports.extension.simple.font.families.dejavu=net/sf/jasperreports/fonts/fonts.xml
最后按自己的理解来解释下为什么这样做就可以解决缺少字体的错误,因为在启动的时候会加载项目根目录的配置文件jasperreports.properties,然后知道了JasperReport在导出时找不到字体应该怎么处理,同时我们手工在项目中添加了相应的字体,这样就可以不用再服务器中安装缺少的字体了。假如在制作的jasper模板中还有其他字体,也可以采用相同的方式处理
分享到:
评论

相关推荐

    ireport导出pdf和word文档实例

    - 确保字体兼容性,PDF导出时可能会因缺少字体而出现错误。 - 图片的大小和位置可能在不同格式下有所不同,需预先调整适应。 - 对于复杂的报表结构,可能需要调整段落和表格的样式,以保证在Word中正确显示。 6....

    ireport导出pdf文件中文问题

    总之,处理ireport导出PDF文件中文问题,关键在于正确配置字符编码、引入支持中文的字体资源,并在必要时利用iText的低级API进行干预。随着技术的发展,类似问题会逐渐减少,但理解这些问题的根源对于提升开发技能和...

    jasperreport maven打包后找不到字体解决方案

    jasperreport 用maven打包后找不到字体解决方案 net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font

    JasperReport jar

    5. **多格式输出**:JasperReport能够导出报表为多种格式,满足不同需求。例如,PDF适合打印,HTML适合在线查看,Excel则便于进一步的数据处理。 6. **国际化支持**:JasperReport内置了对多语言的支持,可以轻松地...

    JasperReport 用户手册的翻译

    IReport是JasperReport的配套工具,弥补了JasperReport缺少图形化开发环境的不足。它提供了一个直观的界面,使得报告设计变得更加简单高效。 在API方面,`net.sf.jasper.engine.design.JasperDesign`类是未编译的...

    MyEclipse iReport JasperReport Struts2.doc

    - 在Action中调用JasperReport API,如`JasperFillManager.fillReport()`填充报表数据,`JasperExportManager.exportReportToPdfStream()`导出为PDF格式。 - 将生成的报表响应给客户端,通常以流形式返回。 7. 注意...

    JasperReport用户手册

    JasperReport是一个强大的开源报表生成工具,主要用于创建和呈现丰富的页面布局,支持将报表导出为PDF、HTML或XML格式。其灵活性使得开发者能够设计复杂的报告,并与多种数据源(如关系型数据库、集合和Java对象数组...

    JasperReport 用户手册

    为了弥补这一不足,存在与其配套的开源工具IReport,它是一个图形化的设计界面,弥补了JasperReport缺少良好开发环境的问题,两者结合能显著提升报表开发效率。 JasperReport的核心功能依赖于XML设计文件,其中定义...

    ireport快速入门指南.pdf

    6. 解决报表问题:文档列举了一些常见的报表问题以及它们的解决方案,例如中文字体乱码、PDF中无法显示、报表分栏、空值处理、背景颜色交替、格式化输出、柱状图方向、报表参数传递、不同文件格式导出、Web应用中...

    iReport web开发配置向导

    如果在运行过程中提示缺少字体,可以在 `iReport-0.5.1/fonts` 目录中添加所需的字体文件。 ##### 2.2 配置外部库 为了使 iReport 正常工作,我们需要配置一些必要的外部库文件。这些库文件通常位于 `iReport-...

Global site tag (gtag.js) - Google Analytics