none
cambiar fuente pdf con itextsharp

    Question

  • saludos, nuevamente recurro a ustedes haber si me pueden ayudar con este problema.

    estoy elaborando un programa para el pago de facturas, todo va muy bien, el caso es que quiero imprimir un estado de cuenta en pdf, ya logre crear el pdf con el itextsharp, el problema es que no me deja cambiarle la fuente a las letras siempre me marca error, este es el codigo que empleo:

    factura.font = fontfactory.getfont("Arial", 10, ALIGN_CENTER)

    acabo de conocer el itextsharp y este fragmento de codigo viene en una pagina donde explica el funcionamiento del itext, el problema es que al poner ese codigo me pone error: "La Propiedad 'font' y 'ReadOnly'

    a que se devera el error?

    saludos y gracias

    Monday, April 08, 2013 11:11 PM

Answers

  • Debes utilizar un método setFontAndSize. Mas o menos asi:

    Dim oDoc As New iTextSharp.text.Document(PageSize.A4, 0, 0, 0, 0)
    Dim pdfw As iTextSharp.text.pdf.PdfWriter= PdfWriter.GetInstance(oDoc, New FileStream(NombreArchivo, _FileMode.Create, FileAccess.Write, FileShare.None))
    
    'Creamos una fuente
    Dim fuente As iTextSharp.text.pdf.BaseFont
    fuente = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL).BaseFont
    
    oDoc.Open()
    
    Dim cb As PdfContentByte= pdfw.DirectContent
    cb.BeginText()
    
    'Utilizamos la fuente para escribir
    cb.SetFontAndSize(fuente, 12)
    
    cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Ejemplo basico con iTextSharp", 200, PageSize.A4.Height - 50, 0)
    
    
    cb.EndText()
    pdfw.Flush()
    oDoc.Close()
    Espero que te ayude. No olvides marcar esto como respuesta si resuelve tus problemas
    Saludos
    Tuesday, April 09, 2013 6:47 AM

All replies

  • Debes utilizar un método setFontAndSize. Mas o menos asi:

    Dim oDoc As New iTextSharp.text.Document(PageSize.A4, 0, 0, 0, 0)
    Dim pdfw As iTextSharp.text.pdf.PdfWriter= PdfWriter.GetInstance(oDoc, New FileStream(NombreArchivo, _FileMode.Create, FileAccess.Write, FileShare.None))
    
    'Creamos una fuente
    Dim fuente As iTextSharp.text.pdf.BaseFont
    fuente = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL).BaseFont
    
    oDoc.Open()
    
    Dim cb As PdfContentByte= pdfw.DirectContent
    cb.BeginText()
    
    'Utilizamos la fuente para escribir
    cb.SetFontAndSize(fuente, 12)
    
    cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Ejemplo basico con iTextSharp", 200, PageSize.A4.Height - 50, 0)
    
    
    cb.EndText()
    pdfw.Flush()
    oDoc.Close()
    Espero que te ayude. No olvides marcar esto como respuesta si resuelve tus problemas
    Saludos
    Tuesday, April 09, 2013 6:47 AM
  • Debes utilizar un método setFontAndSize. Mas o menos asi:

    Dim oDoc As New iTextSharp.text.Document(PageSize.A4, 0, 0, 0, 0)
    Dim pdfw As iTextSharp.text.pdf.PdfWriter= PdfWriter.GetInstance(oDoc, New FileStream(NombreArchivo, _FileMode.Create, FileAccess.Write, FileShare.None))
    
    'Creamos una fuente
    Dim fuente As iTextSharp.text.pdf.BaseFont
    fuente = FontFactory.GetFont(FontFactory.HELVETICA, iTextSharp.text.Font.DEFAULTSIZE, iTextSharp.text.Font.NORMAL).BaseFont
    
    oDoc.Open()
    
    Dim cb As PdfContentByte= pdfw.DirectContent
    cb.BeginText()
    
    'Utilizamos la fuente para escribir
    cb.SetFontAndSize(fuente, 12)
    
    cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, "Ejemplo basico con iTextSharp", 200, PageSize.A4.Height - 50, 0)
    
    
    cb.EndText()
    pdfw.Flush()
    oDoc.Close()
    Espero que te ayude. No olvides marcar esto como respuesta si resuelve tus problemas
    Saludos
    saludos y gracias por tu respuesta, desafortunadamente estuve testeando el codigo que me proporcionaste sin buenos resultados, la fuente me la pone por default, y la pone algo grande
    Tuesday, April 09, 2013 2:52 PM
  • Mi código fija HELVETICA con un tamaño por defecto... ¿no es eso lo que escribe en el pdf?

    Saludos

    Wednesday, April 10, 2013 6:50 AM
  • perdón mi amigo, estaba cometiendo una tonteria en el codigo por esa razon no me daba resultado, emplee el codigo nuevamente y me funciono a la perfeccion, te lo agradesco mucho, saludos.
    Saturday, April 13, 2013 7:09 PM
  • Genial! Me alegro
    Saturday, April 13, 2013 7:52 PM