Hallo Freunde,
Ich möchte in irgendeiner UI (Web basiert) eine PDF aus einer PostgreSQL Datenbank erstellen. Ich will im Browser eine bestimmte Zeile einer tabelle auswählen können (also z.b. 12) und dann auf einen Knopf drücken “pdf erstellen” und in einem neuen Tab geht dann eine PDF auf mit den Infos aus der Tabelle. Die PDF besteht nicht nur aus Inhalten aus der Datenbank sondern auch aus fixen Informationen (also z.b. Text, Bildern).
Habt ihr da Ideen? Ich habe es schon über nodered versucht aber ich habe nicht genug Ahnung von JS/HTML um sowas zu machen. (Obwohl ich schon viel anderes in nodered realisiert habe aber mit dem Thema hab ich einfach garkeine ahnung)
Man sollte die angefragten Daten wahrscheinlich Recht einfach automatisiert in ein LaTeX Dokument einfügen können, was man dann zu einer PDF Datei kompilieren kann. Ohne programmiererfahrung wird das allerdings schon schwierig
Wie könnte ich latex rein auf einem Server laufen lassen bzw. Die PDFs dann dem Nutzer zur Verfügung stellen?
PDFlatex und auch die meisten anderen impelementationen funktionieren als reines Kommandozeilenprogramm. Heißt wenn eine Anfrage reinkommt wäre eine Möglichkeit:
- Latex Vorlage kopieren
- Benutzerdaten in kopie der Vorlage ersetzen (z.b. mit sed)
- die Datei mit PDFlatex kompilieren
- PDF Datei in irgendeiner Form (z.b. E-mail) dem Nutzer zukommen lassen
Okay :/ Denke dass ich mir dann doch ein gewisses Maß am nodejs aneignen muss.
Evtl. sowas https://n8n.io?
Das kann beliebige Datenquellen anzapfen, transformieren und entsprechend ausgeben. Das kann von Haus aus schon viel, alles andere kann man mit JavaScript (?) erweitern und man kann sogar einiges über eine Weboberfläche zusammenklicken.
Als kommerzielle soll das wohl ganz gut sein: https://monday.com/.
Dann gab es da glaube ich noch was von Apache welches man mit Python erweitern konnte, aber das finde ich gerade nicht mehr.Ist es mir noch eingefallen: https://airflow.apache.orgIch denke, dass es grundsätzlich möglich sein müsste, HTML in ein PDF zu “drucken”. Weiß aber nicht auswendig, wie das geht. (ist lange her bei mir)
Andere Methode, die auf lange Sicht wesentlich “saubere” Ergebnisse liefert: Mit etwas Programmierung (JS) die Daten an den Server senden, dort via “pandoc” in ein PDF unwandeln, das PDF an den benutzer zurückschicken.
Schau mal ob du mit Cloudbeaver und einem PDF Drucker ans Ziel kommst. Das würde mir jetzt einfallen 🤔
Extra spaßig könnte man es mit XSL/FO und XSLT lösen. Theoretisch müsste man dafür nicht Programmieren, aber ein XSLT erstellen, was eine Wissenschaft an sich ist. Dann das ganze via FOP auf Serverseite zu PDF rendern.
Ist aber der Hardcore Enterprise Ansatz und vermutlich nicht am einfachsten.
HTML erzeugen und drucken lol
Prinzipiell auch eine Lösung, kann ich sowas irgendwie mit nodered realisieren (dass ich quasi irgendwo ein Knopf habe und nodered die html in einem neuen Tab öffnet)?