Guida · API REST
Convertire Markdown in DOCX con una chiamata API
Il Suo sistema scrive Markdown: note di rilascio, rapporti, testo da un modello. Lo invii all'API e riceva un documento Word in cui titoli, elenchi, tabelle ed enfasi sono vera formattazione Word. Aggiunga il Suo template di carta intestata: il testo prende il posto del segnaposto body e gli altri campi unione vengono compilati da JSON.
Perché non convertire il Markdown da soli
- Un convertitore nel Suo processo produce un documento nudo; intestazione, font e stili che la Sua azienda si aspetta non stanno nel testo.
- I convertitori a riga di comando sono un binario in più da installare e tenere aggiornato su ogni server che scrive documenti.
- Un testo generato, da un modello o da un flusso di lavoro, deve diventare un documento che le persone possono ancora modificare e approvare.
La richiesta
Trasporto multipart: il Markdown è la parte markdown, il formato un semplice valore di form; format=DOCX restituisce il file Word, PDF le pagine renderizzate. Una parte file opzionale porta un template Word il cui segnaposto MERGEFIELD body riceve il testo, e una parte fields compila gli altri campi unione del template. Senza template si applicano solo le carte intestate della busta fields.
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. Plain Markdown: the text is the document.
curl -sS https://api.xgenerate.io/v2/documents/generate-from-markdown \
-H "Authorization: Bearer $TOKEN" \
-F "markdown=@release-notes.md;type=text/markdown" \
-F "format=DOCX" \
-o release-notes.docx
# 2. Onto a letterhead: the template's MERGEFIELD body receives the text,
# its other merge fields are filled from the fields part.
cat > fields.json <<'JSON'
{ "fields": [ { "name": "document.date", "value": "25.10.2026" } ] }
JSON
curl -sS https://api.xgenerate.io/v2/documents/generate-from-markdown \
-H "Authorization: Bearer $TOKEN" \
-F "markdown=@release-notes.md;type=text/markdown" \
-F "file=@letterhead.docx" \
-F "fields=@fields.json;type=application/json" \
-F "format=DOCX" \
-o release-notes.docxDa .NET
using System.Net.Http.Json;
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new("Bearer", token);
// JSON transport: the Markdown travels as text, the optional letterhead template base64-encoded.
var request = new
{
filename = "release-notes.md",
markdown = await File.ReadAllTextAsync("release-notes.md"),
template = Convert.ToBase64String(await File.ReadAllBytesAsync("letterhead.docx")),
fields = new
{
fields = new[] { new { name = "document.date", value = "25.10.2026" } }
},
format = "DOCX"
};
var response = await http.PostAsJsonAsync(
"https://api.xgenerate.io/v2/documents/generate-from-markdown", request);
response.EnsureSuccessStatusCode();
// result.Filename is "release-notes.docx": the extension follows the requested format.
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 risposta
La chiamata multipart restituisce il DOCX con Content-Type application/vnd.openxmlformats-officedocument.wordprocessingml.document. Il trasporto JSON restituisce filename, content, format e warnings, con il file codificato in base64 in content. Con un template, gli avvisi indicano i segnaposto per immagini, QR e carta intestata rimasti senza valore; i campi unione e le regioni senza dati vengono rimossi senza avviso. La richiesta riesce in ogni caso.
Cosa XGenerate non fa
Il Markdown copre le basi GFM: titoli, elenchi, enfasi, link, codice, citazioni e tabelle pipe. La sintassi delle immagini è ridotta al testo alternativo e nulla viene caricato dalla rete. Il testo viene renderizzato dal motore Word; layout CSS complessi e JavaScript non vengono interpretati. Per un layout che deve corrispondere a un documento esistente, il template Word è la via.
Lo provi sul Suo template
Ci invii un file Word che usa oggi. Lo renderizziamo con i Suoi dati e Le restituiamo il PDF insieme al template adattato, così la Sua valutazione non deve aspettare noi.
Richiedi una demo