Leitfaden · REST-API
Ein Word-Dokument aus JSON generieren
Bleiben Sie bearbeitbar. Derselbe Aufruf, der ein PDF rendert, liefert auf Wunsch ein DOCX: Ihre Word-Vorlage, Ihr JSON, eine Anfrage, eine Word-Datei, die Ihre Anwender weiter ändern können.
Wenn der Kunde Word will, nicht PDF
- Verträge, Offerten und Briefe werden verhandelt: ein PDF beendet das Gespräch, ein DOCX hält es offen.
- DOCX-Dateien im Code zu bauen heisst XML-Teile und OpenXML-Bibliotheken; wer die Vorlage pflegt, kommt an das Ergebnis nicht heran.
- Eine reine PDF-API zwingt zu einem zweiten Werkzeug für die bearbeitbare Kopie, mit zwei Layouts, die synchron bleiben müssen.
Die Anfrage
Derselbe Transport wie beim PDF-Aufruf, format=DOCX. Skalare Felder als Name/Wert-Paare, wiederholte Bereiche unter lists. Die Dateiendung wird zu .docx umgeschrieben.
TOKEN=$(curl -sS https://auth.xgenerate.io/realms/xgenerate/protocol/openid-connect/token \
-d grant_type=client_credentials \
-d client_id="$XGENERATE_CLIENT_ID" \
-d client_secret="$XGENERATE_CLIENT_SECRET" | jq -r .access_token)
cat > fields.json <<'JSON'
{
"fields": [
{ "name": "customer.name", "value": "Lumière Logistique SARL" },
{ "name": "offer.number", "value": "OF-2026-118" },
{ "name": "offer.validUntil", "value": "30.11.2026" }
]
}
JSON
# Same call as for a PDF; only the format differs.
curl -sS https://api.xgenerate.io/v2/documents/generate \
-H "Authorization: Bearer $TOKEN" \
-F "file=@offer-template.docx" \
-F "fields=@fields.json;type=application/json" \
-F "format=DOCX" \
-o offer.docxAus .NET
using System.Net.Http.Json;
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new("Bearer", token);
var request = new
{
filename = "offer-template.docx",
content = Convert.ToBase64String(await File.ReadAllBytesAsync("offer-template.docx")),
format = "DOCX",
fields = new
{
fields = new[]
{
new { name = "customer.name", value = "Lumière Logistique SARL" },
new { name = "offer.number", value = "OF-2026-118" }
}
}
};
var response = await http.PostAsJsonAsync(
"https://api.xgenerate.io/v2/documents/generate", request);
response.EnsureSuccessStatusCode();
// result.Filename is "offer-template.docx": the extension follows the resolved format.
var result = await response.Content.ReadFromJsonAsync<GenerateResult>();
await File.WriteAllBytesAsync("offer.docx", Convert.FromBase64String(result!.Content));
record GenerateResult(string Filename, string Content, string Format);Die Antwort
Der Multipart-Aufruf streamt das DOCX mit Content-Type application/vnd.openxmlformats-officedocument.wordprocessingml.document zurück. Der JSON-Transport liefert filename, content, format und warnings, die Datei base64-codiert in content.
Das Ergebnis

Was XGenerate nicht tut
Das DOCX behält die Formatvorlagen der Vorlage und die befüllten Felder als Text; der Schweizer QR-Zahlteil ist nur im PDF möglich und wird bei DOCX-Ausgabe als Warnung gemeldet.
Testen Sie es mit Ihrer eigenen Vorlage
Schicken Sie uns eine Word-Datei, die Sie heute verwenden. Wir rendern sie mit Ihren Daten und senden das PDF zusammen mit der angepassten Vorlage zurück — Ihre Evaluation muss nicht auf uns warten.
Demo anfragen