Zusammenführen von Vorhandenen PDF-Datei in die neue ReportLab PDF-Datei per flowables
Ich habe einen reportlab SimpleDocTemplate
- und Rückgabe als ein dynamisches PDF. Ich bin generieren die Inhalte basieren auf einigen Django-Modell-Metadaten. Hier mein template-setup:
buff = StringIO()
doc = SimpleDocTemplate(buff, pagesize=letter,
rightMargin=72,leftMargin=72,
topMargin=72,bottomMargin=18)
Story = []
Kann ich problemlos hinzufügen von textuellen Metadaten aus der Entry
Modell in der Story
Liste später gebaut:
ptext = '<font size=20>%s</font>' % entry.title.title()
paragraph = Paragraph(ptext, custom_styles["Custom"])
Story.append(paragraph)
Und dann generieren der PDF-Datei werden in der Antwort zurückgegeben wird, durch den Aufruf build
auf die SimpleDocTemplate
:
doc.build(Story, onFirstPage=entry_page_template, onLaterPages=entry_page_template)
pdf = buff.getvalue()
resp = HttpResponse(mimetype='application/x-download')
resp['Content-Disposition'] = 'attachment;filename=logbook.pdf'
resp.write(pdf)
return resp
Eines Metadaten-Feldes auf dem Modell ist ein Datei-Anhang. Wenn diese Datei-Anhänge sind PDF-Dateien, möchte ich verschmelzen Sie in die Geschichte, die ich bin, zu generieren; IE Bedeutung, die eine PDF-Datei mit reportlab "Flow" - Typ.
Ich bin versucht zu tun, indem pdfrw
, aber hatte noch nicht viel Glück. Idealerweise würde ich gerne einfach anrufen:
from pdfrw import PdfReader
pdf = pPdfReader(entry.document.file.path)
Story.append(pdf)
und fügen Sie die pdf, um das vorhandene Story-Liste aufgenommen zu werden, die in die Generierung des endgültigen Dokuments, wie oben erwähnt.
Jemand irgendwelche Ideen? Ich habe versucht, etwas ähnliches mit pagexobj um das pdf zu erstellen, versuchen, diesem Beispiel zu Folgen:
http://code.google.com/p/pdfrw/source/browse/trunk/examples/rl1/subset.py
from pdfrw.buildxobj import pagexobj
from pdfrw.toreportlab import makerl
pdf = pagexobj(PdfReader(entry.document.file.path))
Aber habe keine Glück entweder. Kann mir jemand erklären, der beste Weg zum Zusammenführen einer vorhandenen PDF-Datei in ein reportlab fließfähigen? Ich bin nicht gut mit diesem Zeug und wurden, schlug mein Kopf auf pdf-Generierung nun seit Tagen. 🙂 Jede Richtung sehr dankbar!
- Ich denke, man kann diese mit der kostenpflichtigen version von ReportLab.
- Ugh, ich glaube nicht, dass die kostenpflichtige version von ReportLab ist eine option für mich, leider. 🙁 Wer irgendwelche alternativen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte gerade eine ähnliche Aufgabe in einem Projekt. Ich verwendet reportlab (open-source-version) zum generieren von pdf-Dateien und pyPDF zur Erleichterung der Zusammenführung. Meine Anforderungen waren etwas anders, ich brauchte nur eine Seite von jeder Anlage, aber ich bin sicher, dies ist wahrscheinlich in der Nähe genug für Sie, um die Allgemeine Idee.
Ich habe folgende Klasse zu lösen mein Problem. Es fügt die PDF-Dateien als Vektor-PDF-Bilder.
Es funktioniert gut, weil ich brauchte, um ein Inhaltsverzeichnis haben. Die fließfähige Objekt erlaubt die eingebaute TOC-Funktionalität arbeiten wie ein Charme.
Gibt es eine matplotlib fließfähigen für ReportLab?
Hinweis: Wenn Sie mehrere Seiten in der Datei, die Sie ändern müssen, um die Klasse etwas. Die Beispiel-Klasse ist so konzipiert, Lesen Sie die erste Seite der PDF-Datei.
Verwenden Sie diese benutzerdefinierten fließfähigen:
und dann nach dem öffnen vorhandener pdf-d.h.
verwenden Sie diesen code, um dieses benutzerdefinierte fließfähige in elements[].