如何配置iText以支持亚洲字符?

2020年8月5日 21点热度 0条评论

我的Java应用程序使用iText创建PDF。有时内容是亚洲的,这是行不通的。亚洲字符不可见。

我在iText下载页面上找到了iTextAsian.jar,但不知道如何使用它。

目标是使用我喜欢的字体作为默认字体。但是,当某个字符不可用时,该字符将使用其他字体。我读过,iText可以自动选择字体,但是如何配置呢?

我还希望所有必需的字体都包含在PDF中,因此用户不必在计算机上安装亚洲字体。

解决方案如下:

  • 您可以定义“FontSelector”,然后添加字体(fontSelector.AddFont)。现在,iText将使用fontSelector.Process方法从下一个定义的字体中选择不可用的字符。
  • 亚洲字符通常是Unicode,因此您必须设置“BaseFont.IDENTITY_H”而不是Ansi字符(例如FontFactory.GetFont(“tahoma”,BaseFont.IDENTITY_H))。
  • 如果是RTL,则需要将文本包装在具有运行方向属性的元素中,并将其设置为rtl。