Aka*_*hah 7 java multilingual jasper-reports export-to-pdf spring-boot
我正在使用Java中的JasperReports生成多语言报告。
生成pdf时,几种语言无法正确显示。
而当我生成Excel时,将使用正确的语言正确生成报告。
在互联网上搜索我发现不支持pdf字体。
这里我的代码设置为字体:
Style rowStyle = new Style();
Font font = new Font(FONT_SIZE_SMALL, "Noto Sans", false, false, false);
font.setPdfFontName("Noto Sans");
font.setPdfFontEncoding(Font.PDF_ENCODING_Identity_H_Unicode_with_horizontal_writing);
font.setPdfFontEmbedded(false);
rowStyle.setFont(font);
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决?
您是否尝试设置DEBUG碧玉报告日志记录来检查呈现PDF时正在使用哪种字体?(下面的示例log4j设置)
<category name="net.sf.jasperreports">
<priority value="DEBUG" />
</category>
Run Code Online (Sandbox Code Playgroud)
例如,您应该看到jasper正在加载的字体的DEBUG日志:
DEBUG SimpleFontFace:177 - Loading font fonts/ARIALUNI.TTF
Run Code Online (Sandbox Code Playgroud)
而且,如果您使用的是jasper字体扩展名(如下所述),您应该会看到类似以下内容的内容:
DEBUG FontExtensionsRegistry:88 - Loading font extensions from net/sf/jasperreports/fonts/jasperreports-fonts.xml
Run Code Online (Sandbox Code Playgroud)
您是否将字体包含在类路径中?我已经成功使用了一个自定义构建的jar,类似于文档中这篇文章中所描述的:https : //community.jaspersoft.com/wiki/adding-fonts-embedding-pdf
我也可以尝试setPdfFontEmbedded(true)。在生成的PDF中,如果您在Adobe Acrobat Reader中打开PDF,可以确定该字体是否包含在报告中,并查看它是否在文件->属性...->字体选项卡下列出(请参见屏幕截图)。它应该在字体名称旁边有(Embedded)或(Embedded子集)。
上述步骤可以帮助调试此类问题。事实证明,“ Noto Sans”字体不支持印度字符,尽管使用“ Arial Unicode MS”也可以。
在“ 文档”中,您可以查看支持的几种语言。
归档时间: |
|
查看次数: |
1053 次 |
最近记录: |