2009-03-09 34 views
12

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

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 insertar la fuente en el PDF. ¿Hay alguna manera para que incruste 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á.

Respuesta

9

Estoy casi seguro de que ya tienes una respuesta, pero quizás a otros les gustaría obtener una vista detallada de la solución. A continuación se muestra el código de 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 drásticamente). Como una herramienta gratuita para crear los formularios PDF, he utilizado el escritor de OpenOffice, mediante la adición de formas dentro de los documentos y la exportación de 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(); 
+0

me encontré casi el mismo problema y lo he hecho lo mismo que usted, pero todavía no puedo insertar la fuente de los textos que ingresé utilizando Java, ¿puede echar un vistazo a [mi pregunta] (http://stackoverflow.com/questions/34335481/how-to-embed -font-after-flattening-template-using-itext)? ¡Gracias por adelantado! – Elderry

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

Que debe hacer el truco.

Cuestiones relacionadas