Une bibliothèque .NET minimale et légère pour convertir des fichiers Office en PDF.
👉 Démo en ligne — Essayez directement dans votre navigateur, aucune installation requise.
⚠️ En raison des polices limitées disponibles dans le navigateur, le rendu peut ne pas être optimal. Pour de meilleurs résultats, veuillez tester localement sur votre machine.
- Excel → PDF — Convertit les fichiers
.xlsxen PDF - Word → PDF — Convertit les fichiers
.docxen PDF - Dépendances minimales — Conception légère, repose presque entièrement sur les API .NET intégrées
- Prêt pour le serverless — Pas de COM, pas d'installation d'Office, pas d'Adobe Acrobat — fonctionne partout où .NET fonctionne
- Native AOT — Binaires autonomes précompilés pour Windows / Linux / macOS ; aucun runtime .NET requis
- Sortie PDF 1.4 valide
- 100 % open-source & gratuit — Licence Apache 2.0, usage commercial bienvenu ; il suffit de conserver l'attribution. Les PR et contributions sont les bienvenues !
- Graphiques — Pas encore bien pris en charge
Remarque : MiniPdf ne gère actuellement que les conversions de base. Les documents Office complexes ou très personnalisés peuvent ne pas être convertis parfaitement. Si vous rencontrez des problèmes de compatibilité, n'hésitez pas à ouvrir une Issue ou à soumettre une Pull Request — les contributions sont les bienvenues !
- Trained small LLM by
Apache POI+LibreOffice - AI development by
GitHub Copilot+Claude Code
dotnet add package MiniPdfusing MiniSoftware;
// Excel vers PDF
MiniPdf.ConvertToPdf("data.xlsx", "output.pdf");
// Word vers PDF
MiniPdf.ConvertToPdf("report.docx", "output.pdf");
// Fichier vers tableau d'octets
byte[] pdfBytes = MiniPdf.ConvertToPdf("data.xlsx");
// Flux vers tableau d'octets
using var stream = File.OpenRead("data.xlsx");
byte[] pdfBytes = MiniPdf.ConvertToPdf(stream);Si votre environnement dispose de peu de polices systeme (par exemple conteneurs ou Blazor WASM), enregistrez les polices avant la conversion.
using MiniSoftware;
// Il est recommande d'enregistrer une ou plusieurs polices au demarrage
MiniPdf.RegisterFont("NotoSansSC", File.ReadAllBytes("Fonts/NotoSansSC-Regular.ttf"));
MiniPdf.RegisterFont("NotoColorEmoji", File.ReadAllBytes("Fonts/NotoColorEmoji.ttf"));
MiniPdf.ConvertToPdf("report.docx", "report.pdf");Notes:
- Les donnees de police supportees sont TrueType
.ttfet TrueType Collection.ttc. - Enregistrez les polices une seule fois au demarrage pour eviter les doublons.
- Les polices enregistrees sont prioritaires sur les polices systeme.
MiniPdf fournit également un outil en ligne de commande — MiniPdf.Cli — pour convertir rapidement des fichiers sans écrire de code.
dotnet tool install --global MiniPdf.Cli# Convertir Excel en PDF (sortie : data.pdf)
minipdf data.xlsx
# Convertir Word en PDF
minipdf report.docx
# Spécifier le chemin de sortie
minipdf report.docx -o /path/to/output.pdf
# Enregistrer des polices personnalisées (pour conteneurs / environnements headless)
minipdf report.docx --fonts ./Fonts| Commande | Description |
|---|---|
minipdf <file> |
Convertir .xlsx / .docx en PDF |
minipdf convert <file> -o <out> |
Convertir avec chemin de sortie explicite |
minipdf --version |
Afficher la version |
minipdf --help |
Afficher l'aide |
MiniPdf.Cli prend en charge la compilation Native AOT (Ahead-of-Time) — le code C# est compilé directement en code machine natif lors du build, comme en C/C++, produisant un exécutable autonome. Aucun runtime .NET ni compilateur JIT n'est nécessaire à l'exécution.
Avantages :
- Zéro dépendance — aucun SDK ou runtime .NET nécessaire sur la machine cible
- Démarrage instantané — code machine natif, pas de préchauffage JIT
- Empreinte réduite — binaire en fichier unique, facile à distribuer et déployer
- Compatible CI/CD — téléchargez et exécutez dans n'importe quel pipeline sans installer .NET
Téléchargement : récupérez le binaire correspondant à votre plateforme sur la page GitHub Releases.
| Plateforme | Fichier |
|---|---|
| Windows x64 | minipdf-win-x64.zip |
| Windows ARM64 | minipdf-win-arm64.zip |
| Linux x64 | minipdf-linux-x64.tar.gz |
| Linux ARM64 | minipdf-linux-arm64.tar.gz |
| macOS x64 | minipdf-osx-x64.tar.gz |
| macOS ARM64 (Apple Silicon) | minipdf-osx-arm64.tar.gz |
Utilisation (exemple sous Linux / macOS) :
# Télécharger et extraire
tar -xzf minipdf-linux-x64.tar.gz
# Convertir
./minipdf report.docx -o report.pdfUtilisation (exemple sous Windows) :
# Extraire le zip, puis exécuter
.\minipdf.exe report.docx -o report.pdfLa sortie de MiniPdf est comparée à MiniExcel et Office 365 comme moteurs de rendu de référence sur 373 cas de test.
| Rapport | Cas | 🟢 Excellent (≥90%) | 🟡 Acceptable (70%–90%) | 🔴 À améliorer (<70%) | Score moyen |
|---|---|---|---|---|---|
| XLSX → PDF | 191 | 175 | 16 | 0 | 96.9% |
| DOCX → PDF | 180 | 178 | 2 | 0 | 97.6% |
| Issue XLSX Fichiers | 2 | 1 | 1 | 0 | 83.8% |
| Total | 373 | 354 | 19 | 0 | 97.2% |
Notation : similarité texte 40% + similarité visuelle 40% + nombre de pages 20%
- Rapport Benchmark XLSX — Cas de test conversion XLSX
- Rapport Benchmark DOCX — Cas de test conversion DOCX
- Rapport Fichiers Issue XLSX — Cas de test avec fichiers Issue réels
- Rapport Fichiers Issue DOCX — Cas de test avec fichiers Issue réels
Tous les cas de test comparant la sortie MiniPdf à la référence MiniExcel / Office 365. La page 1 est affichée pour les résultats multi-pages.
La sortie DOCX de MiniPdf est comparée à MiniExcel et Office 365 comme moteurs de rendu de référence sur 180 cas de test classiques.
| Catégorie | Nombre | Seuil |
|---|---|---|
| 🟢 Excellent | 175 | ≥ 90% |
| 🟡 Acceptable | 16 | 70% – 90% |
| 🔴 À améliorer | 0 | < 70% |
Score moyen global : 96.9% (similarité textuelle 40% + similarité visuelle 40% + nombre de pages 20%)
Tous les cas de test DOCX comparant la sortie MiniPdf à la référence MiniExcel / Office 365. La page 1 est affichée pour les résultats multi-pages.
Ce projet est sous licence Apache License 2.0.
































































































































































































































































































































































































































































































































































































































































































































































