Krautkanal.com

Veröffentlicht am 2015-05-24 15:51:01 in /prog/

/prog/ 7128: Bernd hat mittels AngularJS eine Art Webshop generiert ...

jeremyworboys Avatar
jeremyworboys:#7128

Bernd hat mittels AngularJS eine Art Webshop generiert und würde nun gerne aus der Detailansicht eines Produktes eine PDF generieren lassen.

Die Daten dazu liegen im LocalStoreage des Browsers, könnten aber auch nochmal aus der Datenbank nachgeladen werden.

Gibt es dafür eine einfache Möglichkeit?

katiemdaly Avatar
katiemdaly:#7137

Drucker auslösen und in Datei drucken?

eloisem Avatar
eloisem:#7138

Sowas macht man eigentlich im Backend.

Z. B. bei Klick auf PDF-Button dann einen Request an den Server schicken, welcher eine PDF zurückgibt, die dann gespeichert werden kann.

millinet Avatar
millinet:#7139

>>7138
Dies. Erstell ein Rechungstemplate in Latex, das kannst du dynamisch mit Daten befüllen und ein pdf generieren.

bagawarman Avatar
bagawarman:#7141

Clientseitig wäre mir zwar lieber gewesen, aber hab es jetzt mittels tcpdf gelöst. Die relevanten Daten werden auf eine php-Datei gepostet, welche dann die Generierung des PDFs anstößt.

m_kalibry Avatar
m_kalibry:#7143

>>7141

Scheint auch clientseitig zu funktionieren: https://github.com/MrRio/jsPDF

Wie praktikabel das dann ist (Performance, Browserkompatibilität), ist eine andere Frage.

artcalvin Avatar
artcalvin:#7151

>>7143
Da tcPDF eine reine PHP-Bibliothek ist, sollte das js-Getüdel wohl kaum schlechter abschneiden.

Bernd Avatar
Bernd:#7154

>>7151

>Da tcPDF eine reine PHP-Bibliothek ist, sollte das js-Getüdel wohl kaum schlechter abschneiden.

In Bezug auf was? Wenn der Benutzer einen blöden Browser nutzt, kann er u. U. kein oder nur relativ langsam ein PDF generieren, die Backendlösung wäre da also praktikabler.

i_ganin Avatar
i_ganin:#7155

>>7154
Mal abgesehen davon, dass PDFs zu erstellen jetzt nicht gerade Numbercrunching ist:
Relevante Geräte, die PDFs anzeigen können, haben auch Browser in denen das geht.

greenbes Avatar
greenbes:#7162

>>7155

>Relevante Geräte, die PDFs anzeigen können, haben auch Browser in denen das geht.

Vielleicht will sich der Benutzer ja die PDF speichern, um sie dann mit einem PDF-Betrachter anzuschauen.

Wenn man einen Web-Shop betreibt, möchte man i. d. R. so viele Besucher wie möglich unterstützen, da sie potentielle Kunden darstellen.

Andererseits hast du nicht ganz Unrecht, denn da das ganze sowieso auf Angular läuft, kann man wohl davon ausgehen, dass die Geräte/Browser der meisten Besucher (die die Seite besuchen können) auch die PDF-Generierung im Frontend unterstützen werden.

okcoker Avatar
okcoker:#7378

http://pdfkit.org/demo/browser.html

hibrahimsafak Avatar
hibrahimsafak:#7379

>>7141
>Die relevanten Daten werden auf eine php-Datei gepostet, welche dann die Generierung des PDFs anstößt.
Bedenke, dass jeder dort beliebige Daten hinposten kann, für die du ihm dann eine Rechnung generierst. Besser, du postest dort die ID des Einkaufs hin, und holst dir dann die nötigen Daten zu dem Einkauf aus deiner Datenbank.

Ok, Rechnungen kann sich notfalls jeder irgendwie faken, man muss es aber nicht unnötig einfach machen. Aber generell scheinst du sehr viel clientseitig zu machen, das solltest du nochmal von einem Security-Standpunkt überdenken. Denn alles was clientseitig passiert, kann beliebig manipuliert werden.

thomweerd Avatar
thomweerd:#7380

Clientseitige PDF generierung im Browser. Oh Hunt, es geht mit /prog/ weiter bergab.

Geht aber theoretisch. FileWriter API ist dein Freund. Musst du halt nur das PDF selbst schreiben. Glaube kaum das es da eine fertige Lib gibt.

joshhemsley Avatar
joshhemsley:#7385

>>7380

>Geht aber theoretisch. FileWriter API ist dein Freund. Musst du halt nur das PDF selbst schreiben.

Die FileWriter-API-Spezifikation wird nicht mehr weiterentwickelt.

>Glaube kaum das es da eine fertige Lib gibt.

Wurde hier schon pfostiert: >>7143

t1mmen Avatar
t1mmen:#7400

>wkhtmltopdf
PDF-export von Webkit nur fürs Backend und dann das hier machen: >>7138

Eventuell musst du mit dem PDF-Export trotzdem noch ein bisschen frickeln und z.B. das CSS der Seite ein bisschen PDF-Freundlicher machen.

cheezonbread Avatar
cheezonbread:#7407

>>7380
Gibt es
https://mozilla.github.io/pdf.js/

Neuste Fäden in diesem Brett: