Convertisseur HTML en PDF - API pour Développeurs

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 maintenant

Questions 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.

Ressources complémentaires

Partagez cette documentation

Twitter LinkedIn GitHub