Inhaltsverzeichnis

DocCreator verwenden

Sebastian Bartsch Aktualisiert von Sebastian Bartsch

Beim DocCreator handelt es sich um eine REST API auf deren Ressourcen über HTTP Aufrufe zugegriffen wird.

In dieser Dokumentation wird davon ausgegangen, dass der DocCreator unter der Basis-Adresse: https://yourserver.com/doccreator/ erreichbar ist. Die nachfolgenden Ressourcen werden an die Basis-Adresse angehangen.

Grundsätzliches

Für die korrekte Funktion sind zusätzliche Informationen erforderlich die über den Header mit jedem Aufruf einer Ressource übergeben werden müssen.

Header

Wert

X-Api-Key

Übergeben Sie hier den Wert der in der appsettings.json Datei unter der Einstellung X-Api-Key eingetragen ist.

X-Api-LicenseName

Der Name der Firma oder Organisation auf den die Lizenz ausgestellt wurde. Im Rahmen einer Testlizenz tragen Sie hier bitte den Wert Evaluation ein.

Der Name muss der Schreibweise exakt der Lizenz entsprechen

Content-Type

application/json

Accept

*/*

Erstellen von neuen Dokumenten

Methode

POST

Ressource

api/v1/creator

Response Header

Es wird das erstellte Dokument als Download bereitgestellt.

Der Dateiname wird über den Request-Body festgelegt.

Content-Type

application/octet-stream

Content-Disposition

attachment; filename=CreatedSampleDocument.docx; filename*=UTF-8''CreatedSampleDocument.docx

Im Body wird eine JSON Datenstruktur übergeben die sämtliche erforderlichen Informationen enthält um ein Dokument zu erzeugen

{
"disableJobRouterIntegration": true,
"processId": "pid",
"stepId": "sid",
"fileId": "1",
"templateName": "demo.docx",
"documentFileName": "Dokument1123",
"documentAuthor": "OMV",
"attachmentSubTableName": "DOKERSTELLEN",
"fileNameField": "DOK",
"processFields": [
{"fieldName": "AN", "fieldValue":"Anstragssteller"},
{"fieldName": "FRIST", "fieldValue":""}
],
"mergeFieldMappings": [
{"fieldName": "absender_name", "fieldValue": "Sebastian"},
{"fieldName": "absender_tel", "fieldValue": "76"},
{"fieldName": "absender_fax", "fieldValue": "99"},
{"fieldName": "brief_datum", "fieldValue": "26.10.1969"},
{"fieldName": "absender_zeichen", "fieldValue": "SB"},
{"fieldName": "brief_anrede", "fieldValue": "Herr"},
{"fieldName": "brief_anschrift", "fieldValue": "DocuScan GmbH\rSchloss Buschfeld\r50374 Erftadt"},
{"fieldName": "brief_betreff", "fieldValue": "Ihr Wunsch!"},
{"fieldName": "brief_text", "fieldValue": "jede Menge interessanter Text"},

{"fieldName": "brief_anrede", "fieldValue": "Herr"},
{"fieldName": "absender_unterschrift", "fieldValue": "KNV_0815", "fieldType": "Barcode",
"fieldOptions" : {
"$type": "DataMatrix",
"moduleSize": 1,
"dpi": 96,
"compactionMode": "Text",
"size": "Matrix18x18"}
},
{ "fieldType": "Table", "fieldName": "Positionen",
"fieldValue": [
["Sebastian", "B", "Developer"],
["John", "MacClane", "Just a cop"],
["Hans", "Gruber", "Villain"]
],
"fieldOptions" : {
"$type": "Table",
"mergeFieldMappings": [
{"fieldName": "Spalte1"},
{"fieldName": "Spalte2"},
{"fieldName": "Spalte3"}
]
}
},
{ "fieldType": "Table", "fieldName": "Cities",
"fieldValue": [
["New York", "USA", "21,9 Millionen"],
["Rio", "Brasilien", "6,5 Millionen"],
["Tokio", "Japan", "9,6 Millionen"]
],
"fieldOptions" : {
"$type": "Table",
"mergeFieldMappings": [
{"fieldName": "CityName"}
]
}
}
]
}

Aufruf des DocCreator

Der DocCreator ist eine Webanwendung und kann daher überall dort konsumiert werden wo die Verarbeitung von REST-APIs möglich ist. Wir haben im Artikel Barcodes mit dem DocCreator einbetten ein JavaScript Beispiel zusammengestellt.

Datenstruktur des Request-Body

Eigenschaft

Beschreibung

processId

Die JobRouter Prozess ID

stepId

Die JobRouter Schritt ID

fileId

Der Index der Zeilennummer einer Untertabelle

In JobRouter wird dies auch als rowId bezeichnet.

templateName

Der Name einer Vorlage im Template-Ordner

createPdf

Gibt an ob anstelle eines Word-Dokument eine PDF-Datei erstellt wird. Um eine PDF-Datei zu erzeugen muss dieser Wert auf true gesetzt werden, andernfalls auf false

documentFileName

Dies ist der Name der Datei die am Ende der Erstellung dem Benutzer zum Download angeboten wird.

documentAuthor

Hier kann der Standard-Autor des Dokuments überschrieben werden. Der Standardwert wird in der Konfigurationsdatei festgelegt.

attachmentSubTableName

Name der Untertabelle in der das erstellte Dokument eingefügt werden soll.

fileNameField

Feldname des Anhangsfeldes der Untertabelle in das das erstelle Dokument eingefügt werden soll.

processFields

Eine Auflistung von zusätzlichen Feldern der Untertabelle die parallel zum erstellten Dokument mit Werten gefüllt werden sollen.

Hier entspricht fieldName dem Feldnamen in der Tabelle und fieldValue dem Wert.

subTableStoreMode

Gibt an ob der Eintrag für das erstelle Dokument in die Untertabelle eingefügt werden soll (Insert) oder ein vorhandener Eintrag aktualisiert werden soll (Update).

Wenn Sie diese Einstellung weglassen wird ein neuer Eintrag eingefügt.

Gültige Werte sind: Insert und Update

mergeFieldMapping

Eine Auflistung von Feldern und Werten die in der Vorlage ersetzt werden sollen. Lesen Sie unten weiter für mehr Details.

MergeFieldMapping

Der DocCreator sucht und ersetzt sogenannte MergeFields in Word-Dokumenten. Über das MergeFieldMapping geben Sie an welches MergeField in der Vorlage mit einem bestimmten Wert ersetzt werden soll.

Die Konfiguration erwartet dabei folgende Angaben:

Eigenschaft

Beschreibung

fieldName

Der Name des MergeFields, so wie es in der Vorlage benannt wurde.

fieldValue

Der Wert der in das MergeField eingesetzt wird. Bitte beachten Sie hierzu auch weiterführende Informationen bei der Beschreibung der einzelnen Feldtypen.

isHtml

Sofern Sie den Inhalt eines Feldes vom Typ Text mit HTML-Tags formatieren möchten setzen die den Wert auf true. Diese Eigenschaft ist nicht erforderlich wenn kein HTML verwendet wird.

       replaceLineBreaks

Nur relevant wenn isHtml = true ist.

Klassische Zeilenumbrüche werden in HTML ignoriert. Stattdessen werden in HTML andere Vorgehensweisen gewählt um Zeilenumbrüche zu erzwingen. Eine davon ist den br-Tag zu verwenden. Setzen Sie diesen Wert auf true um sämtliche klassischen Zeilenumbrüche (\r\n) durch <br> zu ersetzen.

Wir empfehlen Ihnen die Formatierung selbst vorzunehmen und sämtliche erforderlichen Tags direkt mit fieldValue zu übergeben.

fieldType

Die Art des verwendeten MergeFields. Der DocCreator kann MergeFields auf vielfältige Art und Weise verarbeiten.

fieldOptions

Zusätzliche Einstellungen die nur in Sonderfällen erforderlich sind.

Hierbei unterscheidet der DocCreator zur Zeit zwischen unterschiedlichen Arten von Feld-Typen

Text

Einfacher Text. Die Angabe des Typs in bei diesen Feldern optional.

Image

Ein Bild auf dem Image-Ordner

Barcode

Ein Barcode der dynamisch erstellt wird

FieldRange

Eine Tabelle mit Daten füllen

Feld-Typ: Text

Textfelder ist der einfachste denkbare Typ. Hier wird das MergeField einfach durch den Wert ersetzt.

Feld-Typ: Image

In diesem Fall wird anhand der Angabe bei fieldValue das zugehörige Bild im Image-Ordner herausgesucht und in die Vorlage eingefügt. Lautet der Wert z.B. logo.png, dann wird im Image-Ordner nach der Datei logo.png gesucht. Sollten Sie die Bilder in Unterordnern organisiert haben, dann fügen Sie den Pfad relativ zum Image-Ordner in die Eigenschaft fieldValue ein. Beispiel: signatures/steve.png

Feld-Typ: Barcode

Dieser Feld-Typ ermöglicht die dynamische Erstellung von Barcodes. Da es sich hierbei um einen sehr komplexen Vorgang handelt sind zu den bereit genannten Eigenschaften zusätzlich fieldOptions erforderlich. Das Beispiel oben veranschaulicht dies. Um diesen Artikel nicht zu überfrachten haben wir dieses Thema im Artikel Barcodes mit dem DocCreator einbetten beschrieben.

Feld-Typ: FieldRange

Mit diesem Feldtyp haben Sie die Möglichkeit eine Tabelle mit Daten zu befüllen. Für diesen Feldtyp sind zusätzliche fieldOptions, sowie eine bestimmte Datenstruktur in fieldValue erforderlich. Die notwendigen Informationen haben wir im Artikel Tabellen mit DocCreator füllen zusammengefasst.

Wie waren wir?

Tabellen mit DocCreator füllen

Barcodes mit dem DocCreator einbetten

Support