ich habe ein (Bottle-basierte) Webanwendung, die PDFs generiert. Zum Speichern der PDF benutzte ich ein cStringIO-Objekt. Das ganze sieht verkürzt so aus:
Code: Alles auswählen
import cStringIO
import ...
@bottle.route('schick_pdf')
def schick_pdf():
ergebnis = bau_pdf()
bottle.response.header['Content-Type'] = 'application/pdf'
return ergebnis
def bau_pdf():
buf = cStringIO.StringIO()
pdf = Canvas(buf, (29.7 * cm, 21 * cm))
#hier kommt Reportlab Code...
#...
pdf.showPage()
pdf.save()
buf.reset()
return buf.read()
Allerdings schließe ich 'buf' ja nicht mit 'buf.close()' (ich wüßte auch nicht, wo...), daher die Frage: wird buf regelmäßig vom GarbageCollector eingesammelt oder müll' ich mir so den Speicher zu?
Gruß, noisefloor