【问题标题】:iText TextField gets strange characters upon editingiText TextField 在编辑时得到奇怪的字符
【发布时间】: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


【解决方案1】:

看来,至少在我的情况下,使用 IDENTITY_H 编码实际上阻止了 iText 嵌入整个字体。我将编码更改为 CP1250,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-12
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多