【发布时间】:2013-09-02 03:38:06
【问题描述】:
我正在向使用 iText 创建的 pdf 添加一个 TextField。一切都按预期工作,除非我在 TextField 上设置自定义字体。起初看起来很正常,但如果我清除该字段,然后停止编辑,然后再次编辑,当我再次尝试输入时会出现奇怪的字符。
例如,如果我输入“qwerty”,它实际上会显示“è ï E ê í ê”。如果我复制并粘贴文本,它会将“qwerty”粘贴到任何其他文本程序中。编码有问题吗?通常,为了创建我们的 pdf,我只嵌入了一个子集,这些子集是在其他地方创建的。我创建了这个嵌入整个字体的 BaseFont,但它仍然不能解决问题。
这是适用的代码:
final BaseFont bf = BaseFont.createFont(fontFile, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
bf.setSubset(false);
final Rectangle rect = new Rectangle(topLeft[0], topLeft[1], botRight[0], botRight[1]);
final TextField addMe = new TextField(writer, rect, fieldName);
addMe.setText("Test Me");
addMe.setFont(bf);
addMe.setFontSize(12);
addMe.setMaxCharacterLength((int) width);
writer.addAnnotation(addMe.getTextField());
感谢所有帮助,在此先感谢。
【问题讨论】:
标签: java character itext textfield formfield