- Erstellen Sie eine HTML-Vorlage für die PDF-Generierung, einschließlich Variablen und Schleifen im Mustache-Format.
- Lade die Vorlage mit einem ausgewählten Namen über die REST-Schnittstelle hoch.
- Wenn du deine Vorlage später korrigieren möchtest, ändere sie über die REST-Schnittstelle.
- Laden Sie alle erforderlichen Bilder und Stylesheets als Uploads im AppServer hoch.
- In der App:
- Generierung dynamischer Daten.
- Lade die generierten dynamischen Daten unter einer eindeutigen Sitzungs-ID im Key-Value-Store hoch (über die REST-Schnittstelle des Key-Value-Stores).
Die Payload benötigt einen eindeutigen Schlüssel und die dynamischen Daten, die du speichern möchtest.var payloadKeyValueStore = { key: "sessiondata/myTestApp/" + sap.ui.getCore().getModel().getData().sessionKey, content: btoa(JSON.stringify(sap.ui.getCore().getModel().getData())) }; this.callPlugin("keyValueStorePlugin", "puthttp", payloadKeyValueStore, callbackStoreSession, true, false, onKeyValueStoreFail) - Optional: Hochladen zusätzlicher Dokumente zur Zusammenführung in den Key-Value-Store (über die REST-Schnittstelle des Key-Value-Stores).
- Optional: Hochladen einer Liste dieser Dokumentschlüssel als Zusammenführungsliste in den Key-Value-Store (über die REST-Schnittstelle des Key-Value-Stores).
- Start der PDF-Generierung mit dem Vorlagennamen, der Sitzungs-ID und (optionalen) Konfigurationsdaten für die PDF-Generierung über die REST-Schnittstelle.
var callbackStoreSession = function(data) { if(data.success) { var payloadGeneratePdf = { "template": "templatename", "session": "myTestApp/" + sap.ui.getCore().getModel().getData(). sessionKey, //"config": "(\"orientation\" : \"Portrait\", \"page-size\" : \"A4\", \"margin-top\" : \"1in\", \"margin-bottom\" : \"1in\", //\"margin-left\" : \"1in\", \"margin-right\" : \"1in\", \"footer-center\" : \"[page] / [toPage]\"}\"}\" }; busyDialog.setText("Generiert die angeforderte PDF-Datei. Bitte etwas Geduld."); $this.callPlugin("pdfPlugin", "generatePdf", payloadGeneratePdf, callbackGeneratePdf, true, false, onGeneratePdfFail); } }; - Merken Sie sich die JobID.
- Asynchrone Ausführung der PDF-Generierung (Hintergrundoperation).
- Rufen Sie die Vorlage auf.
- Rufen Sie die dynamischen Daten ab.
- Werten Sie die Daten in der Vorlage aus.
- Rufen Sie die statischen Assets (Bilder, Stylesheets) vom AppServer ab.
- Konvertieren Sie die fertige HTML-Datei in ein PDF.
- Holen Sie sich die Zusammenführungsliste und die Zusammenführungs-Binärdateien.
- Führen Sie das erstellte PDF mit den Zusammenführungsdateien zusammen.
- Speichern Sie das fertige PDF im Key-Value-Store.
- Rufe den Key-Value-Store über die REST-Schnittstelle mit der eingeschränkten JobID auf, um zu sehen, ob die PDF-Datei bereits fertiggestellt wurde.
var jobId; var callbackGeneratePdf = function(data) { if (data.success) { jobId = { key: "pdf/"+data.value.jobId+".pdf" }; //Timeout für Demozwecke setTimeout(function() { $this.callPlugin("keyValueStorePlugin", "gethttp", jobId, callbackFetchPdf, true, false, onKeyValueStoreFail); },10000); } }; var callbackFetchPdf = function(data) { if(data.success) { var pdfData = data.result; window.open("data:application/pdf;base64,"pdfData); } };











