Ich wäre euch sehr dankbar um Hilfe für die die folgenden 2 Probleme:
1. Die Tabellenbreite der Seite anpassen --> also eine fixe Breite festlegen (z.T. ist sie bei wenig Inhalt nur so eine kleiner Fleck auf der Seite)
2. Wie kann man automatisch einen Zeilenumbruch für jedes item der liste hinzufügen. --> ich hatte überlegt dass man vielleicht jedes item durch eine Schleife mit Paragaph laufen lässt, bekomme dies aber leider nicht programmiert, bzw. bei mir ist dann Paragaph ein teil des string ...
Ich wäre euch unglaublich dankbar um Hilfe.
Anbei mein Code in gekürzter Fassung:
Code: Alles auswählen
from reportlab.lib.pagesizes import A4
from reportlab.lib.pagesizes import letter, cm
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import LongTable, TableStyle, BaseDocTemplate, Frame, PageTemplate
from reportlab.lib import colors
from reportlab.platypus import Paragraph, Table, TableStyle
########################################################################
def test():
doc = BaseDocTemplate(
"question.pdf",
pagesize=A4,
rightMargin=72,
leftMargin=72,
topMargin=50,
bottomMargin=80,
showBoundary=False)
elements = []
data = [['A', 'B', 'C', 'dddddddddddd', 'D'],
['00', '0dddddddddddddddddddddddddddddddddddd1', '02', 'fff', '04'],
['10', '11', '12', 'dfg', '14'],
['20', '21', '22', 'ddddddddddddddddddddddddddddddddddd dddddddddddddddddddd23', '24'],
]
t = LongTable(data)
tableStyle = [
('INNERGRID', (0, 0), (-1, -1), 0.25, colors.black),
('BOX', (0, 0), (-1, -1), 0.25, colors.black),
]
t.setStyle(TableStyle(tableStyle))
elements.append(t)
styles = getSampleStyleSheet()
styleN = styles['Normal']
frame = Frame(doc.leftMargin, doc.bottomMargin, doc.width, doc.height - 2 * cm, id='normal')
template = PageTemplate(id='longtable', frames=frame)
doc.addPageTemplates([template])
doc.build(elements)
if __name__ == '__main__':
test()`