Seite 1 von 1

html to pdf

Verfasst: Freitag 18. November 2016, 11:47
von sebastian0202
Hallo,


im versuche im Moment ein HTML Dokument nach pdf umzuwandeln.
Ich habe etwas mit xhtml2pdf herumgespielt.
Leider kommt das Modul schon mit einer einfachen Border nicht klar.

Ich möchte ein, so gut es geht, WYSIWUG haben :mrgreen:

Kennt ihr noch Alternativen?
Ich würde ungerne phantomjs installieren um das Problem zu lösen.

Ich habe gesehen, dass es eine Lösung mittels PyQt4 über Webview gibt.
Funktioniert das zuversichtlich?

Ich erstelle im Moment einen Terminkalender(Monatsansicht) der durch Javascript editierbar ist.
Ich hätte gerne die Möglichkeit, dass man sich den Terminkalender als PDF herunterladen kann.

Re: html to pdf

Verfasst: Freitag 18. November 2016, 14:07
von jerch
Probier mal http://wkhtmltopdf.org/ Es setzt zwar noch auf die etwas veraltete Webkit1-Engine in Qt (von 2013), deckt aber von den neuen HTML/CSS/JS-Standards recht viel ab. Neuere Qt-Versionen nutzen stattdessen die Chrome-Engine, allerdings ist diese nicht so schön in Qt integriert, was solche "speziellen" Anwendungen schwierig macht.

@Edit:
Ja genau - PyQt4 nutzt für QWebView auch die Webkit-Engine. Damit könntest Du die Funktionalität von wkhtmltopdf auch selbst implementieren.

Re: html to pdf

Verfasst: Freitag 18. November 2016, 15:58
von noisefloor
Hallo,

WYSIWYG kann bei HTML+CSS aber verschiedene Ergebnisse haben - je nach dem, wie das CSS gestaltet ist.

Das Firefox Add-On Fireshot kann ganze Seiten (also nicht nur den sichtbaren Bereich) aufnehmen und als PDF speichern. Aber ich nehme an, die willst das Programm-technischn Umsetzen, also die HTML-Datei von Festplatten laden und dann wandeln?

Wo kommen die HTML-Dateien den her? Generierst du die selber? Hast du die von irgendwo runter geladen? ...?

Gruß, noisefloor

Re: html to pdf

Verfasst: Montag 21. November 2016, 08:22
von sebastian0202
Hallo an alle!

@jerch
wkhtmltopdf sieht vielversprechend aus. Werde ich diese Woche mal testen.
Html to Pdf mittels PyQt4 konnte ich lokal auf dem Client ausprobieren. Geht super!
Auf dem Server müsste ich es aber erst installieren und da stellt sich mir die Frage,
ob das nicht etwas zu viel Software für mein Problem wäre.

@noisefloor
Es reicht, wenn das PDF dem Original in der Webansicht ähnelt.
Die 'kleinen' Macken kann ich dann sicherlich mit anderer CSS Gestaltung ausbügeln.
Die HTML Dateien generiere ich mit Python.
Das Stylesheet und das Javascript sind im Moment extern in ihre eigene Datei gepackt.

Am Client die PDF generieren geht natürlich, macht aber den Datenaustausch schwerer.
Die erzeugte PDF wird nämlich nach der Erzeugung auf andere Server verteilt.
Daher nehme ich den erzeugten HTML Code aus Python direkt um daraus eine PDF zu erzeugen.

Re: html to pdf

Verfasst: Montag 21. November 2016, 08:56
von Sirius3
@sebastian0202: Dass das gleich aussehen soll, ist meiner Meinung nach, eher ein Nachteil. Bei HTML soll das Ergebnis möglichst übersichtlich auf einen Bildschirm (5" bis 45") passen, bei PDF auf eine Seite (A4). Du kommst also nicht drumrum, zwei Vorlagen zu generieren, und dann ist es auch nicht weit, zwei unterschiedliche Generatoren zu nehmen, die halt auf HTML oder auf PDF optimiert sind.

Re: html to pdf

Verfasst: Montag 21. November 2016, 09:13
von noisefloor
Hallo,

sehe ich genau so wie Sirius3.

Da du das HTML so wie so selber generierst sollte es auch einfach sein, das nativ PDF selber zu bauen, z.B. mittels ReportLab.

Ich habe so eine Anwendung selber im Einsatz, wo aus der gleichen Datenquellen sowohl die HTML-Datei (bei mir mittels Django Template Engine) als auch das PDF (mittels ReportLab) gebaut wird.

Gruß, noisefloor

Re: html to pdf

Verfasst: Dienstag 22. November 2016, 08:16
von sebastian0202
Hallo,



der Terminkalender wird später nur von einer Handvoll Leuten (Team) genutzt und befindet sich dann im Intranet.
Tablets und Smartphones können sich mit dem Intranet nicht verbinden.
Bisher ist abzusehen, dass er nur für Ressourcenmanagement genutzt wird.

Ich könnte zwei unterschiedliche CSS Dateien erstellen, aber der Informationsgehalt bleibt gleich.
Mit resizing von Websites habe ich mich noch nicht beschäftigt. :K
Und bei einer Tabelle könnte ich mir nicht mal vorstellen, was genau (größere Zellen?) geändert werden müsste.

ReportLab schaue ich mir auch mal an. Mit wkhtmltopdf hätte ich jetzt zwei Alternativen.
Danke.

Re: html to pdf

Verfasst: Dienstag 22. November 2016, 09:34
von noisefloor
Hallo,
Ich könnte zwei unterschiedliche CSS Dateien erstellen, aber der Informationsgehalt bleibt gleich. Mit resizing von Websites habe ich mich noch nicht beschäftigt.
Dann möchtest du vielleicht ein CSS-Framework nutzen, was das für dich macht, wie z.B. Bootstrap. Eine CSS-Datei, Ansicht passt in der Regel von Smartphone bis Breitbild Monitor.

Gruß, noisefloor

Re: html to pdf

Verfasst: Freitag 2. Dezember 2016, 08:14
von sebastian0202
Hallo,



kurze Info von mir.
Bei ReportLab hatte ich Probleme. Ich hätte mich registrieren müssen um die Software testen zu können.
Das fand ich problematisch.
wkhtmltopdf hingegen funktioniert für meine Bedürfnisse super. Leicht als tool zu integrieren und funktioniert direkt auf anhieb.

Bootstrap habe ich schon mal geladen. :mrgreen:
Jetzt muss ich mich nur noch in das Framework einlesen.

Re: html to pdf

Verfasst: Freitag 2. Dezember 2016, 11:11
von BlackJack
@sebastian0202: Seit wann muss man sich für die freie Version von `reportlab` registrieren?

Re: html to pdf

Verfasst: Freitag 2. Dezember 2016, 11:32
von noisefloor
Hallo,

es gibt Reportlab in der OpenSource Version und in einer "Plus" Version. Der Open Source Version ist vom Funktionsumfang völlig ok und kann, wie andere Python-Module auch, per pip installiert werden.

Links:
https://pypi.python.org/pypi/reportlab/3.3.0
http://www.reportlab.com/opensource/

Gruß, noisefloor

Re: html to pdf

Verfasst: Dienstag 6. Dezember 2016, 07:54
von sebastian0202
Hallo,


mich hat die Seite von ReportLab erschlagen, so viele Informationen auf der Seite und so wenig Zeit.
Ich habe auch nur die Plus Variante gefunden, für die man sich logischerweise registrieren muss.
Pip kann ich wegen des Firmnetzwerkes nicht nutzen.
Dafür habe ich gestern aber auf der Seite die Opensource Variante gefunden.
Also mein Fehler :mrgreen: