Guide · API REST
Générer des PDF à partir de modèles Word, de HTML ou de Markdown
Trois entrées, un seul moteur. Remplissez un modèle Word avec du JSON pour les documents qui doivent ressembler exactement à l'original ; envoyez un document HTML quand la mise en page vit dans votre application ; envoyez du Markdown, au besoin sur un papier à en-tête, pour le texte que votre système écrit. Chaque appel renvoie le PDF fini.
Pourquoi une API de génération plutôt qu'une bibliothèque PDF
- Une bibliothèque PDF fait de la mise en page une tâche de programmation ; un modèle Word la laisse aux responsables du document.
- Les navigateurs headless pour HTML vers PDF sont lourds à exploiter et changent d'une version à l'autre.
- Un texte généré, par un modèle ou un flux de travail, a besoin d'un document autour : en-tête, polices, sauts de page.
La requête
Le premier appel remplit un modèle Word à partir de JSON ; le second rend un document HTML brut, partie html ; l'exemple .NET envoie du Markdown via le transport JSON. Les trois acceptent format PDF ou DOCX et un filigrane optionnel.
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.pdfDepuis .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);La réponse
Octets PDF bruts sur le transport multipart, un objet JSON avec filename, content, format et warnings sur le transport JSON. Le nom de fichier de Content-Disposition prend l'extension du format résolu.
Le résultat

Ce que XGenerate ne fait pas
Les contenus HTML et Markdown sont rendus par le moteur Word ; les mises en page CSS complexes et le JavaScript ne sont pas interprétés. Pour la fidélité, le modèle Word est la voie.
Essayez-le sur votre propre modèle
Envoyez-nous un fichier Word que vous utilisez aujourd'hui. Nous le rendons avec vos données et vous renvoyons le PDF avec le modèle adapté, pour que votre évaluation ne dépende pas de nous.
Demander une démo