0

我使用 PDFStamper 填充了一些阿拉伯语数据的 acrofield。当我将表格展平时,文本消失了,而它对英语工作正常。请指导。

     BaseFont unicode = null;
     unicode = BaseFont.createFont("D:/arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
     form.setGenerateAppearances(true);
     form.addSubstitutionFont(unicode);
     form.setField("TextBox","اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب");
     stamper.setFormFlattening(true);
4

2 回答 2

0

当您保存、编译或执行代码时,这可能是编码问题(这意味着您的问题与 iText 无关)。这是我尝试过的代码:

PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
BaseFont unicode =
    BaseFont.createFont("c:/windows/fonts/arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
form.addSubstitutionFont(unicode);
form.setField("description", "\u0628\u0627 \u0628\u0627 \u0628\u0627 \u0628\u0627 \u0628\u0627 \u0628\u0627 \u0628\u0627 \u0628\u0627 \u0628\u0627 \u0628\u0627");
stamper.close();
reader.close();

结果如下所示:

在此处输入图像描述

于 2014-06-20T09:43:41.347 回答
0

我有同样的问题。您必须通过 adobe acrobat pro 重新创建您的 sourec pdf,并将文本框的字体设置为操作系统中已知的字体之一,例如 arial。

祝你好运。

于 2016-07-09T13:52:25.450 回答