Hallo,
ich muss für einen Verein ein kleines Problem lösen. Es geht darum, dass wir automatisiert schnell Urkunden erstellen wollen und diese dann als pdf-Datei abspeichern.
Die Urkunden sollen so aussehen:
Oben Rechts: kleines Logo
Oberes Drittel Mittig: Bisschen schnörkelige Schrift, wird evtl. als Bilddatei bereitgestellt
Mitte: Großformatiges Farbfoto (in jeder Urkunde ein anderes)
Unter dem Foto: Spezielle Daten in Tabellen organisiert (bspw "Baujahr: 1976")
Die Rohdaten würden dann über eine normale Textdatei kommen und die Bilder eben aus den entsprechenden Bilddateien.
Kann man soetwas mit Python realisieren? Oder noch besser: Gibt es Programme, die eine solche Stapelverarbeitung ermöglichen?
Lg heiliga horsd
PDF-Datei erzeugen?
Hallo,
also für Python gibt's da ReportLab.
Ich denke, daß aber auch LaTeX in Verbindung mit Python dafür sehr gut geeignet wäre, man kann mit dem Befehl "pdflatex" aus LaTeX-Quellcode (= reiner Text) direkt pdfs erzeugen. LaTeX braucht aber natürlich eine gewisse Einarbeitungszeit.
Viele Grüße
also für Python gibt's da ReportLab.
Ich denke, daß aber auch LaTeX in Verbindung mit Python dafür sehr gut geeignet wäre, man kann mit dem Befehl "pdflatex" aus LaTeX-Quellcode (= reiner Text) direkt pdfs erzeugen. LaTeX braucht aber natürlich eine gewisse Einarbeitungszeit.
Viele Grüße
Hallo,
ich würde wohl pdflatex verwenden. Je nach Vorkenntnissen dauert die Einarbeitung in TeX natürlich ein wenig.
Eine schnelle Alternative könnte die Erzeugung eines Bildes mittels PIL sein, in welches du die Daten dann hinein schreibst. Dann bist du zwar nicht ganz so flexibel, musst dich aber auch nicht mit Layouts von TeX rumschlagen.
Die Forensuche bringt vielleicht auch noch etwas zu Tag. Ich bin der Meinung, dass es schon einen Thread zu diesem Thema gegeben hat.
Sebastian
ich würde wohl pdflatex verwenden. Je nach Vorkenntnissen dauert die Einarbeitung in TeX natürlich ein wenig.
Eine schnelle Alternative könnte die Erzeugung eines Bildes mittels PIL sein, in welches du die Daten dann hinein schreibst. Dann bist du zwar nicht ganz so flexibel, musst dich aber auch nicht mit Layouts von TeX rumschlagen.
Die Forensuche bringt vielleicht auch noch etwas zu Tag. Ich bin der Meinung, dass es schon einen Thread zu diesem Thema gegeben hat.
Sebastian
Das Leben ist wie ein Tennisball.
OK, das mit LaTeX hört sich super an, da ich noch viel Zeit habe, werde ich mir das sicherlich anschauen!
Lg heiliga horsd
Lg heiliga horsd
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
ReportLab ist auch nicht schwer. Bzw. es ist sogar relativ simpel, wenn man sich ein bisschen damit beschäftigt.
Wenn du andere Schriften als die drei PDF Standardschriften haben willst, dann musst du bei ReportLab die Fonts von Hand importieren. Geht ohne weiteres WENN du weißt, wo du die Font-Dateien herbekommst.
Gruß, noisefloor
ReportLab ist auch nicht schwer. Bzw. es ist sogar relativ simpel, wenn man sich ein bisschen damit beschäftigt.
Wenn du andere Schriften als die drei PDF Standardschriften haben willst, dann musst du bei ReportLab die Fonts von Hand importieren. Geht ohne weiteres WENN du weißt, wo du die Font-Dateien herbekommst.
Gruß, noisefloor
Also ich hab jetzt mal mit LaTeX angefangen, ist zwar anfangs noch sehr ungewohnt, aber ich denke damit kann man gute Ergebnisse erzielen. Das erzeugen von pdfs klappt auch super. Ich denke ich werde bei LaTeX bleiben, da ich beides momentan als ähnlich einschätze und bei LaTeX bereits angefangen habe.
@funkheld: Ich hab mir die Website angesehen, aber wofür sollte das Programm in meinem Fall nützlich sein?
@funkheld: Ich hab mir die Website angesehen, aber wofür sollte das Programm in meinem Fall nützlich sein?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ansonsten halt OpenOffice.org/LibreOffice mit sowas wie Serienbrieffunktion. Gerade wenn man Sachen "layouten" will, dann ist LaTeX etwas unhandlich.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ja, dazu gibt es auch eine Python-Schnittstelle, hab dazu aber nirgends eine vernünftige Doku gefunden. Musste Code-Schnippsel im Netz suchen um einen doc->pdf Konverter zu schreiben.Leonidas hat geschrieben:Ansonsten halt OpenOffice.org/LibreOffice mit sowas wie Serienbrieffunktion. Gerade wenn man Sachen "layouten" will, dann ist LaTeX etwas unhandlich.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher
http://ms4py.org/
Gerhard Kocher
http://ms4py.org/
@ms4py: Die "Python"-Schnittstelle ist die UNO-Schnittstelle, die Sun für Java und C++ entworfen hat. Das ist alles super umständlich und "javaesque". Da würde ich eher eines der Module verwenden, die auf dem Dateiformat operieren und in OOo/LibreOffice Platzhalter einsetzen, die dann per Programm in den Dateien ausgetauscht werden.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ich würde noch mal Scribus reinwerfen. Damit habe ich auch schon Urkunden erstellt, wenn auch nicht automatisiert (dafür lohnt sich die Anzahl bei uns nicht ). Aber das ganze ist per Python scriptbar (wenn auch mit teils häßlicher API) und das funzt auch ganz gut. Habe damit mal ein Quartett-Spiel automatisch erstellt.
Evtl. ist die API mittlerweile auch besser; daran wurde zumindest def. gearbeitet.
Evtl. ist die API mittlerweile auch besser; daran wurde zumindest def. gearbeitet.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Hi,
entschuldigung wenn ich mich so spät erst melde. Da es mit der Zeit nicht eilt, kann ich mir das in Scribus ja mal anschauen, vielleicht ist es das, was ich suche =)
Lg HH
entschuldigung wenn ich mich so spät erst melde. Da es mit der Zeit nicht eilt, kann ich mir das in Scribus ja mal anschauen, vielleicht ist es das, was ich suche =)
Lg HH
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Für PyRM bin ich auch auf der Suche nach einer Tremplates->PDF Lösung...
Vielleicht ist pyfpdf brauchbar, siehe: https://code.google.com/p/pyfpdf/wiki/Templates
Oder aber der HTML->PDF Konverter: http://pypi.python.org/pypi/xhtml2pdf/ (da ich z.Z. eh HTML erzeuge...)
Vielleicht ist pyfpdf brauchbar, siehe: https://code.google.com/p/pyfpdf/wiki/Templates
Oder aber der HTML->PDF Konverter: http://pypi.python.org/pypi/xhtml2pdf/ (da ich z.Z. eh HTML erzeuge...)
Passt zwar nicht zum letzten Beitrag, aber zum Thread an sich:
Auf der Suche nach einer Lösung zur Erzeugung von PDF-Dokumenten mit Python 3.2 (d.h. kein PIL, kein ReportLab verfügbar), habe ich mich mit ImageMagick beholfen, das ich mittels subprocess entsprechend gefüttert habe. Damit kann man ganz ordentliche Ergebnisse erzielen.
Auf der Suche nach einer Lösung zur Erzeugung von PDF-Dokumenten mit Python 3.2 (d.h. kein PIL, kein ReportLab verfügbar), habe ich mich mit ImageMagick beholfen, das ich mittels subprocess entsprechend gefüttert habe. Damit kann man ganz ordentliche Ergebnisse erzielen.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Da der Thread schon etwas aelter ist: Numerix koenntest du das naeher ausfuehren? Aus was hast du PDFs gebaut und warum schied z.B. LaTeX aus?
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
LaTeX habe ich nicht im Blick gehabt, da ich damit bislang nichts zu tun hatte. Ob das im konkreten Fall nützlich wäre bzw. sich die Beschäftigung damit lohnt, weiß ich nicht.cofi hat geschrieben:Da der Thread schon etwas aelter ist: Numerix koenntest du das naeher ausfuehren? Aus was hast du PDFs gebaut und warum schied z.B. LaTeX aus?
Ziel war es, anhand von einigen Benutzereingaben aus Eingabefeldern ein Formular als PDF zu erzeugen, in dem diese Benutzereingaben eingearbeitet sind. Da ich mir offen halten wollte, ob ich die entsprechende Anwendung webbasiert oder als lokale GUI-Variante laufen lasse, habe ich nach etwas gesucht, was sowohl lokal mit Python 3.2 und Tkinter-GUI einsetzbar ist, als auch webbasiert unter den konkreten Bedingungen des Webhosters.
Das entsprechende Webhosting-Paket beinhaltet Python (derzeit 2.7), allerdings weder PIL noch ReportLab und keine Rechte zur Installation weiterer Module. Allerdings ist ImageMagick verfügbar. Bei näherer Beschäftigung mit ImageMagick habe ich dann dazu gelernt, dass man damit nicht nur schon vorhandene Grafikdateien modifizieren kann, sondern auch ein quasi ein leeres Canvas erstellen und darauf schreiben und zeichnen kann, und zwar mit pixelgenauer Positionierung. Das Produkt lässt sich dann als PDF abspeichern oder in einem der vielen unterstützten Grafikformate.
Weitere Projektideen, die ich habe, könnten auch die Erzeugung von PDFs beinhalten, die außer Text einfache geometrische Figuren beinhalten (z.B. ein komplett beschriftetes Dreieck aus den Angaben der Seitenlängen, und zwar im exakten Maßstab 1:1). ImageMagick lässt mir da die Freiheit, das Ergebnis mal als PDF zu produzieren oder auch als Grafik - der Zeichenprozess ist exakt der gleiche. Eine solche Grafik könnte ich dann z.B. auch bei einer webbasierten Anwendung on the fly erzeugen und direkt in ein dynamisch erzeugtes HTML-Dokument einbinden.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
ah, interessant. Damit kann man ImageMagick ähnlich Einsetzten wie die "Canvas" aus Reportlab, richtig?
Gruß, noisefloor
ah, interessant. Damit kann man ImageMagick ähnlich Einsetzten wie die "Canvas" aus Reportlab, richtig?
Gruß, noisefloor
Das kann ich nicht beantworten, weil ich mich mit ReportLab nur kurz beschäftigt und diesen Weg aus den genannten Gründen nicht weiter verfolgt habe. Du kannst mit ImageMagick ein Canvas erzeugen und es vergleichbar mit einem Tkinter-Canvas mit einfachen geometrischen Formen (Kreise, Linien, Polygonzüge, Punkte u.ä.) sowie Text pixelgenau über ein Koordinatensystem beschreiben. Da man die Auflösung festlegen kann, lassen sich damit passable Druckergebnisse erzielen.noisefloor hat geschrieben:Damit kann man ImageMagick ähnlich Einsetzten wie die "Canvas" aus Reportlab, richtig?
@numerix: Aber es werden auch im PDF Pixelgraphiken erzeugt, oder!? Das wäre ja eher unschön.
Ja, ist korrekt. Und ja, ist eher unschön. Das werde ich aber wohl in Kauf nehmen (müssen). Angesichts der vorteilhaften Optionen, die diese Variante für meine Einsatzzwecke hat, ist das verschmerzlich, zumal die Druckqualität für meine Bedürfnisse absolut okay ist. Hier mal ein Beispieldokument.