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