Seite 1 von 1

Zeilenumbruch in ReportLabs

Verfasst: Montag 7. Januar 2008, 11:31
von imme
Hallo werte Python User!

eigentlich war ich auf der Suche nach einem ReportLabs Forum, konnte aber diesbezüglich nichts ordentliches finden und nun müsst ihr herhalten :)

mein problem ist folgendes:

ich habe eine textdatei die beliebig lang und beliebig breit (also zeilenlänge) sein kann und will diese nun mittels reportlabs in ein vernünftiges pdf-file übertragen.

das mit dem seitenumbruch habe ich soweit auch gelöst bekommen.

Code: Alles auswählen

tx = c.beginText(left_margin, top_margin - 100)

for fn in ('./log/text.full.txt','./log/text.txt'):
	if os.path.isfile(fn):
		break

data = open(fn,'r').readlines()
for line in data:
	tx.textLine(line)
	
	y = tx.getY()
	if y < bottom_margin + 0.5*inch:
		c.drawText(tx)
		c.showPage()
		drawPageFrame(c)
		c.setFont('Gothic', 8)
		tx = c.beginText(left_margin, top_margin - 100)
if tx:
	c.drawText(tx)
	c.showPage()
 
c.save()
meine überlegung derzeit ist das ganze ähnlich beim zeilenumbruch zu gestalten

Code: Alles auswählen

	w = c.stringWidth(line,'Gothic',8)
	if w > right_margin:
das würde jedoch heissen das ich für jeden zeilenumbruch vorher die neuen Koordinaten bräuchte und angeben muss -> unmöglich

ich brauch also eine art NewLine am besten mit gefolgtem eingerücktem Tab. meine versuche über einfügen von \n oder \012 sind kläglich gescheitert ^^. hab auch noch keine großen erfahrungen in sachen python und reportlabs sammeln können ... dazu noch montag morgen ... ich befürcht ich fahr mich da in einer sache fest die wesentlich einfacher gehen könnte ;).

thx schonmal für eure hilfe :)

Verfasst: Montag 7. Januar 2008, 11:59
von BlackJack
Du gehst Da sehr low-level heran. Schon mal überlegt/ausprobiert ReportLabs die Arbeit zu überlassen? Oder zumindest in deren Quelltext für Textsatz nachschauen was dort gemacht wird.

Verfasst: Montag 7. Januar 2008, 13:32
von imme
eben das mein ich mit "ich befürcht ich fahr mich da in einer sache fest die wesentlich einfacher gehen könnte" :?

ich denke einfacher wäre es das ganze über StyleSheets zu lösen. aber hier macht sich meine unerfahrenheit bemerkbar. ich quäl mich mehr durch die beispiele von reportlabs als das ich mir sinnvolle informationen rauszieh.

wäre schonmal dankbar für nen hinweis ala "mit stylesheets biste schonmal aufm richtigen weg" ;) oder gibt es sonst noch bessere alternativen?

Verfasst: Montag 7. Januar 2008, 14:03
von CM
Sorry, habe mich schon länger nicht mit ReportLab beschäftigt, aber Kapitel 6 der Doku (über Paragraphs / Abschnitte und ihre Formatierung) dürfte enthalten, was Du suchst.

Gruß,
Christian

Verfasst: Montag 7. Januar 2008, 15:57
von imme
mh ... ok... werd ich mir das nochmal genauer anschauen

Verfasst: Montag 7. Januar 2008, 18:44
von Leonidas
Außerdem hat mir bei Problemen die Reportlab-Mailingliste recht oft geholfen. Bis ich frustriert etwas anderes genommen habe, um PDFs zu machen.

Verfasst: Montag 7. Januar 2008, 18:49
von CM
off-topic: LaTex? Man kann rel. einfach mit Python auf ein selbstgemachtes Template zurückgreifen, Daten reinstecken und pdflatex aufrufen. ReportLab ist wahrscheinlich ganz toll, aber mir scheint, alle hier sind aus dem einen oder anderen Grund davon abgekommen ...