2009-11-21 17 views
10

Definí un mapa de etiquetas y obtuve un archivo de datos XML. Quiero convertir el archivo de datos XML a PDF utilizando iText. La pregunta es cómo incorporar fuentes (por ejemplo, fuente polaca, fuente china) en el PDF objetivo al convertir XML a PDF.Incrustar fuente en un archivo PDF utilizando iText

Respuesta

9

Si está trabajando más con iText, puede invertir en el iText book; tiene ejemplos de todas las funciones de iText.

hay un parámetro que especifica al crear el tipo de letra que define la incrustación de fuentes:

BaseFont helvetica = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED); 
Font font = new Font(helvetica, 12, Font.NORMAL); 

Puede encontrar más iText ejemplos relacionados con las fuentes aquí: http://1t3xt.info/examples/browse/?page=toc&id=14

+1

He estudiado algunos ejemplos en el libro iText, parece que ninguno dio una pista para mi problema. En su ejemplo, hay un indicador "BaseFont.EMBEDDED" que se puede usar para indicar la incrustación del archivo de fuente. Pero lo que tengo que hacer es convertir un archivo XML a un directorio PDF con un mapa de etiquetas definido, todo el proceso es solo una llamada. No hay lugar donde pueda poner un código para incrustar la fuente. En su ejemplo, podemos establecer la fuente en algún párrafo para que la fuente esté incrustada en ese párrafo. Pero para la generación automática de PDF con mapa de etiquetas, ¿cómo podemos establecer la fuente, qué clase/interfaz podemos usar para incrustar la fuente? Gracias. – moonli

+4

Problema resuelto. Podemos incrustar la fuente con la configuración en TagMap. Establecer el atributo "incrustado" en "verdadero" indica la incrustación de fuentes. Gracias de todos modos. – moonli

+0

https://www.manning.com/books/itext-in-action-second-edition ¿este es el libro? –

0

Usted puede tratar transformándolo en PDF/A, que tiene todas las fuentes incrustadas.

PdfReader reader = new PdfReader(GetTemplateBytes()); 
    pst = new PdfStamper(reader, Response.OutputStream); 

    pst.Writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_4); 
    pst.Writer.PDFXConformance = PdfWriter.PDFA1A; 
7

Aquí hay una manera muy fácil de instruir a iText para incrustar todas las fuentes. Inserte esto antes de su código para cargar fuentes:

FontFactory.defaultEmbedding = true; 
+1

Tenga en cuenta que en iTextSharp, FontFactory.DefaultEmbedding es una propiedad de solo lectura. – howcheng

Cuestiones relacionadas