Frame (x1, y1, ancho, alto, leftPadding=6, bottomPadding=6, rightPadding=6, topPadding=6, id=None, showBoundary=0)
El comando anterior, crear una instancia del Frame con cordenadas x,y que son relativas a la página en uso. Los Padding reducen espacio para dibujar. El id, sirve como un identificador (ej: 'ColumnaDerecha'). Si el showBoundary es distinto de cero, se mostrará las fronteras del frame en tiempo de ejecución.
- Frame.addFromList(drawList, canvas) Añade la lista de flowables
- Frame.split(flowable, canvas) Devuelve una lista de flowables
- Frame.drawBoundary(canvas) Dibuja el marco del Frame
Veamos el ejemplo:
import os
#Cargamos los módulos que necesitamos.
from reportlab.pdfgen.canvas import Canvas
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.units import inch
from reportlab.platypus import Paragraph, Frame
from reportlab.platypus import Image
from reportlab.platypus import Spacer
#Creamos objeto Canvas.
c = Canvas('test.pdf')
#Estilo de la hoja.
estiloHoja = getSampleStyleSheet()
#Demás estilos.
estiloN = estiloHoja['Normal']
estiloH = estiloHoja['BodyText']
#Inicializamos platypus story.
story = []
#Añadimos algunos flowables.
imagen_logo = Image("Tux2.png", width=150, height=200)
story.append(imagen_logo)
#Dejamos espacio.
story.append(Spacer(0,20))
#Añadimos un párrafo.
story.append(Paragraph("Esto es un ejemplo de frame 01",estiloN))
#Definimos un frame.
frame = Frame(3, 3, 200, 260, showBoundary=1)
frame.addFromList(story, c)
#Inicializamos platypus story.
story2 = []
#Añadimos algunos flowables.
story2.append(Paragraph("Este es el párrafo del segundo Frame",estiloH))
#Dejamos espacio.
story2.append(Spacer(0,20))
#~ #Una imagen.
imagen_logo = Image("imagen.jpg", width=100, height=100)
story2.append(imagen_logo)
#Definimos otro frame.
frame2 = Frame(250, 3, 250, 250, 6, showBoundary=1)
frame2.addFromList(story2, c)
#Salvamos el PDF.
c.save()
os.system("test.pdf")

No hay comentarios:
Publicar un comentario