Używam tabeli, ale rysuję na płótnie, aby kontrolować położenie płynów, ponieważ mam szablon w pliku pdf, scalam z pyPDF.Zawijanie tekstu w tabeli reportlab?
Owijanie odbywa się w tabeli, ale tekst w górę, nie w dół, to jest to, co mam nadzieję.
c jest płótno
Kod
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import Paragraph, Table
from reportlab.lib.units cm
width, height = A4
styles = getSampleStyleSheet()
def coord(x, y, unit=1):
x, y = x * unit, height - y * unit
return x, y
descrpcion = Paragraph('long paragraph', styles["Normal"])
partida = Paragraph('1', styles["Center"])
candidad = Paragraph('120', styles["Center"])
precio_unitario = Paragraph('$52.00', styles["right"])
precio_total = Paragraph('$6240.00', styles["right"])
data= [[partida, candidad, descrpcion, precio_unitario, precio_total]]
table = Table(data, colWidths=[2.05 * cm, 2.7 * cm, 9.6 * cm,
2.65 * cm, 2.7 * cm])
c = canvas.Canvas(PDF, pagesize=A4)
table.wrapOn(c, width, height)
table.drawOn(c, *coord(1.8, 9.6, cm))
c.save()
http://img600.imageshack.us/img600/3203/reportld.jpg
dziękuję, to dobre rozwiązanie, a nie hack jak moja odpowiedź. – Alquimista
trochę dopasowania do stylu tabeli ("VALIGN", (0,0), (- 1, -1), "TOP) – Alquimista
cieszę się, że mogę pomóc. Szkoda, reportlab nie obsługuje długich tabel, w przeciwnym razie byłby świetnym twórcą raportów PDF. –