API de Conversion HTML en PDF
Notre API de conversion HTML en PDF vous permet d'intégrer facilement notre puissant moteur de transformation dans vos applications. Que vous souhaitiez générer des factures, des rapports, ou tout autre document PDF à partir de code HTML, notre API REST vous offre une solution robuste et fiable.
Testez notre API dès maintenant
Obtenez une clé API gratuite pour 100 conversions par mois
Caractéristiques de l'API
- API RESTful : Facile à intégrer dans n'importe quelle application
- Haute disponibilité : SLA de 99,9% pour les clients professionnels
- Options avancées : Contrôle précis des en-têtes, pieds de page, marges, etc.
- Support multilingue : Compatible avec tous les caractères Unicode
- Traitement d'images : Gestion optimisée des images incorporées
- Versions du PDF : Génération en PDF/A pour l'archivage à long terme
- Protection : Options de chiffrement et de protection par mot de passe
- Webhooks : Notifications en temps réel pour les conversions terminées
Authentification
Pour utiliser notre API, vous aurez besoin d'une clé API. Vous pouvez obtenir une clé en vous inscrivant sur notre portail développeur.
L'authentification se fait via un en-tête HTTP :
Authorization: Bearer VOTRE_CLÉ_API
Points de terminaison (Endpoints)
Conversion HTML en PDF
POST https://api.pdf.verdier-developpement.fr/v1/convert
Ce point de terminaison convertit du HTML en PDF.
// Exemple de corps de requête (JSON)
{
"html": "<!DOCTYPE html><html><body>Hello World!</body></html>",
"options": {
"format": "A4",
"margin": {
"top": "20mm",
"right": "20mm",
"bottom": "20mm",
"left": "20mm"
},
"headerTemplate": "<div style='font-size: 10px; text-align: center;'>En-tête</div>",
"footerTemplate": "<div style='font-size: 10px; text-align: center;'>Page <span class='pageNumber'></span> sur <span class='totalPages'></span></div>"
}
}
Conversion par URL
POST https://api.pdf.verdier-developpement.fr/v1/convert/url
Ce point de terminaison convertit une page web en PDF en utilisant son URL.
// Exemple de corps de requête (JSON)
{
"url": "https://exemple.com/page-a-convertir.html",
"options": {
"waitForSelector": "#contenu-principal",
"format": "A4",
"landscape": false
}
}
État d'une conversion
GET https://api.pdf.verdier-developpement.fr/v1/status/{job_id}
Vérifie l'état d'une conversion asynchrone.
// Exemple de réponse (JSON)
{
"status": "completed",
"progress": 100,
"result": {
"url": "https://api.pdf.verdier-developpement.fr/v1/download/abc123def456"
}
}
Exemples de code
PHP
// Exemple avec PHP (cURL)
$apiKey = "votre_clé_api";
$html = "<!DOCTYPE html><html><body><h1>Exemple de PDF généré via l'API</h1></body></html>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.pdf.verdier-developpement.fr/v1/convert");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
"html" => $html,
"options" => [
"format" => "A4"
]
]));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer " . $apiKey,
"Content-Type: application/json"
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
$result = json_decode($response, true);
$pdfUrl = $result['url'];
echo "PDF généré avec succès ! URL: " . $pdfUrl;
} else {
echo "Erreur: " . $response;
}
JavaScript (Node.js)
// Exemple avec Node.js
const axios = require('axios');
const convertToPdf = async () => {
const apiKey = 'votre_clé_api';
const html = '<!DOCTYPE html><html><body><h1>Exemple de PDF généré via l\'API</h1></body></html>';
try {
const response = await axios.post('https://api.pdf.verdier-developpement.fr/v1/convert', {
html: html,
options: {
format: 'A4'
}
}, {
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
}
});
console.log('PDF généré avec succès !');
console.log('URL du PDF:', response.data.url);
return response.data.url;
} catch (error) {
console.error('Erreur lors de la conversion:', error.response ? error.response.data : error.message);
}
};
convertToPdf();
Python
import requests
import json
def convert_to_pdf():
api_key = "votre_clé_api"
html = "<!DOCTYPE html><html><body><h1>Exemple de PDF généré via l'API</h1></body></html>"
url = "https://api.pdf.verdier-developpement.fr/v1/convert"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
payload = {
"html": html,
"options": {
"format": "A4"
}
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
if response.status_code == 200:
result = response.json()
pdf_url = result.get("url")
print(f"PDF généré avec succès ! URL: {pdf_url}")
return pdf_url
else:
print(f"Erreur: {response.text}")
return None
convert_to_pdf()
Options de configuration
Notre API offre de nombreuses options pour personnaliser la génération de vos PDF :
Option | Type | Description | Exemple |
---|---|---|---|
format | string | Format du papier (A4, A3, Letter, etc.) | "A4" |
margin | object | Marges du document (top, right, bottom, left) | {"top": "20mm", "right": "20mm", "bottom": "20mm", "left": "20mm"} |
landscape | boolean | Orientation paysage | true |
headerTemplate | string | HTML pour l'en-tête de page | "<div>En-tête</div>" |
footerTemplate | string | HTML pour le pied de page | "<div>Page <span class='pageNumber'></span></div>" |
protection | object | Options de protection du PDF | {"password": "secret", "permissions": ["print", "copy"]} |
webhook | string | URL à notifier lorsque la conversion est terminée | "https://votresite.com/webhook" |
Limites et tarification
Plan Gratuit
Pour les petits projets
- 100 conversions/mois
- Taille max: 5 Mo
- Sans support prioritaire
- Format standard uniquement
0€/mois
Plan Standard
Pour les entreprises
- 5 000 conversions/mois
- Taille max: 20 Mo
- Support par email
- Options avancées
49€/mois
Plan Entreprise
Pour les grands volumes
- Volume illimité
- Taille max: 50 Mo
- Support prioritaire 24/7
- SLA garanti
Sur devis
Codes d'erreur
En cas d'erreur, l'API renvoie un code d'état HTTP approprié et un message d'erreur explicite :
Code HTTP | Message | Description |
---|---|---|
400 | Bad Request | Paramètres invalides ou manquants |
401 | Unauthorized | Authentification invalide ou clé API manquante |
403 | Forbidden | Quota dépassé ou restrictions du plan |
413 | Payload Too Large | Le contenu HTML est trop volumineux |
422 | Unprocessable Entity | Impossible de traiter le HTML fourni |
429 | Too Many Requests | Limite de taux dépassée |
500 | Internal Server Error | Erreur interne du serveur |
Prêt à intégrer notre API ?
Inscrivez-vous dès maintenant pour obtenir votre clé API gratuite et commencer à convertir vos documents HTML en PDF !
S'inscrire maintenantQuestions fréquentes sur l'API
L'API peut-elle convertir des pages web complexes ?
Oui, notre API est capable de gérer des pages web complexes, y compris le JavaScript et le CSS. Vous pouvez définir un délai d'attente pour permettre le chargement complet de la page.
Existe-t-il des limites sur la taille des fichiers HTML ?
Oui, les limites dépendent de votre forfait. Le plan gratuit limite les fichiers à 5 Mo, tandis que les plans payants permettent des tailles plus importantes.
Comment gérer les polices personnalisées ?
Vous pouvez inclure des polices personnalisées en utilisant le format base64 directement dans votre HTML, ou en fournissant un lien vers un fichier de police accessible publiquement.
Les PDFs générés sont-ils accessibles (conformes WCAG) ?
Notre API propose des options pour générer des PDFs conformes aux normes d'accessibilité WCAG 2.1. Vous devez activer cette option explicitement dans les paramètres de conversion.