Générez des PDF à partir de HTML et Markdown avec une API REST
Deux requêtes POST transforment le HTML ou le Markdown en PDF téléchargeables. Pas de Puppeteer, pas de Chromium, pas de dépendance de 500 Mo. Factures, rapports et reçus en moins d'une seconde.
Votre application génère des factures. Vous avez le modèle HTML. Maintenant, vous devez le transformer en
PDF téléchargeable. L'approche standard : installer Puppeteer, lancer une instance Chromium sans tête,
appeler page.pdf(). Cela représente 300 à 500 Mo de dépendances pour une fonction d'impression.
C'est encore pire en production. Chrome perd de la mémoire sous charge. Les images Docker dépassent 1 Go. Les démarrages à froid prennent 3 à 8 secondes. Vous finissez par maintenir un pool de processus de navigateur pour quelque chose cela devrait être un seul appel de fonction.
Il y a un chemin plus court. Envoyez votre HTML à une API, récupérez un PDF.
HTML en PDF en une seule requête POST
La /v1/pdf/from-html le point de terminaison accepte une chaîne HTML et renvoie un PDF.
Pas de binaire de navigateur, pas de dépendances, pas de configuration.
curl -X POST https://api.botoi.com/v1/pdf/from-html \\
-H "Content-Type: application/json" \\
-d '{
"html": "<h1>Invoice #1042</h1><p>Amount due: $2,450.00</p>"
}'
Réponse:
{
"success": true,
"data": {
"url": "https://api.botoi.com/pdfs/f7a2c1e8.pdf",
"size_bytes": 24576,
"pages": 1
}
}
La url Le champ pointe vers le PDF généré. Téléchargez-le, redirigez-y votre utilisateur,
ou stockez-le dans votre propre compartiment S3. L'API gère le rendu, la pagination et l'intégration des polices.
Markdown au format PDF en une seule requête POST
Tous les documents ne commencent pas en HTML. Les rapports, les journaux de modifications et la documentation sont souvent disponibles sous forme de Markdown.
Le /v1/pdf/from-markdown le point final convertit directement Markdown en PDF stylisé.
Réponse:
Les tableaux, les titres, le texte en gras, les blocs de code et les listes s'affichent tous correctement. L'API s'applique proprement valeurs typographiques par défaut pour que la sortie soit présentable sans CSS personnalisé.
Exemple pratique : génération de facture
Une facture réaliste nécessite un en-tête de société, une adresse de facturation, un tableau des éléments de campagne, un calcul de taxe, et les modalités de paiement. Voici une facture complète envoyée sous la forme d'un seul appel API :
Cette simple demande produit une facture PDF professionnelle avec le papier à en-tête de Cascade Software,
quatre articles totalisant 2 257,00 $, une taxe de vente de 8,5 % de 191,85 $ et un total général de 2 448,85 $.
Le CSS dans le <style> La balise contrôle les polices, l'espacement, les bordures des tableaux et les
ligne totale en gras. Vous pouvez utiliser n'importe quel CSS pris en charge par le navigateur, notamment flexbox, grid et
@page règles pour les marges et la taille des pages.
Exemple pratique : rapport trimestriel de Markdown
Les rapports conviennent naturellement à Markdown. Les chefs de produit, les analystes et les équipes opérationnelles écrivent déjà en démarque. La conversion au format PDF pour la distribution par courrier électronique ou l'archivage est un appel API :
L'API restitue les tableaux, les titres, le texte en gras et la liste numérotée dans un PDF propre. Non étape HTML intermédiaire de votre côté. Transmettez la chaîne Markdown depuis votre base de données, un Git référentiel ou une exportation Notion.
Exemple pratique : génération de reçus dans Express
Voici un itinéraire Express qui génère un reçu PDF à la demande lorsqu'un utilisateur en demande un pour une commande passée :
La buildReceiptHtml la fonction prend les données de commande de votre base de données et produit
une chaîne HTML stylisée. La route l'envoie à l'API botoi et renvoie l'URL du PDF au
cliente. Pas de marionnettiste. Aucune opération sur le système de fichiers. Pas de répertoires temporaires.
Même schéma chez Hono
Si vous utilisez Cloudflare Workers ou Bun, la version Hono est presque identique :
La principale différence : Hono accède aux variables d'environnement via c.env au lieu de
process.env. Tout le reste reste pareil. Un appel de récupération, une réponse JSON,
une URL PDF.
Comparaison : API, Puppeteer, wkhtmltopdf et Prince
Quatre approches courantes de conversion HTML vers PDF, comparées sur ce qui compte en production :
Marionnettiste vous donne un contrôle total sur le navigateur mais entraîne des coûts opérationnels élevés. Vous exécutez Chromium sur votre serveur, gérez les limites de mémoire et appliquez des correctifs de sécurité vulnérabilités dans le binaire du navigateur. Fonctionne bien si vous avez besoin d'une exécution JavaScript, d'un cookie injection, ou rendu de page authentifié.
wkhtmltopdf est plus léger que Puppeteer mais utilise le QtWebKit obsolète moteur. La prise en charge CSS est bloquée aux niveaux de 2015. Flexbox et grille ne fonctionnent pas. Le projet est archivé sur GitHub sans mainteneur actif.
Prince XML produit une sortie d'impression de la plus haute qualité avec des supports entièrement paginés CSS soutien. Le compromis : des frais de licence de 3 800 $ par serveur. C'est logique pour la publication workflows, pas pour générer des factures dans une application SaaS.
L'approche API gagne lorsque vous avez besoin de PDF à partir de modèles que vous contrôlez (factures, reçus, rapports, contrats) et n'ont pas besoin de restituer des pages authentifiées arbitrairement. Zéro configuration, zéro maintenance, latence prévisible.
Points clés
-
Deux points de terminaison, deux formats d'entrée.
/v1/pdf/from-htmlpour HTML complet avec CSS./v1/pdf/from-markdownpour le contenu Markdown. - Aucune dépendance côté serveur. Pas de marionnettiste, pas de chrome, pas de wkhtmltopdf binaire. Un appel HTTP depuis n’importe quelle langue.
-
Prise en charge complète de CSS. Styles en ligne, balises de style, flexbox, grille, Google Fonts,
et
@pageles requêtes multimédias fonctionnent toutes. - Niveau gratuit disponible. 5 requêtes par minute sans clé API. Forfaits payants commencez à 9 $/mois pour les charges de travail de production.
- Cas d'utilisation courants. Factures, reçus, rapports, contrats, documentation les exportations et les pièces jointes des e-mails.
Vérifiez le API documents pour la référence complète des paramètres, y compris la taille de la page, les marges et l'en-tête/pied de page configuration.
FAQ
- Comment générer un PDF à partir de HTML par programmation ?
- Envoyez une requête POST à https://api.botoi.com/v1/pdf/from-html avec un corps JSON contenant votre chaîne HTML. L'API renvoie un PDF encodé en base64 ou une URL de téléchargement. Aucun binaire de navigateur, instance sans tête ou dépendance côté serveur requis.
- Puis-je convertir Markdown en PDF avec cette API ?
- Oui. Envoyez une requête POST à https://api.botoi.com/v1/pdf/from-markdown avec votre chaîne Markdown. L'API restitue le Markdown en HTML stylisé en interne et renvoie un PDF. Prend en charge les titres, les tableaux, les blocs de code et les listes.
- L'API prend-elle en charge le style CSS dans l'entrée HTML ?
- Oui. Vous pouvez inclure des styles en ligne, des balises de style et du CSS complet dans votre HTML. Le moteur de rendu prend en charge flexbox, grille, polices personnalisées via les liens Google Fonts et les requêtes multimédias spécifiques à l'impression telles que @page pour les marges et la taille de la page.
- L’API de génération PDF est-elle gratuite ?
- L'accès anonyme autorise 5 requêtes par minute avec une limitation de débit basée sur IP. Aucune clé API ni inscription requise. Les forfaits payants commencent à 9 $/mois et suppriment la limite de débit pour les charges de travail de production telles que la génération de factures ou les rapports par lots.
- Comment l'API se compare-t-elle à Puppeteer pour la génération de PDF ?
- Puppeteer nécessite l'installation de Chromium (300-500 Mo), la gestion des instances du navigateur, la gestion des fuites de mémoire et le maintien de la compatibilité des versions. L'API botoi est un appel HTTP unique sans infrastructure. L'installation prend quelques secondes au lieu de plusieurs heures. Pour la plupart des cas d'utilisation de PDF (factures, rapports, reçus), l'API couvre ce dont vous avez besoin sans frais opérationnels.
Commencez a construire avec botoi
150+ endpoints API pour la recherche, le traitement de texte, la generation d'images et les utilitaires pour developpeurs. Offre gratuite, sans carte bancaire.