Подтвердить что ты не робот

Вставить шрифт itext в PDF

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

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

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

4b9b3361

Ответ 1

Я почти уверен, что вы получили ответ, но, возможно, другие хотели бы получить подробный обзор решения. Ниже приведен пример кода 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();

Ответ 2

PdfContentByte ab = yourPDFWriter.getDirectContent();
// field: PdfFormField.createTextField(...);
PdfAppearance ap = ab.createAppearance(320, 30); // size of field
field.setDefaultAppearanceString(ap);

Это должно сделать трюк.