在iText中的表格展平时,阿拉伯数据会消失

时间:2014-06-19 11:32:54

标签: itext arabic pdfstamper acrofields

我使用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);

2 个答案:

答案 0 :(得分: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();

这就是结果:

enter image description here

答案 1 :(得分:0)

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

祝你好运。