Si vous générez des rapports HTML, des factures ou des pages de portail et que vous avez besoin de PDF en masse, l’exigence principale est une sortie reproductible sur toutes les machines. Ce guide étape par étape montre comment convertir en lot plusieurs fichiers HTML en PDF avec Python en utilisant Aspose.HTML for Python via .NET. Vous allez créer un convertisseur basé sur des dossiers, puis l’étendre aux pages contenant beaucoup de SVG et aux polices intégrées pour un rendu cohérent.
Pourquoi utiliser Aspose.HTML pour la conversion par lots de HTML en PDF ?
Aspose.HTML for .NET est une API de rendu de documents qui peut charger du contenu HTML à partir de fichiers ou d’URL et l’exporter vers PDF avec un contrôle précis des options de rendu. Pour les scénarios de conversion par lots, les principaux avantages sont
- Rendu fiable sans automatisation du navigateur
- Contrôle des options PDF telles que la taille de la page, les marges et le rendu de l’arrière-plan
- Exécution prévisible dans les environnements serveur
- Possibilité de standardiser les polices et les ressources à travers de nombreuses conversions
Conversion par lots de plusieurs fichiers HTML en PDF avec Python — Étape par étape
Étape 1 : Configurez votre environnement
Vous avez besoin de Python et d’un runtime .NET qui correspond à votre environnement de déploiement. Si vous prévoyez d’exécuter des conversions sur un serveur, installez‑y également le même runtime.
Installer Aspose.HTML pour Python via .NET
Exécuter:
pip install aspose-html-net
Si vous utilisez un environnement virtuel :
python -m venv .venv
.venv\Scripts\activate
pip install aspose-html-net
Étape 2 : Créez les dossiers d’entrée et de sortie (facultatif)
Créez deux dossiers dans le répertoire de votre projet :
input_htmlpour les fichiers HTML et les ressourcesoutput_pdfpour les PDF générés
Structure recommandée pour une résolution fiable des actifs :
input_html
report1.html
- report2.html
- styles
site.css
- images
logo.png
- polices
Inter Regular.ttf
Conservez le CSS, les images et les polices dans la même racine afin que les chemins relatifs fonctionnent de manière cohérente.
Étape 3 : Écrire le script de conversion par lots
Ce script parcourt le dossier d’entrée, trouve les fichiers .html et .htm, et convertit chaque fichier en PDF avec le même chemin relatif sous le dossier de sortie. Il consigne également le succès et l’échec pour chaque fichier.
Exemple de code : conversion par lots d’un dossier de fichiers HTML en PDF.
Cette section implémente le modèle de traitement par lots principal utilisé dans l’automatisation d’entreprise. Elle énumère les fichiers HTML, construit des chemins de sortie déterministes, convertit chaque document et renvoie un rapport récapitulatif que vous pouvez stocker pour la surveillance et les relances.
Suivez les étapes ci-dessous:
- Définir les dossiers d’entrée et de sortie.
- Énumérer tous les fichiers HTML.
- Charger chaque document HTML.
- Convertir chaque document en PDF.
- Enregistrer les PDF avec des noms déterministes.
Cet exemple de code montre comment convertir une collection de fichiers HTML en PDF en utilisant Aspose.HTML for Python via .NET.
Note : Cet exemple de code montre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour les chemins de fichiers (
input,output, etc.) pour qu’ils correspondent à vos emplacements réels, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation ou contacter l’équipe de support pour obtenir de l’aide.
Étape 4 : Exécuter le convertisseur et vérifier la sortie
Exécuter:
python batch_html_to_pdf.py
Vérifier:
- Les PDF sont créés dans
output - La structure des dossiers reflète
input - La mise en page correspond aux attentes
- Le CSS et les images s’affichent correctement
Si le CSS est manquant, passez à la section Fix Missing CSS, Images, and Broken Relative Paths car il s’agit presque toujours d’un problème de chemin ou d’emballage d’actifs.
Rendre le rendu des polices cohérent en incorporant les polices
Si vous générez des factures ou des documents de conformité, la substitution de polices peut modifier les sauts de ligne et la pagination. La solution la plus fiable consiste à fournir les polices avec vos modèles et à les charger via CSS.
Exemple de code : Convertir HTML en PDF avec des polices intégrées
Cette section se concentre sur l’empaquetage de modèles. Le code de conversion reste le même. Vous intégrez les polices en utilisant CSS @font-face avec des chemins relatifs.
Suivez les étapes ci-dessous:
- Placez les polices requises dans un dossier accessible.
- Référencez les polices via CSS en utilisant les règles @font-face.
- Assurez-vous que le HTML charge le CSS et les polices via des chemins relatifs.
- Convertissez le HTML en PDF et vérifiez l’apparence des polices.
Structure du dossier :
input_html
invoice.html
- styles
invoice.css
- fonts
Inter Regular.ttf
- Inter Bold.ttf
Exemple CSS :
@font-face {
font-family: "Inter";
src: url("../fonts/Inter Regular.ttf") format("truetype");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: "Inter";
src: url("../fonts/Inter Bold.ttf") format("truetype");
font-weight: 700;
font-style: normal;
}
body {
font-family: "Inter", Arial, sans-serif;
}
Exécutez à nouveau votre script batch et vérifiez :
- Le PDF utilise la police prévue.
- L’espacement et la pagination correspondent à la mise en page attendue.
Corriger le CSS manquant, les images et les chemins relatifs cassés
Si la sortie PDF apparaît sans style ou que des images sont manquantes, utilisez cette liste de contrôle :
- Confirmez que toutes les références d’actifs dans le HTML sont relatives à l’emplacement du fichier HTML.
- Conservez les modèles et les actifs sous un seul dossier racine, tel que
input. - Évitez les chemins absolus qui n’existent que sur votre machine.
- Évitez les actifs servis par des URL que le serveur ne peut pas accéder.
Un test rapide consiste à ouvrir le fichier HTML localement et à vérifier qu’il charge le CSS et les images depuis la même structure de dossiers que vous déployez en production.
Conclusion
Vous disposez maintenant d’une approche complète, étape par étape, pour convertir en lot plusieurs fichiers HTML en PDF avec Aspose.HTML en Python via .NET. L’automatisation de la conversion en lot de plusieurs fichiers HTML en PDF rationalise la génération de documents pour les systèmes d’entreprise. En installant le SDK, en préparant une liste claire de sources, en configurant les options PDF pour les polices intégrées et la préservation des SVG, et en gérant les erreurs de manière élégante, vous pouvez créer un pipeline de conversion fiable qui s’étend à des milliers de pages. Les événements de progression du SDK et son API riche facilitent la surveillance des tâches de longue durée et garantissent une qualité de sortie constante.
Pour une utilisation en production, vous pouvez acheter une licence en visitant la page de tarification. Alternativement, vous pouvez demander une licence temporaire à des fins d’évaluation. Découvrez plus de tutoriels sur le blog Aspose.HTML et rejoignez la communauté sur les forums pour un support supplémentaire.
FAQ
1. Puis-je convertir en lot à la fois les fichiers HTML et HTM en une seule exécution ?
Oui. Dans votre script batch, incluez les extensions .html et .htm lors de l’analyse du dossier d’entrée, puis convertissez chaque fichier en PDF tout en conservant la même structure de sortie relative.
2. Pourquoi mon PDF ne comporte-t-il pas le style CSS ou les images ?
Cela se produit généralement lorsque les chemins relatifs ne sont pas résolus dans l’environnement de conversion. Conservez les CSS, les images et les polices sous la même racine input, utilisez des chemins relatifs dans le HTML et le CSS, et évitez les chemins absolus spécifiques à la machine.
3. Comment assurer une sortie PDF cohérente sur plusieurs serveurs ?
Regroupez les polices requises avec vos modèles et référencez‑les à l’aide des règles @font‑face CSS. Conservez également tous les actifs localement et versionnés afin que le convertisseur voie toujours le même HTML, CSS, images et polices dans chaque environnement.
4. Aspose.HTML préserve-t-il la qualité du SVG dans le PDF généré ?
Oui. Les éléments SVG en ligne sont généralement rendus comme du contenu vectoriel dans le PDF. Après la conversion, effectuez un zoom sur les graphiques et les icônes pour vérifier que les bords restent nets et que le texte à l’intérieur du SVG utilise les polices attendues.
5. Comment gérer les échecs lors de la conversion de centaines ou de milliers de fichiers ?
Traitez les fichiers de manière indépendante, capturez les exceptions par fichier et rédigez un rapport récapitulatif qui répertorie les éléments réussis et échoués. Cela vous permet de relancer uniquement les fichiers échoués au lieu de répéter l’ensemble du lot.
