PDF Pixel is a native C# PDF rendering library for .NET, built around SkiaSharp as its rendering engine. It renders PDF documents to raster output with full fidelity, optimized for both CPU and GPU rendering, with no dependency on external PDF frameworks — just SkiaSharp, standard Microsoft libraries, bundled Adobe CMap resources for character mapping, and the bundled URW Core 35 fonts used for the Standard 14 fonts. Coverage spans the full PDF specification for static content, with all essential rendering features supported. A ready-made panel component makes it straightforward to embed PDF viewing directly into any application.
- PdfPixel.Examples — a console project with runnable examples: rendering a PDF page, extracting its text and images, applying ICC transforms, decoding JPEG, JPEG 2000, JBIG2, CCITT and TIFF, and decoding and encoding PNG
- ✅ CCITT (G3, G4)
- ✅ JBIG2
- ✅ JPEG
- ✅ JPEG 2000 (JPX)
- ✅ Flate
- ✅ LZW
- ✅ ASCII Hex
- ✅ ASCII 85
- ✅ Run Length
- ✅ Predictors
- ✅ Crypt
- ✅ Type 1 (PostScript)
- ✅ Type 3 (User-defined)
- ✅ TrueType
- ✅ OpenType
- ✅ CID Fonts
- ✅ Type 1 — Function-based
- ✅ Type 2 — Axial
- ✅ Type 3 — Radial
- ✅ Type 4 — Free-form Gouraud triangle mesh
- ✅ Type 5 — Lattice-form Gouraud triangle mesh
- ✅ Type 6 — Coons patch mesh
- ✅ Type 7 — Tensor-product patch mesh
- ✅ Type 0 — Sampled
- ✅ Type 2 — Exponential interpolation
- ✅ Type 3 — Stitching
- ✅ Type 4 — PostScript calculator
- ✅ DeviceGray, DeviceRGB, DeviceCMYK
- ✅ CalGray, CalRGB, Lab
- ✅ ICC profiles (v2, v4)
- ✅ Indexed
- ✅ Separation, DeviceN
- ✅ Pattern
- ✅ RC4 40–128-bit (R2–R4)
- ✅ AES-128 (R4)
- ✅ AES-256 (R5, R6)
- ✅ Crypt filters
- 🔲 Public-key security handler (
Adobe.PubSec) (planned; decryption requires the recipient's certificate and private key, not available in Browser WASM) - ❌ Proprietary DRM security handlers (e.g. Adobe LiveCycle Rights Management, Microsoft IRM; keys are issued by the vendor's server)
- ✅ Text
- ✅ Line, Square, Circle, Polygon, PolyLine
- ✅ Highlight, Underline, Squiggly, StrikeOut
- ✅ Ink
- ✅ Link
- ✅ Popup
- ✅ File Attachment
- ✅ Stamp
- ✅ Caret
- ✅ FreeText
- ✅ Redact
- 🔲 Widget (AcroForm) (planned)
- ❌ Sound, Movie, Screen, 3D
- ✅ Text Extraction
- ✅ Outlines (bookmarks)
- ✅ Optional content (layers)
- ✅ Article threads
- ✅ Attachments
- 🔲 Portable collections (PDF Portfolios)
- 🔲 Presentation mode (page transitions, automatic advance and sub-page navigation)
- 🔲 JavaScript (through an external handler)
- ❌ XFA
- ✅ GoTo, GoToR (local and remote destinations, including structure destinations)
- ✅ GoToE (embedded go-to: the path through parent and child documents, by embedded file name or file attachment annotation)
- ✅ URI
- ✅ Launch (file specification and Windows launch parameters)
- ✅ Named (NextPage, PrevPage, FirstPage, LastPage; other names are exposed as written)
- ✅ SetOCGState
- ✅ Thread
⚠️ Hide (annotation targets; form field targets planned with AcroForm)- ✅ Action chains (
/Next) - ✅ Triggers: document open, page open and close, outline items, link annotations
- 🔲 Widget annotation triggers (planned with AcroForm)
- 🔲 SubmitForm, ResetForm, ImportData (planned with AcroForm)
- 🔲 GoToDp (planned with document parts)
- 🔲 Trans (planned with presentation mode)
- 🔲 JavaScript (planned with an external handler)
- ❌ Sound, Movie, Rendition, GoTo3DView, RichMediaExecute
| Feature | Core (PdfPanel) |
WPF | Web | WinForms | Avalonia | MAUI |
|---|---|---|---|---|---|---|
| Content rendering | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Annotation rendering | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| User graphics | ✅ | ✅ | ✅ (overlay canvas) | ❌ | ❌ | ❌ |
| GPU rendering | — | ✅ OpenGL | ✅ WebGL | ❌ | ❌ | ❌ |
| View manipulation (zoom, scroll, rotation) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Page layout | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Presentation mode | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Thumbnails | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Page labels | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Text selection | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Content extraction | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Text search | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Content interaction (hover, image selection) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Annotation interaction (popups, hover) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Same-document navigation (links, destinations) | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Host-handled actions (URI, GoToR, …) | ✅ | ✅ | ❌ | ❌ | ❌ | |
| Interactive forms | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Optional content / layers | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Outlines / bookmarks | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| File attachments | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
Bug fixes, complete TODOsAdd Examples projectRelease NuGet packages:PdfPixelPdfPixel.ColorPdfPixel.FontsPdfPixel.PostScriptPdfPixel.CcittPdfPixel.JpgPdfPixel.JpxPdfPixel.Jbig2
Finalize PdfPixel.PdfPanel and demo projects for WPF and WASM (Web)Stage 2 bug fixesImplement text extraction and text selectionImplementPdfPixel.TiffDocumentationRelease NuGet packages:PdfPixel.TiffPdfPixel.PdfPanelPdfPixel.PdfPanel.WpfPdfPixel.PdfPanel.Web
- Add AcroForm / Widget annotation support
- Add digital signature reading and verification: signature fields and dictionaries (
/V,/Lock,/SV),/Perms(DocMDP, UR3) and/DSSvalidation data - Add AESV4 crypt filter (ISO/TS 32003) and integrity protection (ISO/TS 32004)
- Add presentation mode, viewer preferences and page boundary display: page transitions (
/Trans, transition actions), sub-page navigation (/PresSteps), automatic advance (/Dur),/ViewerPreferencesand/BoxColorInfo - Add portable collections (PDF Portfolios):
/Collection(schema, sort, folders, initial document) and collection items (/CI) - Add document parts:
/DPartRoothierarchy (page ranges,/DPMmetadata) and the GoToDp action - Add WinForms, Avalonia and MAUI support
- Investigate rich text (
RC) and default style strings (DS) for FreeText and fields: support or drop - Unit tests with full test coverage
PDF Pixel is licensed under the MIT License. Bundled third-party resources keep their own licenses, each recorded next to the project that embeds it:
Every package carries the notices for the assemblies it ships, under notices/.