Seite 1 von 2

PDF-Datei erzeugen?

Verfasst: Dienstag 23. November 2010, 18:19
von heiliga horsd
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

Re: PDF-Datei erzeugen?

Verfasst: Dienstag 23. November 2010, 18:47
von problembär
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

Re: PDF-Datei erzeugen?

Verfasst: Dienstag 23. November 2010, 18:53
von EyDu
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

Re: PDF-Datei erzeugen?

Verfasst: Dienstag 23. November 2010, 18:56
von heiliga horsd
OK, das mit LaTeX hört sich super an, da ich noch viel Zeit habe, werde ich mir das sicherlich anschauen!

Lg heiliga horsd

Re: PDF-Datei erzeugen?

Verfasst: Dienstag 23. November 2010, 20:16
von noisefloor
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

Re: PDF-Datei erzeugen?

Verfasst: Dienstag 23. November 2010, 21:19
von funkheld
lade dir pdf24 runter , ist freeware.

gruss

Re: PDF-Datei erzeugen?

Verfasst: Mittwoch 24. November 2010, 18:38
von heiliga horsd
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?

Re: PDF-Datei erzeugen?

Verfasst: Donnerstag 25. November 2010, 21:24
von Leonidas
Ansonsten halt OpenOffice.org/LibreOffice mit sowas wie Serienbrieffunktion. Gerade wenn man Sachen "layouten" will, dann ist LaTeX etwas unhandlich.

Re: PDF-Datei erzeugen?

Verfasst: Donnerstag 25. November 2010, 21:52
von ms4py
Leonidas hat geschrieben:Ansonsten halt OpenOffice.org/LibreOffice mit sowas wie Serienbrieffunktion. Gerade wenn man Sachen "layouten" will, dann ist LaTeX etwas unhandlich.
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.

Re: PDF-Datei erzeugen?

Verfasst: Freitag 26. November 2010, 00:04
von BlackJack
@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.

Re: PDF-Datei erzeugen?

Verfasst: Freitag 26. November 2010, 12:21
von Hyperion
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 :-D ). 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.

Re: PDF-Datei erzeugen?

Verfasst: Freitag 31. Dezember 2010, 12:13
von heiliga horsd
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

Re: PDF-Datei erzeugen?

Verfasst: Montag 27. Juni 2011, 17:43
von jens
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...)

Re: PDF-Datei erzeugen?

Verfasst: Montag 27. Juni 2011, 19:17
von numerix
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.

Re: PDF-Datei erzeugen?

Verfasst: Montag 27. Juni 2011, 19:49
von cofi
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?

Re: PDF-Datei erzeugen?

Verfasst: Montag 27. Juni 2011, 20:33
von numerix
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?
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.

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.

Re: PDF-Datei erzeugen?

Verfasst: Dienstag 28. Juni 2011, 06:45
von noisefloor
Hallo,

ah, interessant. Damit kann man ImageMagick ähnlich Einsetzten wie die "Canvas" aus Reportlab, richtig?

Gruß, noisefloor

Re: PDF-Datei erzeugen?

Verfasst: Dienstag 28. Juni 2011, 16:49
von numerix
noisefloor hat geschrieben:Damit kann man ImageMagick ähnlich Einsetzten wie die "Canvas" aus Reportlab, richtig?
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.

Re: PDF-Datei erzeugen?

Verfasst: Dienstag 28. Juni 2011, 17:16
von BlackJack
@numerix: Aber es werden auch im PDF Pixelgraphiken erzeugt, oder!? Das wäre ja eher unschön.

Re: PDF-Datei erzeugen?

Verfasst: Mittwoch 29. Juni 2011, 12:01
von numerix
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.