首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jasper报告PDF不能导出西里尔字值

Jasper报告PDF不能导出西里尔字值
EN

Stack Overflow用户
提问于 2015-12-02 19:28:21
回答 1查看 15.2K关注 0票数 6

我正在尝试将jasper导出为pdf,但它没有显示西里尔文的值。当我将它导出为excel时,它确实会显示,输出也很好,但当我尝试导出为PDF时,它不会导出西里尔值。西里尔字母的值不是用西里尔字母写的,它们是用西里尔字母键盘写的。

我用来导出的代码是:

代码语言:javascript
复制
JRExporter e = new JRPdfExporter();
                e.setParameter(JRPdfExporterParameter.JASPER_PRINT, jasperPrint);
                e.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, outStream);
                e.setParameter(JRPdfExporterParameter.OUTPUT_FILE_NAME, NAME);

我甚至尝试指定下面的参数:

代码语言:javascript
复制
e.setParameter(JRPdfExporterParameter.CHARACTER_ENCODING, "UTF-8");

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-02 21:51:37

Jasper报表使用iText,并且总是当字符未呈现在pdf中时,这应该是检查表:

  1. 是我的actual .tff supported (OpenType),并且可以实际渲染字体和字符。并不是所有的字体都会在正确的编码中渲染所有字符,请参见How can I test if my font is rendered correctly in pdf?
  2. Do I pass UTF-8 to iText。在怀疑(或一般)使用编码Identity-H这是推荐的较新的PDF标准,并给你的能力混合不同的编码。
  3. 是我的字体嵌入式,以便如果我分享的pdf也没有这种字体的计算机可以显示的内容?

如何确保这是JasperReport?

不推荐使用的方法是在textElement上设置属性

代码语言:javascript
复制
<textElement>
  <font pdfFontName="Helvetica" pdfEncoding="Identity-H" isPdfEmbedded="true"/>
  <paragraph lineSpacing="Single"/>
</textElement>

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

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

EDIT:检查列表中OP的问题是1 (.ttf字体无法渲染),但他肯定应该使用不推荐使用的方法同时考虑2和3。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34041619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档