【问题标题】:Adding support to the new Rupee symbol to iTextPDF in Java在 Java 中向 iTextPDF 添加对新卢比符号的支持
【发布时间】:2012-12-13 10:09:08
【问题描述】:

我的项目与计费应用程序相关,我正在使用 iTextPdf 库生成 PDF 文件。但是我的要求是在 iTextPdf 生成的 PDF 中显示新的卢比符号,而不是“卢比”。

我知道遵循 Unicode \u20B9 是为了新的卢比符号。我正在使用以下代码进行格式化:

String formater(String a) {
  DecimalFormat formatter = new DecimalFormat("\u20B9 000");
  return formatter.format(Double.parseDouble(a));
}

但是生成的 PDF 文件没有显示任何卢比符号。那么如何将它与 iTextPdf 库一起使用呢?是否需要与库本身合并任何其他字体?

【问题讨论】:

  • pdf 不支持特殊字符。尝试将 PDF 的字符集更改为 UTF-8
  • 我已在 NetBeans IDE 中将我的项目的字符集设置为 UTF-8,设置字符集需要我做些什么,请告诉我。
  • 如果您需要有关 iText 使用的帮助,您最好使用 iText 提供您的代码,在这种情况下尤其是关于字体选择。 @Naveen 提供了一些一般参考。如果这没有帮助,请提供相关的代码示例。

标签: java pdf unicode itext


【解决方案1】:

在 IDE 中更改不是问题。 您的 iTextPDF 将以特定字符集将内容写入 PDF。控制数据是否正确显示。

你可以试试这两个链接

SO question for that contain how to check character set

iTextPdf site for how to correct character set

【讨论】:

    【解决方案2】:

    感谢 mkl,Naveen 的帮助。

    希望这可以帮助某人,我为此做了以下工作:

    第 1 步:下载具有卢比符号 Unicode 的字体(为此我更新了我的窗口(@98​​7654321@ 并获得了带有卢比符号的 arial 字体)

    第 2 步:使用 iText 我使用 IDENTITY_H 编码创建了嵌入的基本字体:

    BaseFont baseFont = BaseFont.createFont(this.getClass().getResource("arial.ttf").toString(), BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
    Font font = new Font(baseFont);
    

    现在生成的 pdf 具有新的卢比符号。

    【讨论】:

      猜你喜欢
      • 2013-09-07
      • 1970-01-01
      • 2012-02-10
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多