Una libreria .NET minimale e leggera per convertire file Office in PDF.
👉 Demo online — Provalo nel browser, nessuna installazione richiesta.
⚠️ A causa dei font limitati disponibili nel browser, i risultati del rendering potrebbero non essere ottimali. Per la migliore esperienza, si consiglia di testare localmente sul proprio computer.
- Excel → PDF — Converte file
.xlsxin PDF - Word → PDF — Converte file
.docxin PDF - Dipendenze minime — Design leggero, utilizza quasi esclusivamente le API .NET integrate
- Pronto per il serverless — Nessun COM, nessuna installazione di Office, nessun Adobe Acrobat — funziona ovunque .NET funzioni
- Native AOT — Binari standalone precompilati per Windows / Linux / macOS; nessun runtime .NET richiesto
- Output PDF 1.4 valido
- 100% open-source e gratuito — Licenza Apache 2.0, uso commerciale libero; basta mantenere l'attribuzione. PR e contributi sono benvenuti!
- Grafici — Attualmente non ben supportati
Nota: MiniPdf attualmente gestisce solo le conversioni di base. Documenti Office complessi o altamente personalizzati potrebbero non essere convertiti perfettamente. Se riscontri problemi di compatibilità, apri una Issue o invia una Pull Request — i contributi sono molto graditi!
- Trained small LLM by
Apache POI+LibreOffice - AI development by
GitHub Copilot+Claude Code
dotnet add package MiniPdfusing MiniSoftware;
// Excel in PDF
MiniPdf.ConvertToPdf("data.xlsx", "output.pdf");
// Word in PDF
MiniPdf.ConvertToPdf("report.docx", "output.pdf");
// Da file a array di byte
byte[] pdfBytes = MiniPdf.ConvertToPdf("data.xlsx");
// Da stream a array di byte
using var stream = File.OpenRead("data.xlsx");
byte[] pdfBytes = MiniPdf.ConvertToPdf(stream);Se l'ambiente ha pochi font di sistema (ad esempio container o Blazor WASM), registra i font prima della conversione.
using MiniSoftware;
// Si consiglia di registrare uno o piu font all'avvio dell'app
MiniPdf.RegisterFont("NotoSansSC", File.ReadAllBytes("Fonts/NotoSansSC-Regular.ttf"));
MiniPdf.RegisterFont("NotoColorEmoji", File.ReadAllBytes("Fonts/NotoColorEmoji.ttf"));
MiniPdf.ConvertToPdf("report.docx", "report.pdf");Note:
- I byte supportati sono TrueType
.ttfe TrueType Collection.ttc. - Registra i font una sola volta all'avvio per evitare registrazioni duplicate.
- I font registrati hanno priorita rispetto ai font di sistema.
MiniPdf fornisce anche uno strumento da riga di comando — MiniPdf.Cli — per convertire rapidamente i file senza scrivere codice.
dotnet tool install --global MiniPdf.Cli# Converti Excel in PDF (output: data.pdf)
minipdf data.xlsx
# Converti Word in PDF
minipdf report.docx
# Specifica il percorso di output
minipdf report.docx -o /path/to/output.pdf
# Registra font personalizzati (per container / ambienti headless)
minipdf report.docx --fonts ./Fonts| Comando | Descrizione |
|---|---|
minipdf <file> |
Converti .xlsx / .docx in PDF |
minipdf convert <file> -o <out> |
Converti con percorso di output esplicito |
minipdf --version |
Mostra la versione |
minipdf --help |
Mostra l'aiuto |
MiniPdf.Cli supporta la compilazione Native AOT (Ahead-of-Time) — il codice C# viene compilato direttamente in codice macchina nativo in fase di build, proprio come C/C++, producendo un eseguibile standalone. Non è necessario alcun runtime .NET o compilatore JIT in fase di esecuzione.
Vantaggi:
- Zero dipendenze — nessun .NET SDK o runtime necessario sulla macchina di destinazione
- Avvio istantaneo — codice macchina nativo, nessun riscaldamento JIT
- Dimensioni ridotte — binario a file singolo, facile da distribuire e deployare
- Adatto a CI/CD — scarica ed esegui in qualsiasi pipeline senza installare .NET
Download: scarica il binario per la tua piattaforma dalla pagina GitHub Releases.
| Piattaforma | File |
|---|---|
| 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 |
Utilizzo (esempio su Linux / macOS):
# Scarica ed estrai
tar -xzf minipdf-linux-x64.tar.gz
# Converti
./minipdf report.docx -o report.pdfUtilizzo (esempio su Windows):
# Estrai lo zip, poi esegui
.\minipdf.exe report.docx -o report.pdfL'output di MiniPdf viene confrontato con MiniExcel e Office 365 come renderer di riferimento su 373 casi di test.
| Report | Casi | 🟢 Eccellente (≥90%) | 🟡 Accettabile (70%–90%) | 🔴 Da migliorare (<70%) | Punteggio medio |
|---|---|---|---|---|---|
| XLSX → PDF | 191 | 175 | 16 | 0 | 96.9% |
| DOCX → PDF | 180 | 178 | 2 | 0 | 97.6% |
| Issue XLSX File | 2 | 1 | 1 | 0 | 83.8% |
| Totale | 373 | 354 | 19 | 0 | 97.2% |
Punteggio: similarità testo 40% + similarità visiva 40% + conteggio pagine 20%
- Report Benchmark XLSX — Casi di test conversione XLSX
- Report Benchmark DOCX — Casi di test conversione DOCX
- Report File Issue XLSX — Casi di test con file Issue reali
- Report File Issue DOCX — Casi di test con file Issue reali
Tutti i casi di test che confrontano l'output di MiniPdf con il riferimento MiniExcel / Office 365. Per i risultati multipagina viene mostrata la pagina 1.
L'output DOCX di MiniPdf viene confrontato con MiniExcel e Office 365 come renderer di riferimento su 180 casi di test classici.
| Categoria | Conteggio | Soglia |
|---|---|---|
| 🟢 Eccellente | 175 | ≥ 90% |
| 🟡 Accettabile | 16 | 70% – 90% |
| 🔴 Da migliorare | 0 | < 70% |
Punteggio medio complessivo: 96.9% (similarità testo 40% + similarità visiva 40% + conteggio pagine 20%)
Tutti i casi di test DOCX che confrontano l'output di MiniPdf con il riferimento MiniExcel / Office 365. Per i risultati multipagina viene mostrata la pagina 1.
Questo progetto è concesso in licenza con Apache License 2.0.
































































































































































































































































































































































































































































































































































































































































































































































