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

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

 ":$£Ω€απ⅔:" 

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

但它只打印为

:$£€:

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

注意:我使用的是 iReport 5.5

【问题讨论】:

标签: jasper-reports special-characters export-to-pdf


【解决方案1】:

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

  1. 下载(或在你的电脑上使用)你想要的ttf字体(它需要支持字符),我用dejavu-serif
  2. iReportJasper soft studio 中安装字体(点击链接了解如何)

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

      <textField>
          <reportElement x="8" y="15" width="100" height="20" uuid="41dc1200-091f-4799-a1d2-4622f88a0e84"/>
          <textElement>
              <font fontName="DejaVu Serif" size="13"/>
          </textElement>
          <textFieldExpression><![CDATA[":$£Ω€απ⅔:"]]></textFieldExpression>
      </textField>
      
  3. 导出字体扩展名(这将创建一个 .jar)

  4. 将 jar 添加到您的类路径中。
  5. 导出为 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?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多