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)
Das sind relativ spezielle Anforderungen. Ich bin mir unsicher, ob du das ohne Coding hinbekommst, ohne dabei Abstriche bei den Vorgaben zu machen.
Ich würde mir ein Webprojekt basteln, dass mir eine Web UI zur Auswahl des Datensatzes bietet, den Datensatz aus der PostgreSQL-DB ausliest und dann aufbereitet/umwandelt.
Für die PDF-Ausgabe könnte man sowas wie iText benutzen. Es kann HTML-Dokumente in PDFs umwandeln oder die PDFs sogar Low Level aufbauen. Damit könntest du neben den Informationen aus der Datenbank auch statische Elemente wie die geforderten Bilder/Texte vorlagenbasiert unterbringen.
Aber das ist jetzt alles sehr vage; und basiert wie gesagt auf Coding.
Okay :/ Denke dass ich mir dann doch ein gewisses Maß am nodejs aneignen muss.
Also HTML und Javascript werden für dein Vorhaben sicherlich nicht schaden. Es gäbe aber auch andere Wege; ASP.NET Core plus Blazor könnten beispielsweise interessant sein - je nachdem mit welchem Vorwissen man einsteigt, aus welcher Ecke man kommt und welche Serverumgebung zur Verfügung steht usw.
Viel Erfolg jedenfalls mit deinem Projekt!
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
Ich 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.
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.orgHTML 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)?
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.
Schau mal ob du mit Cloudbeaver und einem PDF Drucker ans Ziel kommst. Das würde mir jetzt einfallen 🤔