Da HTML a PDF
Questo strumento del KIT trasforma una pagina HTML — con il suo CSS, i font e le immagini — in un PDF fedele all’originale. È pensato per chi genera ricevute, contratti o report da un template web e vuole un documento stampabile, identico su ogni dispositivo e pronto da conservare.
Esegui online
Esegui questo sui nostri server con il tuo account. Gli strumenti gratuiti girano nel tuo browser; questo viene addebitato sul tuo saldo KIT al prezzo indicato sopra.
Dal codice al documento, passo per passo
Incolli l’HTML nella pagina oppure carichi il file: il KIT lo apre con un motore di rendering — lo stesso lavoro che fa un browser — e ne fissa il risultato in un PDF in formato A4. Il testo resta selezionabile e i link cliccabili, quindi non ottieni una semplice immagine ma un documento vero, ricercabile. Il giro dura pochi secondi e alla fine scarichi il file, senza installare nulla sul computer né toccare la riga di comando.
CSS, font e immagini: cosa viene rispettato
Il rendering rispetta il CSS che accompagna la pagina: margini, colori, tabelle, intestazioni e la maggior parte dei font web. Le immagini richiamate via URL vengono scaricate e incorporate nel PDF. Se usi regole di stampa (@media print) vengono applicate, così puoi nascondere menu o pulsanti che su carta non hanno senso. I caratteri accentati italiani — è, é, à, ù — restano corretti, un dettaglio che molti convertitori sbagliano lasciando simboli illeggibili.
Non solo da questa pagina
La superficie principale è il web: questa stessa pagina esegue la conversione. Ma lo stesso strumento è disponibile anche via API, per generare PDF dai tuoi sistemi in automatico — per esempio ogni volta che un gestionale emette una ricevuta — e presto da app per iOS e Android, email e Telegram. Scegli il canale che ti serve: il risultato è identico, così i documenti restano coerenti tra loro.
Limiti e formato del file
Ogni conversione accetta file o codice fino a 25 MB e produce documenti fino a 200 pagine, più che sufficienti per ricevute, contratti e report. L’uscita predefinita è A4, lo standard italiano; l’orientamento segue il tuo CSS. Se il template supera questi limiti, conviene dividerlo in più documenti. Per lavori ricorrenti puoi tenere il template pronto e riusarlo, cambiando solo i dati di volta in volta.
Casi d'uso
Ricevute e fatture da template
Lo Studio Commercialista Bianchi di Bologna genera le ricevute dei clienti da una pagina HTML con logo e dati. Il KIT la trasforma in un PDF A4 pronto da allegare via email o conservare, con importi come 1.234,56 € e IVA al 22% ben allineati in tabella.
Report e listini per il web e la carta
Rossi & Figli S.r.l. pubblica il listino online in HTML. Con lo stesso codice ottiene un PDF identico da mandare ai clienti che lo chiedono per email, senza rifare l’impaginazione a mano.
Contratti e moduli standard
Un template di contratto di collaborazione, con clausole fisse e campi da compilare, diventa un PDF uniforme per ogni firma. Le regole di stampa nascondono i pulsanti del modulo e lasciano solo il testo che conta.
Domande frequenti
Il mio CSS viene rispettato o perdo l’impaginazione?
Viene rispettato: margini, tabelle, colori, font web e regole @media print. Il PDF esce praticamente identico a come vedi la pagina nel browser. Solo font molto particolari caricati da server esterni irraggiungibili possono ricadere su un’alternativa, ma è raro.
Posso unire più pagine HTML in un solo PDF?
Ogni conversione parte da un HTML. Se ti servono più sezioni in un unico file, uniscile prima nel codice; in alternativa generi i singoli PDF e poi li accorpi con lo strumento di unione del KIT.
Quanto costa convertire?
$0.040 a conversione più $0.001 per ogni pagina generata: un documento di dieci pagine costa quindi circa $0.05. Nessun abbonamento, paghi solo le conversioni che fai, a prezzo pubblicato.
Che fine fa il file che carico?
Viene elaborato sui nostri server per produrre il PDF e poi eliminato; non lo conserviamo né lo usiamo per altro. Questo strumento non gira nel browser: il codice viene processato e cancellato subito dopo la consegna.
C’è un limite di dimensione o di pagine?
Sì: fino a 25 MB in ingresso e 200 pagine in uscita per documento. Per template più grandi conviene dividere il lavoro in più conversioni.
Devo registrarmi per usarlo?
No. Niente account: usi lo strumento e, quando serve pagare, l’acquisto è diretto, senza registrazione. Se qualcosa non torna, ti risponde una persona vera, in inglese o spagnolo.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/pdf/from-html \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"html":"<h1>Factura 001</h1><p>Total: 100 EUR</p>"}'const res = await fetch("https://api.kit.forhosting.com/pdf/from-html", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"html": "<h1>Factura 001</h1><p>Total: 100 EUR</p>"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/from-html",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"html": "<h1>Factura 001</h1><p>Total: 100 EUR</p>"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/from-html", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"html":"<h1>Factura 001</h1><p>Total: 100 EUR</p>"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"html":"<h1>Factura 001</h1><p>Total: 100 EUR</p>"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/from-html", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"html": "<h1>Factura 001</h1><p>Total: 100 EUR</p>"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.from_html",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 25 |
max_pages | 200 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
413 | input_too_large | Il file o il testo inviato supera il limite di questo strumento. |
422 | task_failed | L'attività non è andata a buon fine: non ti viene addebitato nulla. |