Pregunta

Tengo un pdf creado con el diseñador de formularios Foxit. En mi sistema de diseño, tengo instalada la fuente del código de barras. La fuente del código de barras se usa en uno de los AcroFields. Parece que Foxit no incrusta la fuente en el documento.

También tengo clientes que no tienen la fuente de código de barras instalada en sus computadoras, y por lo tanto me gustaría incrustar la fuente en el PDF. ¿Hay alguna manera de incrustar una fuente que se usa en AcroFields en el PDF usando iText?

EDITAR: la fuente parece estar incluida en el texto, pero no en los campos, por lo tanto, la fuente (código de barras) no se imprimirá.

¿Fue útil?

Solución

Estoy casi seguro de que ya recibió una respuesta, pero tal vez a otros les gustaría obtener una visión detallada de la solución. A continuación se muestra el código Java de muestra que utilicé para incrustar fuentes en el PDF generado (útil solo en algunos casos, ya que el tamaño de los documentos aumenta dramáticamente). Como herramienta gratuita para crear los formularios PDF, he utilizado el escritor de OpenOffice, agregando formularios dentro de los documentos y exportando los documentos como archivos 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();

Otros consejos

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

Eso debería hacer el truco.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top