使用希伯来语文本(RTL)填写PDF表单字段

时间:2018-01-05 10:27:25

标签: pdf itext

我尝试使用iText 7社区来检查它是否支持填写希伯来语中的PDF表单字段。出于某种原因,我无法使其发挥作用。

以下是我正在使用的代码:

PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, false);
form.setGenerateAppearance(true);

form.getField("test").setValue("\u05de\u05d9\u05db\u05d0\u05dc");

form.flattenFields();
pdfDoc.close();

PDF是一个空白的PDF页面,仅包含一个具有以下属性的文本字段:

  • 字体Adobe希伯来语
  • 文字方向RTL

我尝试使用和不使用扁平化字段。

当字段未展平时,在使用Acrobat Reader打开生成的PDF后,我会看到我的字段但它是空的。只有在我单击该字段后,该字段的内容才会正确显示。当我在Chrome上查看PDF时,该字段不会出现(或者它可能在那里,但里面没有文字)。

当字段展平后,使用Acrobat Reader打开生成的PDF后,该字段根本不显示。

我确切地说我使用Acrobat DC创建了PDF。

知道这里发生了什么吗?

编辑:可以从here

下载测试PDF

1 个答案:

答案 0 :(得分:0)

尝试创建一种字体(并非所有字体都支持IDENTITY_H,但是Arial可以)。在Windows上看起来像这样:

        PdfFont f = PdfFontFactory.createFont("C:\\windows\\fonts\\arial.ttf", PdfEncodings.IDENTITY_H, true);

然后将字体设置为字段:

form.getField("test").setValue("\u05de\u05d9\u05db\u05d0\u05dc").setFont(f);

这对我有用