Zeilenumbruch in ReportLabs

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
imme
User
Beiträge: 3
Registriert: Montag 7. Januar 2008, 10:53

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 :)
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.
imme
User
Beiträge: 3
Registriert: Montag 7. Januar 2008, 10:53

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?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

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
imme
User
Beiträge: 3
Registriert: Montag 7. Januar 2008, 10:53

mh ... ok... werd ich mir das nochmal genauer anschauen
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Außerdem hat mir bei Problemen die Reportlab-Mailingliste recht oft geholfen. Bis ich frustriert etwas anderes genommen habe, um PDFs zu machen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

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 ...
Antworten