Générer des PDFs à partir de HTML avec SecretPDF

NicolasBrondinBernard

Auteur
@NicolasBrondinBernard

Apprenez à générer des PDF depuis du HTML avec un seul call d'API !

Article publié le 17/02/2026, dernière mise à jour le 17/02/2026

Générer un PDF en 2026, c’est censé ne plus être un problème technique. Mais le faire simplement, proprement, de manière maintenable, scalable et prête pour la production… ça, c’est une autre histoire.

Dans cet article, nous allons voir comment générer des PDFs à partir d’un template HTML de la manière la plus simple possible avec SecretPDF.

Pourquoi générer des PDFs est souvent complexe ?

Le format PDF est à la fois simple et complexe. Il est simple d’utilisation, car portable (il inclut toutes les ressources nécessaire pour le rendu), mais il est complexe à produire.

Un PDF peut contenir du texte, des polices d’écriture, des images, du vectoriel, etc…

Il est possible de générer un fichier PDF directement depuis le navigateur, mais dès que l’on a besoin d’un rendu légèrement complexe (autrement dit “joli”), c’est un casse-tête, surtout sur mobile.

Si votre objectif est de :

  • Générer un vrai document
  • Avec un design intéressant
  • Du contenu texte sélectionnable (pas seulement une image)
  • Sans hack CSS obscur

Alors vous devez générer des PDF côté serveur, ce qui implique de trouver la solution qui convient à vos contrainte, monter une architecture, la dimensionner, faire en sorte que cela n’impacte pas les performances de vos autres applications.

C’est là qu’arrive SecretPDF !

SecretPDF, c’est quoi ?

SecretPDF est un SaaS facile d’utilisation, avec une API moderne pour générer des documents PDF à partir de HTML.

Vous lui envoyez :

  • du HTML/CSS (même des classes Tailwind pour le design si vous voulez)
  • des données dynamiques
  • un format de page

Il vous renvoie :

  • un PDF prêt à télécharger

Et en plus l’outil est RGPD-compliant et neutre en carbone. Que demander de plus ?

Le tarif

SecretPDF fonctionne avec un système de crédits (1 pdf = 1 crédit pour les PDF <2Mo)

Vous avez :

  • 10 crédits gratuits tous les mois
  • Puis 0.01$ par crédit

C’est idéal pour les startups et les SaaS : Pas de document généré, pas de paiement.

D’ailleurs vous n’êtes même pas obligé de rentrer votre carte bancaire pour commencer.

À noter également que vous pouvez générer autant de documents de test que vous désirez, grâce à une option “sandbox” qui vous permet de tester vos templates gratuitement !

Etape 1 : Créer un compte

Pour créer un compte, il suffit de connecter son compte Github, en un seul clic !

Ensuite, vous serez guidé vers la création de votre premier template et de votre première clé d’API. L’un des gros avantages de SecretPDF est qu’il vous permet de créer vos templates directement de puis l’interface (avec une preview) ou bien depuis l’API :

Étape 2 : Installer le client

Vous pouvez utiliser l’API avec n’importe quel langage ou framework en suivant la documentation officielle, mais vous pouvez également utiliser le client NodeJS dédié pour vous faciliter la vie.

Dans votre projet Node.js exécutez la commande suivante :

npm install @secretpdf/sdk

Puis dans votre code, initialisez-le :

import SecretPDF from "@secretpdf/sdk";

const client = new SecretPDF({
  apiKey: "<secret>",
});

Il est évidemment conseillé de définir votre clé API dans vos variables d’environnement

Etape 3 (optionnelle) : Créer un template depuis l’API

Si vous préférez créer votre premier template directement depuis l’API, c’est possible, comme ceci :

const response = await client.createTemplate({
  name: "Facture",
  size: "A4",
  content: `
    <main class="p-10">
      <h1 class="text-3xl font-bold text-blue-600">
        Facture
      </h1>
      <p>Prestataire : {{name}} (SIRET {{siret}})</p>
      <p>Montant: {{amount}}€</p>
      <p class="mt-4 text-gray-700">
        Merci pour votre confiance.
      </p>
    </main>
  `,
});

const templateId = response.data.id;

Je vous conseille quand même d’utiliser l’interface, cela vous facilitera la vie.

Étape 4 : Générer votre premier PDF

Voici l’exemple le plus simple possible pour générer un PDF à partir de votre template :

const response = await client.generate({
  sandbox: true,
  templateId: "<template_id>",
  data: {
    name: "Nicolas Brondin-Bernard",
    siret: "784 671 695 00103",
    amount: 139.99,
    date: new Date()
  }
});

sandbox permet de générer un document de test avec un watermark par dessus, ce qui ne consommera aucun crédit.

La réponse contient une simple propriété data avec le contenu du fichier généré (encodé en Base64), c’est aussi simple que ça !

Étape 5 (optionnelle) : Sauvegarder le fichier sur disque

Rien en vous oblige à stocker le fichier généré, vous pouvez par exemple l’envoyer en réponse HTTP à votre utilisateur, mais si vous souhaitez le faire, rien de plus simple :

import fs from "fs";

const response = await client.generate({
  //...
});

const pdfBuffer = Buffer.from(result.content, 'base64');
fs.writeFileSync('output.pdf', pdfBuffer);

Et voilà, le tour est joué !


Vous avez terminé l'article ?
Notre newsletter

Pas de spam. Uniquement du contenu gratuit, des news et toujours plus de ressources pour monter en compétences !

Rejoignez +1500 développeurs

Commentaires (0)

pour laisser un commentaire

Aucun commentaire pour l'instant

Questions fréquentes abordées dans l'article

Génération HTML vers PDF Générer un PDF en NodeJS