What JetsonPDF actually supports, grouped by area. Everything below ships in the current source.
Writer
A drawing-model API. Build a PdfDocument, append PdfPages, paint onto each page, save the bytes.
Document model — PdfDocument.AddPage(PageSize), doc.Save(path | Stream), info dictionary, viewer prefs, page layout / mode, open action, named destinations, outlines, page labels.
Fonts — the standard 14 (FontFamily.Helvetica et al.); EmbeddedFontFace.FromFile for TrueType / OpenType with TTF subsetting and CFF1 subset on write; PdfType3Font for procedural glyphs with auto /ToUnicode.
Vector graphics — DrawRectangle, DrawLine, DrawPath with full path operators, line cap/join, dash patterns, even-odd fill, transforms, clipping.
Colour spaces — DeviceGray / RGB / CMYK, plus CalGray, CalRGB, Lab, Separation, DeviceN, NChannel, ICC profiles. Real CIE math, not pass-through stubs.
Per-page — ReadPdfPage with content items (text, vector paths, images, inline images, form-XObject invocations) and annotations.
Filters — FlateDecode (with PNG predictors 10-15), DCTDecode, LZWDecode, ASCII85Decode, ASCIIHexDecode, RunLengthDecode, CCITTFaxDecode (G3 1D, G3 2D mixed mode, G4), JBIG2Decode (MQ arithmetic, all four templates with AT pixels and TPGD; symbol dicts; text regions; halftones; refinement; Huffman; MMR), JPXDecode (passthrough with JP2 ihdr).
Fonts — standard 14, embedded TrueType, Type 0 / CID, Type 1 (with /Differences via Adobe Glyph List), Type 3 (now prefers /ToUnicode over AGL).
Colour spaces — everything the writer can produce, parsed back: device, calibrated, indexed, separation, DeviceN, NChannel, Lab, ICC, pattern.
Shadings — Type 1, 2, 3 (axial, radial, function-based) and mesh decoding for types 4-7 to triangle soup / patch lists.
Structure tree — ReadStructureTree, ReadStructureElement, ReadStructureAttributes, OBJR child refs.
Layers, signatures, conformance — ReadOptionalContent, ReadSignature, ReadDocumentSecurityStore, ReadVri, ReadOutputIntent, plus PDF/A and PDF/UA flag detection from XMP.
Conformance
Declare it, then verify it. JetsonPDF separates "the file says it's PDF/A" from "the file is actually PDF/A," and gives you tooling for both.
PDF 2.0 baseline — PDF 2.0 header, UseObjectStreams flag, xref streams, modern security handlers.
Tagged PDF — doc.MarkAsTagged, nested page.BeginTag("H1") / BeginTag("P"), role map & class map, /Lang at document and element level, /Alt, /E, /ID, /ActualText (writer + reader marked-content stack).
Conformance flags — PdfConformance.PdfA1B / PdfA2B / PdfA3B / PdfUA1 / PdfUA2 emit the right XMP packet, /OutputIntents, and catalog entries (DisplayDocTitle, /Lang).
Validator — PdfConformanceValidator.Validate(doc) returns IReadOnlyList<PdfConformanceIssue>; doc.Validate() shorthand. 7 PDF/A-1b rules + 5 PDF/UA-1 rules, plus the PDF/A-2/3 + PDF/UA-2 variants with prefixed codes (PDFA2x, PDFA3x, PDFUA2x).
Strict mode — doc.ThrowOnConformanceError = true aborts Save with a PdfConformanceException if any error issue is found.
Linearization — PdfLinearizer emits ISO Annex F with linearization dict, two xref tables, and bit-packed Page Offset + Shared Object hint tables.
PKCS#7 signatures — PdfSigner.Sign(byte[], PdfSignatureOptions) for invisible detached signatures with the standard sub-filter adbe.pkcs7.detached; multiple signatures via incremental update.
DocTimeStamp — PdfTimestamper.AddDocumentTimestamp with caller-supplied or default PdfTimestampClient (RFC 3161 over HTTP) emits /Type /DocTimeStamp /SubFilter /ETSI.RFC3161.
DocMDP & FieldMDP — certify documents with permission level (NoChanges / FormFilling / FormFillingAndAnnotations); restrict per-field modifications via PdfFieldMdpRestriction.
DSS / VRI catalog — PdfDss.AddSecurityStore writes the catalog /DSS with cert / CRL / OCSP streams plus per-signature VRI entries — the missing piece for PAdES B-LTA.
WPF integration
The JetsonPDF.Wpf assembly turns JetsonPDF into a first-class WPF citizen.
PDF → XAML — PdfToXamlConverter.Convert(readDoc) emits a StackPanel of Canvas pages with absolute-positioned TextBlock, Image, Path, and Glyphs elements. Drop the result straight into a ContentControl.
XAML → PDF — XamlToPdfConverter.Convert(xaml) (or a Stream overload) parses the XAML, lets WPF Measure/Arrange it, then walks the visual tree to emit a PDF. STA thread required.
No filesystem dependency — the viewer adapter never touches disk; images come in as base64 via the {jetsonpdf:Base64Image} markup extension.
Multi-page authoring — <jetsonpdf:Document> with <jetsonpdf:Document.Pages> and per-page size overrides; {jetsonpdf:PageNumber} and {jetsonpdf:PageCount} markup extensions resolve per page.
AcroForm widgets in XAML — jetsonpdf:Form.FieldName="email" on a TextBox / CheckBox / ComboBox / ListBox / Button turns it into a real PDF widget at the arranged bounds. Form.MaxLength, IsMultiline, IsPassword, Action attrs for tuning.
PaginatedTable — multi-page table with auto-overflow, repeating headers, and jetsonpdf:Pagination.HideOnOverflow for content that should appear only on the lead page.
Round-trip — the PdfAuthoringEditor sample edits XAML on the left and shows a live PDF round-trip preview on the right.