iText 7和变音符号形成字段值

时间:2018-08-29 08:43:54

标签: java itext diacritics itext7

我在iText 5中有一个可行的解决方案,我在其中填写如下表单字段:

PdfStamper stamper = new PdfStamper(reader, output);
AcroFields form = stamper.getAcroFields();
form.setField("city", "ěščřžýáíéĚŠČŘŽÝÁÍÉ");
stamper.setFormFlattening(true);

正确的结果是: iText 5 form field value


但是在iText 7上升级后,变音符号停止工作了。

PdfAcroForm form = PdfAcroForm.getAcroForm(document, true);
Map<String, PdfFormField> fields = form.getFormFields();
PdfFormField field = fields.get("city");
field.setValue("ěščřžýáíéĚŠČŘŽÝÁÍÉ");
form.flattenFields();

现在结果不正确:iText 7 form field value

我尝试了不同版本的iText库(7.0.4和7.1.2),然后尝试将值转换为不同的编码(Windows-1250和iso-8859-2),但是没有帮助。

更新:可以使用下一种方法,但它不是iText 5功能的正确替代,因为在这里我正在更改字段的字体和文本大小,并且当我这样做时,我不必在意它m仅填写表格,此外,当字段具有不同的字体系列,粗细和大小时:

PdfFont font = PdfFontFactory.createFont(StandardFonts.HELVETICA, PdfEncodings.CP1250, true);
field.setValue("ěščřžýáíéĚŠČŘŽÝÁÍÉ", font, 10f);

在iText 7中还有其他事情可以将值正确填写在表单字段中吗?

谢谢

0 个答案:

没有答案