【问题标题】:Greek characters in PDF with iText 7带有 iText 7 的 PDF 中的希腊字符
【发布时间】:2016-11-21 13:29:58
【问题描述】:

我正在尝试使用 iText 7 for Java 创建带有希腊字符的 pdf。 PDF 中只能看到拉丁字符和数字。

我正在使用此代码加载字体:

PdfFont normalFont = PdfFontFactory.createFont(FontConstants.HELVETICA, "CP1253");

我该怎么办?

【问题讨论】:

  • 您是否嵌入了字体?在所有其他参数之后在 PdfFontFactory#createFont() 方法中传递一个 true。另外,不要忘记在创建文本时使用你的字体:)
  • 你能举个例子吗?
  • 您使用 Helvetica 而不嵌入它。 Helvetica 是每个 PDF 查看者都应该知道的标准 14 种字体之一,但仅具有有限的字符集,主要是拉丁字符集。尝试使用带有希腊字符的字体,您可以用作字体文件并有权用于嵌入
  • @mike_x_ mkl 说了什么(不敢相信我看过实际字体>.>),让我们看看,developers.itextpdf.com/content/itext-7-building-blocks/…,它是 java 但相关方法应该是相同的,除非有一些大写和用属性替换 get/set

标签: java fonts character-encoding itext itext7


【解决方案1】:

这是解决方案:

PdfFont normalFont = PdfFontFactory.createFont("C:\\Windows\\Fonts\\arial.ttf", "Identity-H", true);

您可以使用任何支持您的语言的字体。此外,Identity-H 作为 PDF 文件的编码似乎也很重要。

【讨论】:

  • 有效,您甚至可以使用 Font ce_langs_support_font = FontFactory.getFont(Font.FontFamily.TIMES_ROMAN.name(), "Identity-H", true);这样您就可以省去路径的痛苦并使用 iText 内置的 Times Roman 字体。这里的关键是 Identity-H 编码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多