2013-08-29 7 views
0

Я добавляю TextField в pdf, созданный с помощью iText. Все работает так, как ожидалось, за исключением случаев, когда я устанавливаю пользовательский шрифт на TextField. Сначала это выглядит нормально, но если я когда-нибудь очищу поле, прекратите редактирование, а затем снова отредактируем, появятся странные символы, когда я снова попытаюсь напечатать.iText 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()); 

Вся помощь ценится, спасибо заранее.

+0

Возможный дубликат [Как установить шрифт в TextField] (http://stackoverflow.com/questions/18376643/how-to-set-a-font-to-a-textfield) –

ответ

0

Похоже, по крайней мере, в моем случае, что использование кодировки IDENTITY_H фактически помешало iText встраивать весь шрифт. Я изменил кодировку на CP1250, и все сработало, как ожидалось.

Смежные вопросы