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