Les fichiers HTML se présentent sous forme de pages web enregistrées, de rapports exportés, de modèles d’e-mail et de factures générées par des logiciels. Les ouvrir dépend d’un navigateur et souvent de fichiers qui ne sont plus à côté. HTML en PDF transforme un fichier HTML en pages figées, en respectant son CSS et ses styles d’impression : le document peut être archivé, imprimé ou envoyé en un seul fichier autonome.
Comment utiliser HTML en PDF
- Ajoutez le fichier .html ou .htm.
- Cliquez sur Convertir en PDF.
- Téléchargez le PDF.
- Vérifiez l’absence éventuelle d’images ou de polices que le HTML chargeait depuis ailleurs.
Comment le HTML est rendu
VelloDoc utilise WeasyPrint, un moteur de mise en page conçu spécialement pour transformer HTML et CSS en documents paginés. Il applique les feuilles de style de la page, y compris les règles d’impression comme la taille et les marges @page, les contrôles de saut de page et les styles @media print, ce qui le rend très adapté aux factures et rapports conçus pour l’impression. Les styles écrits dans le fichier et les images intégrées en data URI s’affichent normalement.
Ce qui est supprimé par sécurité
Un HTML envoyé peut contenir du code et des références qui ne doivent jamais s’exécuter sur un serveur. Les balises script sont retirées avant le rendu, WeasyPrint n’exécute aucun JavaScript, et les requêtes vers des adresses web distantes et des fichiers locaux sont bloquées. Par conséquent, les images, polices et feuilles de style que le HTML charge depuis Internet seront absentes du PDF. Pour les conserver, intégrez-les au fichier, ou utilisez Page web en PDF pour les pages publiques en ligne.
Fichier HTML ou page web ?
Utilisez HTML en PDF pour les fichiers que vous possédez, comme des rapports exportés ou des modèles enregistrés, et Page web en PDF quand le contenu se trouve à une adresse publique. Les pages qui construisent leur contenu en JavaScript s’affichent mal avec les deux, car aucun n’exécute de script : mieux vaut alors imprimer en PDF depuis votre navigateur. Pour des sources Markdown, Markdown en PDF est plus simple. Le guide des formats aborde le choix des formats plus largement.
Quand utiliser HTML en PDF
Factures et reçus générés
Transformez les factures HTML produites par un logiciel de facturation en PDF pour les clients et la comptabilité.
Pages web enregistrées pour archive
Convertissez une page enregistrée depuis votre navigateur en un seul fichier, plus facile à archiver qu’un HTML accompagné d’un dossier.
Modèles d’e-mails et de rapports
Voyez comment un modèle HTML s’imprime, ou partagez-le avec des relecteurs qui ne travaillent pas en HTML.
Limites à connaître
HTML en PDF supprime les scripts et n’exécute pas JavaScript. Pour le HTML importé ou collé, les ressources distantes et locales sont bloquées : images, polices et feuilles de style externes manqueront, et certains CSS propres aux navigateurs s’affichent différemment. WeasyPrint doit être installé sur le serveur.
HTML en PDF : questions fréquentes
Pourquoi des images manquent-elles dans mon PDF ?
Les images chargées depuis des adresses web, ou depuis des fichiers placés à côté du HTML, ne sont pas disponibles : les requêtes distantes sont bloquées et seul le fichier HTML est envoyé. Intégrez les images en data URI pour les inclure.
Le JavaScript est-il exécuté ?
Non. Les balises script sont supprimées et le moteur de rendu n’exécute pas de JavaScript : le contenu créé par des scripts n’apparaîtra pas.
Puis-je régler la taille de page et les marges ?
Oui. Choisissez le format de papier, l’orientation et les marges dans les réglages, ou laissez faire une règle @page dans le CSS du fichier. Vous pouvez aussi mettre la page en forme à la largeur d’un écran de bureau, ou en une seule longue page.
Pourquoi la mise en page diffère-t-elle de mon navigateur ?
WeasyPrint est un moteur de mise en page pour l’impression, pas un navigateur web : certaines fonctions CSS propres aux navigateurs ou très récentes sont rendues différemment. Un CSS pensé pour l’impression donne les résultats les plus prévisibles.
Pourquoi cet outil est-il indisponible sur certains serveurs ?
Il nécessite la bibliothèque WeasyPrint. Quand un serveur ne l’a pas installée, l’outil l’indique clairement.