Guida · API REST

Convertire un DOCX in PDF con una chiamata API

Invii un file Word, riceva un PDF. XGenerate renderizza il documento come lo impagina Word: font, tabelle, intestazioni, interruzioni di pagina. La stessa chiamata compila i campi unione da JSON quando ha dati da aggiungere.

Quando un convertitore non basta

  • Gli strumenti da HTML a PDF ricompongono il layout Word; un contratto o una fattura deve apparire come l'originale.
  • Far girare Word su un server per stampare PDF è fragile, lento e non licenziato per l'automazione.
  • Un'API di sola conversione Le lascia il passaggio dei dati; di solito il documento ha bisogno prima di valori.

La richiesta

Trasporto multipart: il file Word è la parte file, il formato un semplice valore di form. Senza la parte fields il documento viene renderizzato così com'è, con i segnaposto di unione rimossi.

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)

# No fields part: the Word file is rendered as it is, placeholders removed.
curl -sS https://api.xgenerate.io/v2/documents/generate \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@contract.docx" \
  -F "format=PDF" \
  -o contract.pdf

Da .NET

using System.Net.Http.Json;

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

// JSON transport: the template travels base64-encoded, the PDF comes back the same way.
var request = new
{
    filename = "contract.docx",
    content = Convert.ToBase64String(await File.ReadAllBytesAsync("contract.docx")),
    format = "PDF"
};
var response = await http.PostAsJsonAsync(
    "https://api.xgenerate.io/v2/documents/generate", 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 risposta

La chiamata multipart restituisce il PDF come byte grezzi, con Content-Type application/pdf ed estensione riscritta in .pdf. Il trasporto JSON restituisce filename, content, format e warnings, con il PDF codificato in base64 in content.

Il risultato

Prima pagina della fattura di riferimento renderizzata: intestazione, blocco indirizzo, tabella delle righe e totali
La fattura di riferimento, renderizzata da un template Word con campi unione standard. Template, richiesta e PDF atteso: esempio pubblicato

Cosa XGenerate non fa

XGenerate renderizza i file Word come li impagina Word. Non esegue OCR su pagine scansionate e non riconverte un PDF in Word. Può aggiungere testo e immagini a un PDF esistente, ma non è un editor PDF generico.

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

Guide correlate