El canvas debe ser considerado como un papel con coordenadas x, y cuyo punto de origen es la esquina inferior izquierda. Se incrementa a la derecha y hacia arriba.
Hay que tener en cuenta que ReportLab tiene tres formas de uso (APIs): Canvas, Platypus, y Drawing.
Canvas te permitira dibujarlo todo en la hoja, Platypus va más enfocado en la producción de texto, separando el formato del contenido (algo similar a html y css), Drawing te permitirá crear gráficos un poco más avanzados, como los estadísticos.
Veamos un ejemplo básico:
import os # Importamos Librería a usar from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4 # Puede ser también Letter, A5, A6, ... #A4 es una tupla, podemos extraer sus valores #ancho, alto = A4 como también de la siguiente forma anchoHoja = A4[0] altoHoja = A4[1] print anchoHoja, altoHoja #Creamos el contexto de Canvas #- Creamos el nombre del archivo #- pagesize es una tupla, por eso le pasamos A4 de lib c=canvas.Canvas("test.pdf", pagesize = A4) #Escribimos en la primera hoja #drawString(x,y, texto) c.drawString(50,500, " Mi PRIMER PDF") c.drawString(250,300,"Coordenada=(250,300) ") c.drawString(350,200,"(350, 10)") c.drawString(150,400,"Aprendiendo REPORTLAB") #Grabamos la página presente del canvas c.showPage() #Escribimos en la segunda hoja c.drawString(50,500, "Segunda Hoja") c.showPage() #Archivamos y cerramos el canvas c.save() #Lanzamos el pdf creado os.system("test.pdf")
El Letter no lo reconoce. Es el default?,.. o como lo hago para el Letter?
ResponderEliminar