Aucun upload, 100 % local, sans compte

HTML en PDF

Collez du HTML, choisissez une taille de page et téléchargez un PDF, tout est rendu dans votre navigateur.

Comment fonctionne HTML en PDF

HTML en PDF prend le balisage HTML que vous collez dans l'éditeur, l'assainit avec DOMPurify pour supprimer les scripts et attributs non sécurisés, l'affiche sur un canvas hors écran avec html2canvas, et encode le résultat dans un PDF avec jsPDF. L'ensemble du pipeline s'exécute dans votre onglet navigateur ; aucun code HTML ni sortie affichée n'est transmis à aucun serveur. Cela le rend adapté à la conversion de fragments HTML contenant des données personnelles que vous ne souhaiteriez pas coller dans un service en ligne.

Comprenez le format de sortie avant de vous y fier. Les pages PDF sont des images matricielles, pas du texte vectoriel. Le texte dans le résultat n'est pas sélectionnable, pas consultable, et ne peut pas être reformaté. Les ressources externes comme les images référencées par URL sont bloquées par la politique CORS du navigateur et ne se chargeront pas. Les styles intégrés et le CSS embarqué fonctionnent, mais les mises en page complexes avec des polices web personnalisées ou des grilles CSS avancées peuvent ne pas s'afficher avec précision. Pour une conversion fidèle au document de pages web complètes, un navigateur sans interface côté serveur est l'outil plus approprié.

Comment utiliser HTML en PDF, étape par étape

  1. Collez votre balisage HTML dans la zone d'édition.
  2. Ajustez éventuellement le format de page (A4 ou Letter) et l'orientation.
  3. Cliquez sur convertir ; DOMPurify assainit le HTML et html2canvas l'affiche.
  4. Attendez que jsPDF encode le résultat canvas en pages PDF.
  5. Téléchargez le PDF.

Cas d'utilisation courants

  • Vous avez généré une facture HTML dans votre navigateur à partir d'un modèle local et souhaitez une copie PDF sans l'envoyer à un service de conversion.
  • Un rapport HTML simple construit à partir de données API doit être sauvegardé en PDF pour archivage ; collez le HTML et convertissez localement.
  • Vous avez rédigé un modèle d'email HTML stylisé et souhaitez prévisualiser son apparence imprimée en PDF.
  • Un développeur a besoin d'un PDF rapide à partir d'un fragment HTML pendant les tests, sans configurer un navigateur sans interface côté serveur.

Questions fréquentes

Pourquoi le texte dans le PDF de sortie n'est-il pas sélectionnable ?

Le pipeline de conversion affiche le HTML sur un bitmap canvas avec html2canvas, puis encode ce bitmap comme données d'image dans les pages PDF avec jsPDF. Le résultat est une image rastérisée, pas une couche de texte. Si vous avez besoin d'un PDF avec du texte sélectionnable, vous auriez besoin d'un navigateur sans interface côté serveur comme Puppeteer, que cet outil évite intentionnellement pour garder le traitement local.

Pourquoi les images dans mon HTML n'apparaissent-elles pas dans le PDF ?

Les images chargées depuis des URL externes sont soumises à la politique CORS du navigateur. Si le serveur d'images n'envoie pas d'en-têtes CORS permissifs, html2canvas ne peut pas lire les données de pixels et l'emplacement de l'image s'affiche vide. Les images encodées en base64 intégrées directement dans le HTML ou les images de même origine fonctionnent sans cette restriction.

Le HTML que je colle est-il envoyé à un serveur ?

Non. Le HTML reste en mémoire du navigateur tout au long du processus. DOMPurify l'assainit côté client, html2canvas l'affiche côté client, et jsPDF encode le PDF côté client. Rien ne quitte l'onglet navigateur.

Que supprime l'assainissement DOMPurify ?

DOMPurify supprime les balises script, les attributs de gestionnaires d'événements comme onclick et onload, les URL javascript:, et autres constructions pouvant exécuter du code. Il préserve le balisage structurel et de style, donc le résultat affiché a le même aspect mais est sûr à insérer dans un contexte de document.

Puis-je convertir l'URL d'une page web complète au lieu de coller du HTML ?

Non. L'outil fonctionne avec le balisage HTML que vous collez directement. Charger une URL nécessiterait de récupérer la page, ce qui se heurte aux restrictions CORS pour la plupart des sites et impliquerait une requête réseau qui sortirait l'opération du modèle de traitement local.