Jasper报告PDF不会导出西里尔值

时间:2015-12-02 11:28:21

标签: java jasper-reports export-to-pdf

我正在尝试将jasper导出为pdf,但它没有显示西里尔文值。当我将其导出为ex​​cel时,它确实显示并且输出正常,但是当我尝试导出为PDF时,它不会导出西里尔文值。西里尔字母不是用西里尔字母书写的,而是用西里尔字母键盘写的。

enter image description here

我用来导出的代码是:

JRExporter e = new JRPdfExporter();
                e.setParameter(JRPdfExporterParameter.JASPER_PRINT, jasperPrint);
                e.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, outStream);
                e.setParameter(JRPdfExporterParameter.OUTPUT_FILE_NAME, NAME);

我甚至尝试过以下参数:

e.setParameter(JRPdfExporterParameter.CHARACTER_ENCODING, "UTF-8");

但没有成功。有什么建议吗?

1 个答案:

答案 0 :(得分:6)

Jasper报告使用iText并且始终在 char未以pdf格式呈现时,这应该是核对清单:

  1. 我的实际.tff 是否支持OpenType),字体实际上呈现字符。并非所有字体都呈现 UTF-8中的所有字符,请参阅How can I test if my font is rendered correctly in pdf?
  2. 我是否将正确的编码传递给iText。怀疑(或一般)使用编码Identity-H这是建议用于较新的PDF标准,并使您能够混合不同的编码。
  3. 我的字体是嵌入,这样如果我共享pdf,那么没有此字体的计算机可以显示内容吗?
  4. 我如何确保这是JasperReport?

    已弃用的方法是在textElement

    上设置属性
    <textElement>
      <font pdfFontName="Helvetica" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
      <paragraph lineSpacing="Single"/>
    </textElement>
    

    目前非弃用方法 v 3-6,是添加字体扩展,这可以通过使用iReportJasperSoft Studio等可生成{的工具轻松实现{1}}您的字体扩展名,以便您可以直接将其包含在类路径中。

    How to generate font extension .jar using iReport or JasperSoft Studio

    编辑: OP的问题在清单上是1(.ttf字体无法渲染),但他肯定应该使用非弃用的方法来考虑2和3。