halloICKEbins
Anmeldungsdatum: 12. September 2017
Beiträge: 226
|
Mahlzeit, ich wollte gerade auf meinem Server das nachfolgende Script ausführen, und dann merkert er test_pdf1.py: cannot connect to X server 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | from PyQt4.QtGui import QTextDocument, QPrinter, QApplication
import sys
app = QApplication(sys.argv)
doc = QTextDocument()
location = "/home/user/1.html"
html = open(location).read()
doc.setHtml(html)
printer = QPrinter()
printer.setOutputFileName("1.pdf")
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setPageSize(QPrinter.A4);
printer.setPageMargins (15,15,15,15,QPrinter.Millimeter);
doc.print_(printer)
print ("done!")
|
Wie kann ich das umgehen, außer mit | # run yourcode.py with a fake X environment provided by xvfb-run
xvfb-run python yourcode.py
|
bzw. gibt es geeignetere Module als dass, welches ich verwende.
Obwohl ich damit schon zufreiden bin (auf meinem Desktop-PC läufts bereits erfolgreich)
|
misterunknown
Ehemalige
Anmeldungsdatum: 28. Oktober 2009
Beiträge: 4403
Wohnort: Sachsen
|
Ist das Skript ausschließlich dafür da, PDFs in HTML umzuwandeln? Dann könntest du das auch so machen:
apt-get install poppler-utils
pdftohtml $dein_pdf
|
halloICKEbins
(Themenstarter)
Anmeldungsdatum: 12. September 2017
Beiträge: 226
|
Ich will doch html –> pdf
|
mrkramps
Anmeldungsdatum: 10. Oktober 2006
Beiträge: 5523
Wohnort: south central EL
|
misterunknown schrieb: Ist das Skript ausschließlich dafür da, PDFs in HTML umzuwandeln?
Das wäre einfach, aber er braucht wohl andersherum HTML in PDF. Dafür könnte man bspw. Pandoc oder wkhtmltopdf 🇬🇧 nehmen.
|
Prof._Frink
Anmeldungsdatum: 29. Mai 2010
Beiträge: 1096
|
mrkramps schrieb: misterunknown schrieb: Ist das Skript ausschließlich dafür da, PDFs in HTML umzuwandeln?
Das wäre einfach, aber er braucht wohl andersherum HTML in PDF. Dafür könnte man bspw. Pandoc oder wkhtmltopdf 🇬🇧 nehmen.
Für wkhtmltopdf gibt es auch ein Python-Interface.
|
halloICKEbins
(Themenstarter)
Anmeldungsdatum: 12. September 2017
Beiträge: 226
|
Da kommt leider folgende Fehlermeldung:
| user1@server:/home/user1# wkhtmltopdf 1.html 1.pdf
QXcbConnection: Could not connect to display
Aborted (core dumped)
|
Bei Pandoc kommt diese Fehlermeldung: | user1@server:/home/user1# pandoc 1.html -o 1.pdf
pandoc: pdflatex not found. pdflatex is needed for pdf output.
|
Welches Modul (exakter Name) brauche ich da noch?
|
mrkramps
Anmeldungsdatum: 10. Oktober 2006
Beiträge: 5523
Wohnort: south central EL
|
Dann können wir wkhtmltopdf auch streichen. Entschuldige bitte, ich wusste nicht, dass das auch eine grafische Umgebung (X) benötigt. WeasyPrint 🇬🇧 wäre noch eine Alternative, aber scheint auch irgendwie die grafische Umgebung vorauszusetzen?! Pandoc benötigt LaTeX für die PDF-Ausgabe.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12829
|
Es gibt doch headless X11-Server, z.B. Xvfb.
|
apt-ghetto
Anmeldungsdatum: 3. Juni 2014
Beiträge: 2943
|
|
mrkramps
Anmeldungsdatum: 10. Oktober 2006
Beiträge: 5523
Wohnort: south central EL
|
Wenn er Xvfb benutzen wollen würde, dann kann er auch bei seinem bisherigen Skript bleiben. Das hat er ja schon in seinem ersten Beitrag erwähnt 😉
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29065
Wohnort: WW
|
Hallo, wo kommt denn 1.html her? Lädst du das irgendwo runter oder generierst du das HTML selber? Gruß, noisefloor
|
halloICKEbins
(Themenstarter)
Anmeldungsdatum: 12. September 2017
Beiträge: 226
|
1.html ist eine einfache HTML-Seite die zum Test umgewandelt werden soll...Liegt im Home-Verzeichnis von user1
|
halloICKEbins
(Themenstarter)
Anmeldungsdatum: 12. September 2017
Beiträge: 226
|
apt-ghetto schrieb: wkhtmltopdf kann man scheinbar auch mit einem virtuellen X-Server nutzen: https://github.com/JazzCore/python-pdfkit/wiki/Using-wkhtmltopdf-without-X-server
Habe mal geschaut ... ist auch mit xvfb ... anscheint geht es nicht ohne!
|
Vain
Anmeldungsdatum: 12. April 2008
Beiträge: 2503
|
Wenn du die Muße dazu hast, damit rumzuprobieren, könnte vielleicht mit phantomjs ein Ergebnis rausfallen: https://stackoverflow.com/a/12860920 (Finde die Fragestellung übrigens faszinierend. Im ersten Moment denkt man, hey, das muss doch relativ einfach gehen. Aber dann, naja, es ist HTML und CSS und … um Himmels Willen.)
|
halloICKEbins
(Themenstarter)
Anmeldungsdatum: 12. September 2017
Beiträge: 226
|
Hatte auch gedacht, dass es einfacher ist bzw. mehrere Möglichkeiten gibt...zu deinem Link - ich würde gerne auf JavaScript verzichten!
|