ks.documents
Mit ks.documents lassen sich PDF's und verschiedene Nachrichtenvorlagen kompilieren und interpolieren, damit sie in das gewünschte Format für die weitere Verarbeitung gebracht werden.
generatePdf
Erstellt mit den vorgegebenen Daten eine PDF.
Nur Serverseitig verfügbar
Parameter
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
file | Objekt | Ja | Inhalt der zu generierenden PDF |
user | Objekt | Ja | User in dessen Kontext die Erstellung laufen soll. Wird unter anderem für Sprache und Zeitzonen Einstellungen verwendet |
returnAsString | Boolean | Nein | Steuert ob die erstellte PDF als Base64 String oder Buffer zurückgegeben wird. Default: false |
Beispiel
In diesem Beispiel wird eine PDF Nachrichtenvorlage verwendet, um eine PDF im Base64 Format zu erstellen.
const messageTemplate = await ks.record.get('MessageTemplate', 'd2f78da5-fbd3-fe91-4046-3b5aea0648f6');
const messageTemplateI18ns = await messageTemplate.messageTemplateI18ns;
const germanMessageTemplate = _.find(messageTemplateI18ns, {language: 'de'});
const pdfAsBase64 = await ks.documents.generatePdf({
documentData: {
body: germanMessageTemplate.body.pug,
css: germanMessageTemplate.body.css
}
}, user, true);
generatePdfsAndDownload
Funktioniert analog zu generatePdf, nur das hier die PDF's direkt im Client heruntergeladen werden. Dabei kann man zwischen einem direkten PDF Download und einer Zip komprimierten PDF auswählen.
Nur Clientseitig verfügbar
Parameter
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
files | Objekt Array | Ja | Inhalt der zu generierenden PDF's |
zip | Boolean | Ja | Steuert ob die generierten PDF's Zip komprimiert werden sollen |
zipName | String | Nein | Name der resultierenden Zip, falls Komprimierung erwünscht |
generateTemplateByName
Interpoliert eine HTML oder E-Mail Nachrichtenvorlage mit den gegebenen Parametern und liefert das daraus resultierende HTML zurück.
Parameter
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
nameOrId | Objekt | Ja | Name oder Id der zu interpolierenden Nachrichtenvorlage |
options | Objekt | Ja | Enthält im data Objekt Daten zur Interpolation (analog zu DocumentData) |
user | Objekt | Ja | User in dessen Kontext die Erstellung laufen soll. Wird unter anderem für Sprache und Zeitzonen Einstellungen verwendet |
Beispiel
In diesem Beispiel wird eine E-Mail Nachrichtenvorlage mit Vorname und Nachname eines Users interpoliert, um die Anrede zu personalisieren. Das daraus resultierende HTML kann dann beispielsweise zum Senden der E-Mail verwendet werden.
const interpolatedHTML = await ks.documents.generateTemplateByName('MyEMailTemplate', {
data: {
firstName: 'Max',
lastName: 'Mustermann'
}
}, user);
// HTML kann nun zum senden der E-Mail verwendet werden
DocumentData
In der DocumentData sind alle Daten enthalten die zur Erstellung der PDF benötigt werden.
data
Objekt mit weiteren Daten die zur späteren Interpolation der PDF Templates benötigt werden
fileName
Dateiname der resultierenden PDF
documentData
Der Body enthält die Pug Definition zur Generierung. Im Body kann zusätzlich noch eigenes CSS angegeben werden oder aus einer Nachrichtenvorlage verwendet werden.