Itext встроить шрифт в PDF - PullRequest
       45

Itext встроить шрифт в PDF

12 голосов
/ 09 марта 2009

У меня есть PDF-файл, созданный с помощью дизайнера форм Foxit. В моей системе проектирования у меня установлен шрифт штрих-кода. Шрифт штрих-кода используется в одном из полей AcroFields. Похоже, что foxit не встраивает шрифт в документ.

У меня также есть клиенты, у которых на компьютерах не установлен шрифт со штрих-кодом, и поэтому я хотел бы встроить этот шрифт в PDF. Есть ли способ для меня встроить шрифт, который используется в AcroFields в PDF, используя iText?

РЕДАКТИРОВАТЬ: Кажется, что шрифт включен в текст, но не поля, поэтому шрифт (штрих-код) не будет печататься.

Ответы [ 2 ]

9 голосов
/ 17 ноября 2010

Я почти уверен, что вы уже получили ответ, но, возможно, другие хотели бы получить подробное представление о решении. Ниже приведен пример кода Java, который я использовал для встраивания шрифтов в сгенерированный PDF (полезно только в некоторых случаях, так как размер документов значительно увеличивается). В качестве бесплатного инструмента для создания форм PDF я использовал программу записи OpenOffice, добавляя формы внутри документов и экспортируя документы в виде файлов PDF:

PdfReader pdfTemplate = new PdfReader(templateName);
ByteArrayOutputStream out = new ByteArrayOutputStream();
BaseFont unicode = BaseFont.createFont(unicodeFontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
PdfStamper stamper = new PdfStamper(pdfTemplate, out);
//assigning the font to the field
stamper.getAcroFields().setFieldProperty("myField", "textfont", unicode, null);
stamper.getAcroFields().setField("myField", someValue);
stamper.close();
pdfTemplate.close();
1 голос
/ 18 января 2010
PdfContentByte ab = yourPDFWriter.getDirectContent();
// field: PdfFormField.createTextField(...);
PdfAppearance ap = ab.createAppearance(320, 30); // size of field
field.setDefaultAppearanceString(ap);

Это должно сработать.

...