NEWS
[GELÖST] Druckbare Datei aus Liste erzeugen? 🤯
-
Leider alles ohne Erfolg…
Es wird tatsächlich nur gedruckt, wenn sich innerhalb des <body> </body> Nichts weiter befindet, mit dem /n wird zwar gedruckt aber dennoch in einer Zeile.Der Drucker ist ein „HP ENVY 7640“
Zu der Methode die gesendete email direkt drucken (kein Anhang), kann ich keine Infos finden.Edit: Moment klappt doch !!!
Hatte hier beim lauter Testen ein Schnipsel übersehen! <pre>Zucker /n Mehl</pre> funktioniert -
@newpicsel sagte in Druckbare Datei aus Liste erzeugen? 🤯:
HP ENVY 7640
also mal ein bisschen rumgeschaut.
wenn du per email druckst, nutzt du dann ePrint von hp ?
Da wird html nicht offiziell unterstützt.
Ich habe leider auch nix zu den Anforderungen gefunden.
wenn du mit dem pre zum erfolg kommst, dann alles gut.
ansonsten musst du aus html ein pdf erzeugen und das als anhang per email versenden.seltsam ist, das html teilweise unterstützt wird. wenn jemand sowas umsetzt, dann ganz oder gar nicht. evtl. wird nur ein alter html standard unterstützt. aber alle oben aufgeführten tags sind schon immer da.
-
Ja richtig, schon komisch aber ok…
Wirklich zum Ziel führt mich dies leider nicht, da ich gerne zwei Listen nebeneinander hätte um nicht zu viel Platz auf einem Blatt A4 zu verschwenden, dafür würde ich jedes zweite Element in eine zweite Liste packen.
Dadurch, dass ich nun keine zwei Container in <body> Stecken kann sowie keine tabelle oder Ähnliches, hat sie diese Idee erübrigt…Hat hier jemand noch eine Idee?
Zum umwandeln in pdf mit „wkhtmltopdf“, hier hab ich das Problem, dass laut kommandozeile zwar „done“ ausgegeben wird, ich die pdf aber nicht finden kann…
Eingabe:
wkhtmltopdf /opt/iobroker/iobroker-data/files/vis.0/Smart-Home/ShopList.html /opt/iobroker/iobroker-data/files/vis.0/Smart-Home/ShopList.pdf
Ausgabe:
Loading page (1/2) Printing pages (2/2) Done
Zum verzweifeln
-
wenn du es mal richtig kompliziert willst - braucht node eintrag im javascript setting
hier wird ein pdf im script direct erzeugt und speichert es auf die platte
const PDFDocument = require('pdfkit'); const fs = require('fs'); var pdfDoc = new PDFDocument; pdfDoc.pipe(fs.createWriteStream('/Daten/SampleDocument.pdf')); pdfDoc .fillColor('blue') .fontSize(27) .text("da kann man sich schwindelig coden :-)", 305, 150); pdfDoc.moveDown(); pdfDoc.text("nimm dir zeit :-)", 305); pdfDoc.text("Butter", 150, 150); pdfDoc.moveDown(); pdfDoc.text("Mehl"); pdfDoc.moveDown(); pdfDoc.end();
anleitung:
http://pdfkit.org/index.html
https://www.npmjs.com/package/pdfkitgibt es wohl auch für table
-
@newpicsel sagte in Druckbare Datei aus Liste erzeugen? 🤯:
Ja richtig, schon komisch aber ok…
Wirklich zum Ziel führt mich dies leider nicht, da ich gerne zwei Listen nebeneinander hätte um nicht zu viel Platz auf einem Blatt A4 zu verschwenden, dafür würde ich jedes zweite Element in eine zweite Liste packen.
Dadurch, dass ich nun keine zwei Container in <body> Stecken kann sowie keine tabelle oder Ähnliches, hat sie diese Idee erübrigt…Hat hier jemand noch eine Idee?
Zum umwandeln in pdf mit „wkhtmltopdf“, hier hab ich das Problem, dass laut kommandozeile zwar „done“ ausgegeben wird, ich die pdf aber nicht finden kann…
Eingabe:
wkhtmltopdf /opt/iobroker/iobroker-data/files/vis.0/Smart-Home/ShopList.html /opt/iobroker/iobroker-data/files/vis.0/Smart-Home/ShopList.pdf
Ausgabe:
Loading page (1/2) Printing pages (2/2) Done
Zum verzweifeln
ja für solche dinge brauch man ein wenig zeit und muss sich durchbeissen.
hast du den befehl schon mal direkt auf der kommandozeile eingegeben, so das du die Rück-Meldungen des Befehls siehst.
du solltest den befehl direkt im iobroker kontext ausführen.
alsosudo -u iobroker wkhtmltopdf /opt/iobroker/iobroker-data/files/vis.0/Smart-Home/ShopList.html /opt/iobroker/iobroker-data/files/vis.0/Smart-Home/ShopList.pdf
alternativ kann der artikel helfen?
https://stackoverflow.com/questions/4550612/wkhtmltopdf-cannot-convert-local-file -
ok das ist sehr interessant aber bin schon mit dem umwandeln weiter gekommen…
Genau, die Ausgabe oben kommt direkt aus der Kommandozeile.
Irgendwie hat sich da irgendwas blockiert…
Ich habe einmal die html und pdf (die ja eigentlich nicht existierte) über die Kommandozeile gelöscht und mein Skript neu gestartet, siehe da, beide Dateien werden angelegt und die pdf an meinen Drucker gesendet und gedruckt!
Ich werd verrückt
(Ich habe nichts verändert, dass löschen der nicht vorhandenen Datei muss den Fehler behoben haben!)Einzig mein "•" macht Probleme, dieser kann wohl nicht verarbeitet werden, und wird durch "•" ersetzt!
Hier muss ich noch etwas fummeln oder auf den Punkt verzichten…
Aber das wird schon noch! -
-
Unicode klappt so nicht, hab ein paar ausprobiert
Aber ich nehme einfach ein "-" das geht auch gut
-
@newpicsel
packe deinen listen string einfach in ein ul li ein
das ist der html standard für listen
warum hält sich niemand an die standards.<html><head></head><body style="width: 21cm; height: 29.7cm; margin: 30mm 45mm 30mm 45mm; font-family: Verdana; font-size: 14.0px;"><ul><li>Zucker</li><li>Mehl</li></ul></body></html>
-
Hast ja recht
Warum künstlich eine Liste nachbauen, wenn bereits die Möglichkeit einer ordentlichen Liste zur Verfügung steht!
Wird direkt in Verbindung mit einem vernünftigen html Code umgesetzt!
Danke nochmal für eure Hilfe, einfach großartig dieses Forum