zoukankan      html  css  js  c++  java
  • iReport 5.6.0 PDF导出中文不显示问题 解决方案

    问题描述

    iReport 5.6.0 PDF格式导出,中文不显示。

    报错信息如下: 

    Error exporting print... Could not load the following font : 
    pdfFontName   : STSong-Light
    pdfEncoding   : UniGB-UCS2-H
    isPdfEmbedded : true
    net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font : 
    pdfFontName   : STSong-Light
    pdfEncoding   : UniGB-UCS2-H
    isPdfEmbedded : true 
        at net.sf.jasperreports.engine.export.JRPdfExporter.getFont(JRPdfExporter.java:2117) 
        at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:1906) 
        at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:1875) 
        at net.sf.jasperreports.engine.export.SimplePdfTextRenderer.getPhrase(SimplePdfTextRenderer.java:89) 
        at net.sf.jasperreports.engine.export.SimplePdfTextRenderer.render(SimplePdfTextRenderer.java:100) 
        at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:2238) 
        at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:950) 
        at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:909) 
        at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:786) 
        at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:513) 
        at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:1174) 
        at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) 
        at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

    前提

    已经对自己设计的报表统一设置了pdf的字体格式。配置如下:

    Font name: 宋体 

    Pdf Font name: STSong-Light 

    Pdf Embeded: true (打钩) 

    Pdf Encoding: UniGB-UCS2-H(Chinese Siplified) 

    截图如下:

    现象

    iReport 5.6.0 Preview中文展示是OK的,但是导出的PDF中文异常。效果如下:

    1)iReport Preview 结果如下:

    2)PDF导出结果:

    问题分析

    PDF的中文没有得到正确转换。

    解决方案

    有两种非常简单解决方案,采取其中一种,即可完美解决PDF中文不显示问题。具体如下:

    方案1:

    工具--> 选项--> iReport--> Classpath--> Add JAR--> H:SW_installJaspersoftiReport-5.6.0ireportmodulesextiTextAsian.jar  (此处需要根据自己iReport 5.6.0的安装目录进行选择)

    添加完 iTextAsian.jar 后,在 Reloadable列 将其勾选,重启iReport 5.6.0,PDF中文即可正常显示。

    操作详细步骤如下:

    本地安装的iReport目录 JaspersoftiReport-5.6.0ireportmodulesext 目录下找到 iTextAsian.jar

     方案二:

    比方案一更简单,不需要执行方案一的那些操作!!

    只需要将 JaspersoftiReport-5.6.0ireportmodulesext目录下的 iTextAsian.jar这一个jar包,Copy一份到 JaspersoftiReport-5.6.0platform9lib目录下。

    重启iReport,即可解决PDF预览中文乱码的问题。

    是不是超级简单?!^_^

    效果如下:

    至此,PDF预览中文不显示的问题,已处理完毕!

    PS:希望本文能帮到需要帮助的同行。

    另外如果需要iReport 5.6.0安装文件,在我的博客里有百度网盘,可以免费下载,推崇资源信息共享。

    请参考:https://www.cnblogs.com/miracle-luna/p/10560294.html

    由于技术有限,如有纰漏,还望指正。

    如有疑问,可以提出来,互相探讨,共同进步。

    谢谢。

  • 相关阅读:
    [Java多线程]-并发,并行,synchonrized同步的用法
    [大数据可视化]-saiku的源码打包运行/二次开发构建
    [大数据可视化]-saiku的源码包Bulid常见问题和jar包
    [Java多线程]-线程池的基本使用和部分源码解析(创建,执行原理)
    [机器学习]-PCA数据降维:从代码到原理的深入解析
    [Java多线程]-Thread和Runable源码解析之基本方法的运用实例
    [Java多线程]-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
    [Java多线程]-Thread和Runable源码解析
    [机器学习]-Adaboost提升算法从原理到实践
    月是故乡明
  • 原文地址:https://www.cnblogs.com/miracle-luna/p/10568318.html
Copyright © 2011-2022 走看看