miPDFlib 0.6.0
dotnet add package miPDFlib --version 0.6.0
NuGet\Install-Package miPDFlib -Version 0.6.0
<PackageReference Include="miPDFlib" Version="0.6.0" />
<PackageVersion Include="miPDFlib" Version="0.6.0" />
<PackageReference Include="miPDFlib" />
paket add miPDFlib --version 0.6.0
#r "nuget: miPDFlib, 0.6.0"
#:package miPDFlib@0.6.0
#addin nuget:?package=miPDFlib&version=0.6.0
#tool nuget:?package=miPDFlib&version=0.6.0
miPDFlib
Open-source PDF library for .NET - create, edit, sign and validate PDFs without native dependencies.
An open-source (Apache-2.0) PDF library for .NET 8 / .NET 10: pure managed code, no native dependencies. Create, read, modify, merge, fill forms, extract text, encrypt and digitally sign (PAdES) PDF documents.
dotnet add package miPDFlib
The namespace is MiPdf (using MiPdf;). Versions up to 0.2.3-alpha were published under the package ID MiPdf,
which is deprecated; switch the package reference to miPDFlib, no code changes are needed.
Why miPDFlib?
- Apache-2.0: free in closed commercial products - no AGPL obligations, no revenue limits, no licence key.
- eIDAS-ready signatures: PAdES B-B to B-LTA, HSM/cloud signers and two-step signing, built on .NET cryptography without BouncyCastle.
- Archiving and e-invoices: PDF/A, PDF/UA and ZUGFeRD / Factur-X / XRechnung hybrid invoices.
- Coming from iText or Syncfusion? See the comparison and the migration guide.
Versioning: all planned feature areas are implemented and tested. Releases follow Semantic Versioning; until 1.0 the public API may still change between minor versions (see the changelog).
Features
| Area | Highlights |
|---|---|
| Core | tolerant parser (xref tables/streams, object streams, automatic repair), lazy loading, full and incremental saving, compact output with object streams, files of any size read on demand (also > 2 GB) |
| Creating content | canvas (paths, colors RGB/CMYK/gray, transparency, transformations), standard 14 fonts, TrueType/OpenType embedding with subsetting (full Unicode), JPEG/PNG images incl. alpha |
| Layout | paragraphs with mixed formatting, justification, kerning and hyphenation; lists; tables with repeated headers, column and row spans and rows split across pages; images, barcodes, automatic page breaks, header/footer with "page x of y" |
| Manipulation | merge, split, import/reorder/rotate/delete pages, page templates (letterheads), watermarks, bookmarks, links, annotations (highlight/underline/strike-out, free text, stamps, ink, shapes, file attachments, flattening) |
| Redaction | true removal of text, image pixels, vector graphics, annotations and form fields in areas, by text or regular expression |
| Text extraction | reading order, rotated text, ToUnicode/encodings/glyph names, words and lines with positions, text search (string/regex), image extraction, free-space detection |
| Forms | read/fill/create AcroForm fields (text, check box, radio, combo, list, push button, signature) with appearance generation, flattening, merging; FDF/XFDF import and export; XFA data |
| Encryption | open and create encrypted PDFs: AES-256, AES-128, RC4; passwords and permissions |
| Signatures | PAdES B-B/B-T/B-LT/B-LTA, RFC 3161 and document time-stamps, visible signatures, certification (DocMDP), field locks (FieldMDP), HSM/cloud signers, deferred two-step signing, multiple signatures, verification |
| PDF/A | PDF/A-1b/2b/2u/3b/3u output (XMP, sRGB output intent) and a basic conformance checker |
| Accessibility | tagged PDF and PDF/UA-1: automatic tagging by the layout engine, manual tagging API, PDF/UA checker |
| Attachments / e-invoices | embedded files with PDF/A-3 associated files, ZUGFeRD 2.x / Factur-X / XRechnung hybrid invoices, consistency check of the visible invoice against the XML |
| Hardening | resource limits against decompression bombs and CPU exhaustion, SSRF-safe revocation fetching, fuzz-tested parser |
| Barcodes | QR Code, EPC/GiroCode, Data Matrix (incl. GS1), Code 128/GS1-128, EAN-13/8, UPC-A, Code 39, ITF (vector output) |
The only dependency is System.Security.Cryptography.Pkcs (MIT, Microsoft) for CMS signatures.
Quick start
using MiPdf;
using MiPdf.Fonts;
using MiPdf.Graphics;
using MiPdf.Layout;
using MiPdf.Signatures;
// create
using var pdf = PdfDocument.Create();
using (var layout = new LayoutDocument(pdf, PageSize.A4, new Thickness(50)))
{
layout.Add(new Paragraph("Hello miPDFlib", PdfStandardFont.HelveticaBold, 20));
var table = new Table(1, 3);
table.AddHeaderCell("Pos"); table.AddHeaderCell("Description");
table.AddCell("1"); table.AddCell("Consulting");
layout.Add(table);
}
pdf.Save("hello.pdf");
// modify
using var doc = PdfDocument.Open("hello.pdf");
doc.GetPage(1).AddTextWatermark("DRAFT");
doc.Save("hello-draft.pdf");
// sign
byte[] signed = PdfSigner.Sign(File.ReadAllBytes("hello.pdf"), CertificateSigner.FromPfx("me.pfx", "pw"),
new PdfSignatureOptions { Reason = "Approved", TimestampClient = new HttpTimestampClient("http://timestamp.digicert.com") });
Documentation
API reference and guides – every namespace, class and method, searchable.
How-to guides: Sign a PDF with PAdES in .NET · Create a ZUGFeRD / XRechnung invoice in C# · Replace iText with an Apache-2.0 library
Sample ASP.NET Core web API with Dockerfile: samples/MiPdf.WebApi
- Creating documents: fonts, canvas, images, flow layout, tables
- Opening and manipulating: save options, pages, merge/split, stamps, bookmarks, links
- Text extraction: text, words, positions, search
- Redaction: removing confidential content
- Forms: read, fill, create and flatten form fields
- Security: passwords, permissions, AES/RC4 encryption
- Signatures: PAdES signing, HSM/external signers, time-stamps, verification
- Accessibility / PDF/UA: tagged PDF, PDF/UA, checker
- Attachments and e-invoices: embedded files, ZUGFeRD / Factur-X
- Barcodes: QR, EPC payment codes, Data Matrix, Code 128, EAN
- Migration from iText / Syncfusion and comparison
- Articles: ZUGFeRD in .NET (e-invoices), miPDFlib or aiPDFlib? (how it was built) and iText or Syncfusion PDF? (now including miPDFlib)
- Office documents to PDF: recommended conversion with LibreOffice via Gotenberg
Used by
- miPDFsign Community - open-source (Apache-2.0) signature app for Windows tablets: handwritten signatures with biometric data as PAdES B to LTA
- miPDFsign and miPDFsign Cloud - commercial signing app and service by the author (mitterbucher.com)
License
Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE. Copyright 2026 Wolfgang Mitterbucher.
Source code, issues and contributions: github.com/Mibuw/miPDFlib.
Author
Wolfgang Mitterbucher, Software Engineering & Digital Identity, Leonding (Austria): www.mitterbucher.com · LinkedIn · office@mitterbucher.com
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- System.Security.Cryptography.Pkcs (>= 10.0.14)
-
net8.0
- System.Security.Cryptography.Pkcs (>= 10.0.14)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.6.0 | 0 | 11/3/2026 |
| 0.5.0 | 75 | 11/2/2026 |
| 0.4.0 | 75 | 11/2/2026 |
| 0.3.1 | 74 | 11/2/2026 |
| 0.3.0 | 89 | 10/30/2026 |
| 0.2.8-alpha | 79 | 10/30/2026 |
| 0.2.7-alpha | 69 | 10/30/2026 |
| 0.2.6-alpha | 79 | 10/30/2026 |
| 0.2.5-alpha | 68 | 10/29/2026 |
| 0.2.4-alpha | 92 | 10/29/2026 |