You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Fonctionnalités
Excel → PDF — Convertit les fichiers .xlsx en PDF
Word → PDF — Convertit les fichiers .docx en PDF
PowerPoint → PDF — Convertit les fichiers .pptx en PDF
Extraction pour LLM — Convertit le contenu .xlsx, .docx et .pptx en Markdown, JSON ou modèle .NET sémantique
Fusion PDF avec signets — Fusionne plusieurs PDF et ajoute des signets de premier niveau au resultat
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 !
Références
Trained small LLM by Apache POI + LibreOffice
AI development by GitHub Copilot + Claude Code
Démarrage
Installation via NuGet
dotnet add package MiniPdf
Utilisation
usingMiniSoftware;// Excel vers PDFMiniPdf.ConvertToPdf("data.xlsx","output.pdf");// Word vers PDFMiniPdf.ConvertToPdf("report.docx","output.pdf");// PowerPoint vers PDFMiniPdf.ConvertToPdf("slides.pptx","output.pdf");// Fichier vers tableau d'octetsbyte[]pdfBytes=MiniPdf.ConvertToPdf("data.xlsx");// Rend les feuilles Excel indiquees par nom ou index 1-based (null rend toutes les feuilles)MiniPdf.ConvertToPdf("data.xlsx","selected.pdf",sheets:new[]{"Summary","Details"});MiniPdf.ConvertToPdf("data.xlsx","selected.pdf",sheetIndexes:new[]{1,3});// Compresser et ajuster la mise en page des grands ou larges fichiers ExcelMiniPdf.ConvertToPdf("data.xlsx","compact.pdf",newMiniPdfConversionOptions{Compress=true,FitToPage=true,Landscape=true,PrintScale=70,RowsPerPage=80,});// Flux vers tableau d'octetsusingvarstream=File.OpenRead("data.xlsx");byte[]pdfBytes=MiniPdf.ConvertToPdf(stream);// Fusionner des PDF et ajouter des signetsMiniPdf.MergePdf(new[]{"cover.pdf","body.pdf"},"merged.pdf",newPdfMergeOptions{BookmarkTitles=new[]{"Cover","Body"},Bookmarks=new[]{newPdfBookmark("Body page 2",2)},});
Extraction de contenu pour LLM
Extrayez le contenu dans l'ordre source sans générer ni analyser un PDF intermédiaire :
DOCX, XLSX et PPTX sont respectivement mappés vers des sections document, worksheet et slide. La sortie conserve les titres, paragraphes, listes, tableaux, adresses de cellule, liens, notes de bas de page DOCX et métadonnées d'images/graphiques. JSON utilise le schema déterministe version 1. Les images sont représentées par des métadonnées : aucun OCR ni fichier sidecar n'est produit. Les commentaires, le suivi des modifications, les threaded comments et les notes du présentateur PowerPoint ne sont pas encore pris en charge.
L'ordre d'entree est conserve : les pages de cover.pdf apparaissent d'abord, puis celles de chapter-1.pdf, puis celles de chapter-2.pdf.
Ajouter un signet par PDF source
Utilisez BookmarkTitles lorsque chaque PDF d'entree doit devenir un signet de premier niveau. Le nombre de titres doit correspondre au nombre de PDF d'entree.
La fusion PDF prend en charge les PDF non chiffres qui utilisent des classic xref tables. Les PDF chiffres et les PDF utilisant uniquement des xref streams lancent NotSupportedException.
Test visuel de fusion PDF
Pour generer un PDF fusionne avec signets a inspecter manuellement :
./scripts/Test-PdfMergeVisual.ps1
Le script ecrit artifacts/issue62-merge-visual/merged-bookmarks.pdf. Ouvrez-le dans un lecteur PDF et verifiez que le panneau des signets contient Source A, Source B et Source B - page 2. Ajoutez -Open pour ouvrir le PDF genere apres sa creation.
Polices personnalisees
Si votre environnement dispose de peu de polices systeme (par exemple conteneurs ou Blazor WASM), enregistrez les polices avant la conversion.
usingMiniSoftware;// Il est recommande d'enregistrer une ou plusieurs polices au demarrageMiniPdf.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 .ttf et TrueType Collection .ttc.
Enregistrez les polices une seule fois au demarrage pour eviter les doublons.
Les polices enregistrees sont prioritaires sur les polices systeme.
Outil CLI
MiniPdf fournit également un outil en ligne de commande — MiniPdf.Cli — pour convertir rapidement des fichiers sans écrire de code.
Installation
dotnet tool install --global MiniPdf.Cli
Utilisation
# Convertir Excel en PDF (sortie : data.pdf)
minipdf data.xlsx
# Convertir Word en PDF
minipdf report.docx
# Convertir PowerPoint en PDF
minipdf slides.pptx
# 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
# Rendre les feuilles Excel indiquees par nom ou index 1-based
minipdf data.xlsx --sheets Summary,2
# Compresser les flux de contenu PDF pour les sorties volumineuses
minipdf data.xlsx --compress
# Rendre un apercu Excel limite
minipdf data.xlsx --max-rows 200 --max-columns 20 --compress
# Ajuster la mise en page des grands ou larges fichiers Excel
minipdf data.xlsx --fit-to-page --landscape --scale 70
# Viser davantage de lignes de feuille par page PDF
minipdf data.xlsx --rows-per-page 80 --compress
# Extraire du Markdown pour LLM (sortie : report.md)
minipdf extract report.docx
# Extraire du JSON déterministe
minipdf extract data.xlsx --format json --sheets Summary --max-rows 200
Ajuster et mettre a l'echelle la mise en page Excel
minipdf data.xlsx --rows-per-page <n>
Viser davantage de lignes Excel par page PDF
minipdf extract <file>
Extraire du Markdown pour LLM
minipdf extract <file> --format json
Extraire du JSON sémantique schema version 1
minipdf --version
Afficher la version
minipdf --help
Afficher l'aide
Binaires autonomes Native AOT
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.pdf
Utilisation (exemple sous Windows) :
# Extraire le zip, puis exécuter
.\minipdf.exe report.docx -o report.pdf
Benchmark
La 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%