Présentation de pdf-service : Un microservice de génération PDF avec Symfony 7
Je suis ravi de vous présenter aujourd'hui pdf-service, un nouveau projet open source que je viens de publier sur GitHub. Il s'agit d'un microservice moderne et performant pour la génération de PDFs à partir de contenu HTML, construit avec Symfony 7.2 et Chrome Headless.
🚀 Principales caractéristiques
- Basé sur Symfony 7.2 et FrankenPHP
- Utilise Chrome Headless via browserless/chrome
- Architecture Hexagonale
- API REST simple et intuitive
- Conteneurisation complète avec Docker
- Application de démo Next.js 15 incluse
💡 Cas d'utilisation
- Génération de factures
- Export de rapports
- Création de documents à partir de templates HTML
- Archivage de pages web en PDF
- Génération de bulletins et attestations
🛠️ Technologies utilisées
- Backend : Symfony 7.2, PHP 8.2+
- Serveur : FrankenPHP
- PDF : Chrome Headless (browserless)
- Demo : Next.js 15 avec Bun
- Conteneurisation : Docker & Docker Compose
🔧 Installation rapide
bash
📝 Exemple d'utilisation
bash
🎯 Points forts
- Performance : Optimisé pour la génération rapide de PDFs
- Flexibilité : Options de configuration étendues
- Moderne : Utilisation des dernières versions des technologies
- Maintenable : Architecture hexagonale et tests automatisés
- Sécurisé : Validation stricte des entrées et gestion des erreurs
- Documenté : Documentation complète et exemples d'utilisation
🔜 À venir
Je prévois de publier prochainement un article technique détaillé qui expliquera en profondeur :
- L'architecture du projet
- Les choix techniques
- Les patterns utilisés
- Les bonnes pratiques implémentées
- Les cas d'utilisation avancés
- Les optimisations possibles
🤝 Contribution
Le projet est open source sous licence MIT. N'hésitez pas à :
- ⭐ Star le repository
- 🐛 Signaler des bugs
- 💡 Proposer des améliorations
- 🔧 Contribuer au code
📚 Plus d'informations
Pour plus de détails, consultez :
- Le repository GitHub
- La documentation dans le README
- L'application de démo incluse
Un article technique détaillé suivra bientôt pour expliquer en profondeur tous les aspects du projet. Stay tuned! 🚀
Vous avez des questions ou des suggestions ? N'hésitez pas à ouvrir une issue sur GitHub ou à me contacter directement via LinkedIn.