2017-02-02 8 views
0

Ich habe eine Anwendung, die eine HTML-Seite mit Daten generiert, die der Benutzer bearbeiten kann. Am Ende erzeuge ich eine .pdf Datei mit jsPDF. Gibt es eine Möglichkeit, dass ich diese generierte .pdf auf meiner serverseitigen Datenbank speichern kann?Speichern von PDF auf der Serverseite mit jsPDF

Ich benutze PrimeFaces.

Vielen Dank im Voraus

+0

Diese Frage ist nicht Javascript, nicht Java-Se, nicht HTML, noch PrimeFaces verwandt. Und wo generieren Sie das PDF? Kundenseite? Können Sie es in einem Eingabeelement speichern? Dann läuft diese Frage darauf hinaus, den Wert eines Eingabeelements auf den Server zu bekommen. Bitte zerlegen Sie Ihr Problem auf das, worauf es eigentlich hinausläuft. Jetzt ist es zu weit und unklar – Kukeltje

+0

Meinst du, dass Sie Ihre Datei in einem Repository hochladen möchten, um es zu speichern?!? Es ist wahr, dass es ein bisschen unklar ist. –

+0

Entschuldigung dafür, dass ich nicht klar bin, ja, ich erstelle das PDF auf der Client-Seite. Der Punkt ist, dass der Benutzer in diesem HTML-Blatt Texte eingeben und einige Daten ändern kann, die von der Anwendung in der Datenbank abgerufen werden. Ich möchte das von der jsPDF-Bibliothek generierte .pdf speichern. – jlwollinger

Antwort

1

aktualisiert meine Lösung für andere Benutzer:

fand ich die .output('datauristring') Methode des jsPDF, die mir einen BASE64 String zurückgibt.

Dann wird der String über JSON an meine Backed Bean gesendet und konvertiert wie mein Wille.

+0

Sehen Sie, wenn Sie das Problem aufgliedern, läuft es auf das hinaus, was Sie herausgefunden haben. Eine Frage in dieser Richtung zu stellen wäre viel einfacher gewesen, wie: Wie kann ich die Ausgabe von jsPDF in einer Zeichenfolge erhalten? – Kukeltje

+0

Genau, Lektion gelernt. Danke Herr Kukeltje – jlwollinger

0

Ich schlage vor, wkhtmltopdf zu verwenden.

Es ist ein Open-Source-Cross-Plattform-Befehlszeilen-Tool zum Erstellen von PDF-Dateien aus HTML-Inhalt.

So zu Ihrer Anforderung, was Sie tun können, müssen Sie den HTML-Inhalt an den Server senden und speichern Sie diesen Inhalt in eine HTML-Datei.

Sobald Sie HTML-Inhalt in HTML gespeichert haben, können Sie wkhtmltopdf aufrufen, wie Sie MS-DOS-Befehle in Java ausführen.

Beispiel:new ProcessBuilder("wkhtmltopdf.exe", htmlFilePath, pdfFilePath);

Sobald pdf-Datei generiert wird Sie in die Datenbank lesen und speichern kann.

+0

Benutzer verwendet bereits jspdf ... Und wenn Sie Java und Sie etwas anderes vorschlagen möchten, würde ich empfehlen https://github.com/flyingsaucerproject Viel bessere Integration – Kukeltje

+0

Vielen Dank Herr Kukeltje und Herr Ravi MCA – jlwollinger

1

Vielen Dank für die Hilfe! Ich habe meine Lösung gefunden:

Sobald der Benutzer auf die Schaltfläche drückt, um das PDF zu generieren, werde ich alle Daten, die er in die Datenbank gefüllt, nur die Daten speichern.

Wenn der Benutzer die PDF-Datei, die er generiert hat, sehen möchte, erzeuge ich eine neue mit den Daten, die bei seiner ersten Übermittlung gesammelt wurden.

Vielen Dank für die Antworten, sie waren hilfreich.

+0

Dies ist keine Antwort auf das Problem. Du hast es auf eine ganz andere Art und Weise gelöst. Beachten Sie jedoch, dass diese "Problemumgehung" möglicherweise nicht die richtige Lösung ist, wenn das PDF für eine Art "Proof" benötigt wird! – Kukeltje

+0

Ich weiß, dass es nicht die richtige Lösung ist, Kukeltje, aber meine Deadline kommt und ich muss weitermachen. Workarounds kommen immer zu einem Problem, aber ich muss es für eine Weile überspringen. Vielen Dank für Ihre Aufmerksamkeit Herr Kukeltje, ich schätze es wirklich – jlwollinger