如何使用 iReport 在 Jasperserver PDF 中显示“$£Ω€απ⅔”?

Posted

技术标签:

【中文标题】如何使用 iReport 在 Jasperserver PDF 中显示“$£Ω€απ⅔”?【英文标题】:How can I display "$£Ω€απ⅔" in Jasperserver PDF using iReport? 【发布时间】:2016-02-29 15:17:30 【问题描述】:

我已经用值硬编码了一个文本字段

 ":$£Ω€απ⅔:" 

测试这些字符是否会在 PDF 中显示

但它只打印为

:$£€:

我尝试将字体更改为“符号”,但这并没有成功。

注意:我使用的是 iReport 5.5

【问题讨论】:

你在使用Font Extensions吗? 【参考方案1】:

我在 iReport 中使用font-extensions 尝试了您的角色,这些是我采取的步骤

    下载(或在你的电脑上使用)你想要的ttf字体(它需要支持字符),我用dejavu-serif。

    在iReport 或Jasper soft studio 中安装字体(点击链接了解如何)

    我使用 iReport 5.6 并设置了 PDF-Encoding: Idenity-H (横向书写的 unicode)并将字体嵌入到 pdf 中。这是我的 textField 的代码

    <textField>
        <reportElement x="8" y="15"   uuid="41dc1200-091f-4799-a1d2-4622f88a0e84"/>
        <textElement>
            <font fontName="DejaVu Serif" size="13"/>
        </textElement>
        <textFieldExpression><![CDATA[":$£Ω€απ⅔:"]]></textFieldExpression>
    </textField>
    

    导出字体扩展名(这将创建一个 .jar)

    将 jar 添加到您的类路径中。 导出为 pdf 并享受结果。

这是一个如何使用任意字体的示例,如果您愿意的话 使用DejaVu SansDejaVu Serif 你可以只在类路径中包含jasper report fonts library,因此这些字体已经包含并映射到库中

【讨论】:

遇到同样的问题。在更改我的报告以使用 DejaVu Sans 之前,谁能解释为什么会发生这种情况? @Thomas 您可以在此answer 上检查 cmets,itext 生成 pdf 的库,需要 .ttf 并知道您使用哪种编码来正确创建 pdf。 @Tomas 另外你可以使用其他字体,只要是supported by itext,你只需要创建你自己的font-extension 谢谢@PetterFriberg。我也做了一些进一步的挖掘(尤其是在 iText 上)并得出了相同的结论。下一次尝试将使用 Arial,因为我希望报告中没有明显差异 - DejaVu Sans 看起来有点不同。【参考方案2】:

我发布了一个类似的问题,上述技术解决了我的问题,直到有一天我重新启动 JasperServer 上下文。当我尝试将报告导出为 pdf 时,现在出现“找不到 PDF 编码”错误。

为了解决这个问题,我不得不将 iText-Asian.jar 和 Font-extension.jar 复制到 jasperserver 上下文的 lib 文件夹中。 “jasperserver/WEB-INF/lib”。完成后重新启动上下文并解决问题。

希望对某人有所帮助。

【讨论】:

你从哪里得到这些 JAR?

以上是关于如何使用 iReport 在 Jasperserver PDF 中显示“$£Ω€απ⅔”?的主要内容,如果未能解决你的问题,请参考以下文章

如何在java中的一列ireport 4.5中显示多个名称

如何在 iReport 中设置 Excel 单元格格式

如何添加netbeans平台编译iReport源?

如何使用iReport将其替换为另一个报告后,在JasperReports Server中恢复旧版本的报告?

ireport表单制作

ireport导出pdf