El Flowables es una clase abstracta para cosas que pueden ser dibujadas; por ejemplo: los párrafos y las tablas. Usa métodos como:
- Flowable.drawOn(canvas, x, y) Envía el flowable a un canvas en particular. Maneja el traslado de las coordenadas del canvas (x,y) , de manera que dicho canvas pueda dibujar el flowable en un frame de coordenadas absolutas.
- Flowable.wrap(width, height) Calcula el espacio que usará el flowable.
# -*- coding:utf-8 -*- import os from reportlab.platypus import Paragraph from reportlab.lib.styles import getSampleStyleSheet from reportlab.pdfgen.canvas import Canvas from reportlab.lib.pagesizes import A4 hojaEstilo = getSampleStyleSheet() estilo = hojaEstilo['BodyText'] P=Paragraph('Un pequeño ejemplo', estilo) c = Canvas('test.pdf') #Supongamos que nuestro frame sea el tamaño de la hoja A4 PAGE_WIDTH = A4[0] PAGE_HEIGHT = A4[1] #El párrafo tiene un ancho y un alto respectivo, por lo tanto el método wrap #calculará el espacio que realmente se requiere para reajustar el Flowable, #en este caso el párrafo. w, h = P.wrap(PAGE_WIDTH, PAGE_HEIGHT) print w, h #Hay que tener en cuenta que el ancho del párrafo se extiende por el ancho de #la página. #Especificamos en que altura del eje Y se ubicará el párrafo UbicacionParrafo= PAGE_HEIGHT - h #Mandamos el Flowable(el párrafo), al canvas. P.drawOn(c, 0, UbicacionParrafo) c.save() os.system("test.pdf")
No hay comentarios:
Publicar un comentario