domingo, 19 de abril de 2009

Centrar títulos con ReportLab

Y bastante que me rompí el coco tratando de dar con esto hasta que en esta web a la cual entre por accidente (http://dcifuen.blogspot.com/2008/05/pdfs-en-google-app-engine.html) tenían la solución a la mano.

Aplicado a nuestro VisualWx con Python sería algo como esto:

Importamos las librerías del caso

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm

Definimos el tamaño y orientación del papel
ca = canvas.Canvas("c:/coloccidente/PDFS/certificado_5.pdf",pagesize=A4)

Y aquí está el código que nos centra el título
ca.drawCentredString(A4[0] / 2,810,u"MINISTERIO DE EDUCACIÓN NACIONAL") #Título

Por qué A4[0], pues porque ese es el tamaño del papel que se está utilizando para este ejemplo; si hubieras elegido letter pues tan solo reemplaza A4[0] por letter[0].

Para encontrar el centro de la página puedes hacer algo como esto:
ca.drawCentredString(A4[0] / 2,A4[1] / 2,u"CENTRO DE LA PAGINA")

Nótese que en lugar de definir el eje "y", en el que va el título hemos colocado A4[1] / 2