2012-07-30 2 views
6

Ich versuche ein kleines Skript zu entwickeln, das eine komplette neue pdf, hauptsächlich Text und Tabellen, als Ergebnis erzeugt. Ich suche nach dem besten Weg, es zu tun.Generieren Sie ein Pdf mit Python

Ich habe über reportlab gelesen, was ziemlich gut scheint. Es hat nur einen Nachteil soweit ich sehen kann. Es ist sehr schwer, eine Vorlage ohne die kommerzielle Version zu schreiben, und der Code scheint schwer zu warten.

Also ich habe nach einem ausreichenderen Weg gesucht und xhtml2pdf gefunden, aber diese Software ist ruhig alt, und kann Tabellen nicht über zwei Seiten oder mehr erzeugen.

Die letzte Lösung in meinen Gedanken, eine tex-Datei mit einem Template-Framework zu generieren, und später pdftex als Subprozess aufzurufen.

Ich würde die letzte implementieren und über LateX gehen. Würdest du das tun, hast du bessere Ideen?

+0

die kostenlose Version von report lab funktioniert ziemlich anständig imho ... solange Sie nicht versuchen, etwas zu schwierig –

+0

yeah es würde funktionieren, aber die Methode zum Generieren von etwas einfachem sind so komplex und Art von "Lowlevel". Und nach zwei Wochen würde ich keinen Clou sehen, was der Code tut oder jemand, der nicht regelmäßig reportlab schreibt. Jedenfalls danke für deine Hilfe. – Johannes

+0

http://appyframework.org/pod.html sieht ziemlich interessant aus, obwohl ich es selbst nicht versucht habe. Aus meiner eigenen Erfahrung würde ich sagen, dass ReportLab es wert ist, dabei zu bleiben - Sie könnten es genauso gut ausprobieren und dann neue Fragen stellen, wenn Sie nicht weiterkommen. – George

Antwort

5

Ich würde vorschlagen, den LaTeX-Ansatz zu verwenden. Es ist plattformübergreifend, funktioniert in vielen verschiedenen Sprachen und ist leicht zu pflegen. Außerdem ist es nicht kommerziell!

+0

LaTeX erfüllt alle PDF-Anforderungen. Komplexe Layout orientierte PDFs sind mit LaTeX nicht machbar ... nur das falsche Werkzeug in diesem Fall ... das richtige Werkzeug für jedes Projekt ... –

+0

@Maulwurfn LaTeX mit [TikZ] (http://www.texample.net/ tikz /) ist perfekt für komplexe PDF-Layouts ... – Zenon

+0

Danke Zenon, TikZ sieht wunderbar aus. Ich werde es mit jinja2 zum Parsen von LateX-Template implementieren und einen Subprozess von pdftex zur PDF-Erstellung aufrufen. – Johannes

3

Pisa ist ein HTML/CSS zu PDF Konverter. Es ist ein großartiges Werkzeug für die Entwicklung von Pdfs von Grund auf mit Python.

Wenn Sie nur Pdf-Seiten zusammenfügen oder Pdf-Daten durchsuchen müssen, dann würde ich vorschlagen, pyPdf es ist kostenlos und ziemlich gut dokumentiert und einfach zu bedienen. Sie können es herunterladen here

+0

Es tut mir leid, ich kann nicht sehen, wie dieses Framework in der Lage ist, ein neues PDF von Grund auf neu zu erstellen. Danke für deine Antwort. – Johannes

+0

Oh mein Schlechter habe ich die Frage missverstanden. Ja, dann würde ich vorschlagen, "Pisa" zu verwenden, um PDFs von Grund auf neu zu erstellen.Pisa kann html/css in ein pdf umwandeln, so dass es sehr einfach ist, Ihr pdf zu stilisieren. pyPdf ist großartig, wenn Sie Pdfs anhängen oder Daten daraus extrahieren müssen. –

+0

Pisa ist ein Stück zerbrechlichen Mist - Geeignet für die Herstellung billiger PDFs - völlig nutzlos für den professionellen Einsatz. –

0

Sie können das-Paket als eine Implementierung von Reportlab RML überprüfen.

"bester Weg" bedeutet? Was sind Ihre Anforderungen? Einige PDF-Anforderungen können mit "billigen" Open-Source-Generatoren erreicht werden, oder Sie können mit einigen kommerziellen PDF-Konverter enden. Höhere Qualität bedeutet höheren Preis.

+0

Vielen Dank für Ihre Antwort: "Bester Weg" bedeutet, wie würden die Leute mit mehr Expertise in diesem Bereich es tun. Die Anforderungen sind recht einfach, eine leichte, einfach zu wartende Möglichkeit, ein PDF mit Text und Tabellen zu erstellen, wo Tabellen über n Seiten gehen können – Johannes