Leitfaden · REST-API

PDFs aus Word-Vorlagen, HTML oder Markdown generieren

Drei Wege hinein, eine Engine heraus. Befüllen Sie eine Word-Vorlage mit JSON für Dokumente, die exakt wie das Original aussehen müssen; senden Sie ein HTML-Dokument, wenn das Layout in Ihrer Anwendung lebt; senden Sie Markdown, auf Wunsch auf einen Briefkopf, für Text, den Ihr System schreibt. Jeder Aufruf liefert das fertige PDF.

Warum eine Generierungs-API statt einer PDF-Bibliothek

  • Eine PDF-Bibliothek macht das Layout zur Programmieraufgabe; eine Word-Vorlage lässt es bei denen, die das Dokument verantworten.
  • Headless-Browser für HTML-zu-PDF sind schwer zu betreiben und verändern sich zwischen Versionen.
  • Generierter Text, aus einem Modell oder einem Workflow, braucht ein Dokument drumherum: Briefkopf, Schriften, Seitenumbrüche.

Die Anfrage

Der erste Aufruf befüllt eine Word-Vorlage aus JSON; der zweite rendert ein rohes HTML-Dokument, Part html; das .NET-Beispiel sendet Markdown über den JSON-Transport. Alle drei akzeptieren format PDF oder DOCX und ein optionales Wasserzeichen.

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)

# 1. Word template + JSON → PDF
curl -sS https://api.xgenerate.io/v2/documents/generate \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@report.docx" \
  -F "fields=@fields.json;type=application/json" \
  -F "format=PDF" \
  -o report.pdf

# 2. HTML body → PDF
curl -sS https://api.xgenerate.io/v2/documents/generate-from-html \
  -H "Authorization: Bearer $TOKEN" \
  -F "html=@page.html;type=text/html" \
  -F "format=PDF" \
  -o page.pdf

Aus .NET

using System.Net.Http.Json;

using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new("Bearer", token);

// 3. Markdown over the JSON transport: the text is the document.
var request = new
{
    filename = "summary.md",
    markdown = "# Quarterly summary\n\nRevenue grew by **12 %** against the previous quarter.\n",
    format = "PDF"
};
var response = await http.PostAsJsonAsync(
    "https://api.xgenerate.io/v2/documents/generate-from-markdown", request);
response.EnsureSuccessStatusCode();

var result = await response.Content.ReadFromJsonAsync<GenerateResult>();
await File.WriteAllBytesAsync(result!.Filename, Convert.FromBase64String(result.Content));

record GenerateResult(string Filename, string Content, string Format);

Die Antwort

Rohe PDF-Bytes beim Multipart-Transport, ein JSON-Objekt mit filename, content, format und warnings beim JSON-Transport. Der Dateiname in Content-Disposition trägt die Endung des aufgelösten Formats.

Das Ergebnis

Erste Seite der gerenderten Referenzrechnung: Briefkopf, Adressblock, Positionstabelle und Summen
Die Referenzrechnung, gerendert aus einer Word-Vorlage mit Standard-Seriendruckfeldern. Vorlage, Anfrage und erwartetes PDF: bereitgestelltes Beispiel

Was XGenerate nicht tut

HTML- und Markdown-Inhalte werden durch die Word-Engine gerendert; komplexe CSS-Layouts und JavaScript werden nicht interpretiert. Für Layouttreue ist die Word-Vorlage der Weg.

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

Verwandte Leitfäden