API reference
The public surface area of JetsonPDF, grouped by namespace. For full member-level docs — constructor signatures, properties, XML doc-comments — see the source.
- jetsonpdf-writer-api.pdf —
JetsonPDF, annotations, forms, security. - jetsonpdf-reader-api.pdf —
JetsonPDF.Reading. - jetsonpdf-fluent-api.pdf —
JetsonPDF.Fluent. - jetsonpdf-flow-api.pdf —
JetsonPDF.Flow.
Namespace JetsonPDF — JetsonPDF.Writer.dll
The core writer API: documents, pages, fonts, images, colour, paths, and document-level features.
| Type | Purpose |
|---|---|
PdfDocument | Top-level document. Configure metadata, encryption, conformance flags, then call AddPage and Save. |
PdfPage | One page. Drawing surface for text, images, paths, annotations, widgets, and tagged content blocks. |
PageSize | Readonly record struct in points. Built-ins: Letter, Legal, Tabloid, A3, A4, A5. |
PdfFont | Font handle for drawing — one of the standard 14 (FontFamily + FontStyle) or an EmbeddedFontFace. |
FontFamily / FontStyle | Enums covering the standard 14 (Helvetica / Times / Courier / Symbol / ZapfDingbats) and Regular / Bold / Italic / BoldItalic. |
EmbeddedFontFace | Loads TTF / OTF (CFF1) bytes for embedding. Subsetting happens at save time. |
PdfType3Font / PdfType3GlyphBuilder | Procedural fonts: glyphs drawn as content streams. Auto-emits /ToUnicode. |
PdfImage | Raster image XObject. Construct via FromFile, FromJpeg, FromPng; same instance dedups across pages. |
PdfImageMask | 1-bit stencil mask for use as an image's /Mask or via DrawImageMask. |
PdfFormXObject | Reusable content stream for headers, watermarks, logos — drawn via page.DrawForm. |
PdfPath | Vector path with full PDF path operators: move, line, curve, close, fill rule, dashes, joins. |
PdfColor | Colour value — Rgb, Cmyk, Gray factories, plus named constants. |
PdfColorSpace + subclasses | PdfCalGrayColorSpace, PdfCalRgbColorSpace, PdfLabColorSpace, PdfSeparationColorSpace, PdfDeviceNColorSpace. |
PdfShading + subclasses | PdfAxialShading, PdfRadialShading, PdfFunctionBasedShading for gradients and procedural fills. |
PdfTilingPattern | Tiling pattern XObject (PaintType 1 coloured / 2 uncoloured); fill paths/text via the pattern colour space. |
PdfTransparencyGroup | Block-scoped transparency group with opacity and blend mode. |
PdfOptionalContentGroup / PdfLayerScope | Layered content (OCGs); toggleable visibility in viewers. |
PdfStructureElement / PdfStructureAttributes | Tagged-PDF structure tree elements with attribute bundles. |
PdfOutline / PdfOutlineTree / PdfOutlineItem | Bookmark tree for the document /Outlines dict. |
PdfPageLayout / PdfPageMode / PdfViewerPreferences | Catalog-level viewer presentation settings. |
PdfMeasure + subclasses | PdfRectilinearMeasure (/RL), PdfGeospatialMeasure (/GEO) and PdfNumberFormat. |
PdfCoordinateSystem | EPSG / WKT projection paired with PdfGeospatialMeasure. |
PdfViewport | Per-page viewport tying a region of the page to a measurement system. |
PdfLinearizer | Static rewriter; takes any PDF and re-emits it in ISO Annex F fast-web-view form. |
PdfIncrementalUpdater | Append-only edits to an existing PDF without rewriting unchanged bytes. |
PdfConformance | Flags enum: PDF/A-1b, 2A/2B, 3A/3B, PDF/UA-1, UA-2. |
PdfConformanceValidator | Static validator; doc.Validate() shorthand returns IReadOnlyList<PdfConformanceIssue>. |
PdfConformanceIssue / PdfConformanceSeverity | One issue from validation: code, message, severity (Error / Warning). |
PdfConformanceException | Thrown by Save when ThrowOnConformanceError is set and validation fails. |
PdfEmbeddedFile | Embedded file stream — the body of a /Filespec. |
PdfAssociatedFile / PdfAfRelationship | Catalog / page / annotation /AF entries with relationship enum (Source / Data / Alternative / Supplement / EncryptedPayload / FormData / Schema / Unspecified). |
PdfPieceInfoEntry | Editor metadata round-trip via the page /PieceInfo dict. |
PdfIccProfile | ICC profile blob attached to images / colour spaces. |
Namespace JetsonPDF.Annotations
Every annotation subtype shipped. Add via page.AddAnnotation(...) or convenience helpers like page.AddLink(...).
| Type | Purpose |
|---|---|
PdfAnnotation | Abstract base — rectangle, page link, contents, colour, flags. |
PdfLinkAnnotation | Clickable rectangle — URI, GoTo, GoToR, Launch, Hide, SetOCGState, ImportData, Sound actions. |
PdfTextMarkupAnnotation + PdfTextMarkupKind | Highlight / Underline / StrikeOut / Squiggly with quad-point geometry. Uses PdfQuad.OverText for accurate ascent/descent. |
PdfFreeTextAnnotation | Free-floating text annotation with optional callout, justification, font. |
PdfGeometricAnnotation + subclasses | PdfLineAnnotation, PdfSquareAnnotation, PdfCircleAnnotation, PdfPolygonAnnotation, PdfPolyLineAnnotation, PdfInkAnnotation. |
PdfLineEnding | Line-ending style enum (Square, Circle, Diamond, OpenArrow, ClosedArrow, …). |
PdfStampAnnotation | Rubber-stamp annotation with user-supplied or built-in icon name. |
PdfCaretAnnotation | Editorial caret marker. |
PdfFileAttachmentAnnotation + PdfFileAttachmentIcon | Embedded-file marker; carries a PdfEmbeddedFile + filespec. |
PdfPopupAnnotation | Popup window for a parent markup annotation's notes. |
PdfSoundAnnotation | Sound clip annotation; raw PCM with sample rate / channels metadata. |
PdfRedactionAnnotation | Redaction marker (visible rectangle plus future-application metadata). |
Namespace JetsonPDF.Forms
AcroForm widgets. All inherit PdfWidget; add via page.AddTextField, AddCheckBox, AddRadioGroup, AddComboBox, AddListBox, AddPushButton, AddSignatureField, AddBarcodeField.
| Type | Purpose |
|---|---|
PdfWidget | Abstract widget base — field name, rectangle, flags, optional /AA additional actions. |
PdfTextField | Single- or multi-line text input. Combs, password, multi-line, max length. |
PdfCheckBox | On/off checkbox; IsChecked default state. |
PdfRadioGroup / PdfRadioButton | Mutually-exclusive radio group with multiple PdfRadioButton children. |
PdfComboBox / PdfListBox | Choice fields. Sort, multi-select, commit-on-select-change. |
PdfPushButton | Click button with caption and PdfWidgetAction. |
PdfSignatureField | Empty /Sig placeholder for an external signing pass. |
PdfBarcodeField | 2D barcode field (§12.7.4.5) painted from a caller-supplied bool[,] module matrix. |
BarcodeSymbology | Enum: QRCode / DataMatrix / PDF417 / Code128 / Code39. |
PdfAdditionalActions | /AA trigger map: Keystroke / Format / Validate / Calculate / mouse events. |
PdfSignatureSeedValue / SeedValueFlags | Filter / sub-filter / digest / reasons / MDP constraints emitted as /SV. |
PdfFieldLock / PdfFieldLockAction | Static /Lock dict: All / Include / Exclude. |
FieldAlignment | Left / Center / Right alignment for field appearance streams. |
Pdf*Collection | Per-document widget enumerators (PdfTextFieldCollection, …) iterating across all pages. |
Encryption & signatures
All in JetsonPDF namespace; grouped here by purpose.
| Type | Purpose |
|---|---|
PdfEncryptionOptions | User / owner password, permissions, algorithm. Assign to doc.Encryption. |
PdfEncryptionAlgorithm | Enum: Aes128 (V4 R4) and Aes256 (V5 R6, PDF 2.0). |
PdfPermissions | Flags enum: Print / Modify / CopyContent / AddAnnots / FillForms / Accessibility / Assemble / PrintHigh. |
PdfSigner | Static. Sign(byte[], options) / Sign(input, output, options). Detached PKCS#7. |
PdfSignatureOptions | Certificate, reason, location, contact, field name, hash algorithm, reserved-bytes, optional DocMDP / FieldMDP. |
PdfDocMdpPermission | NoChanges / FormFilling / FormFillingAndAnnotations. |
PdfFieldMdpRestriction | Per-field MDP transform: All / Include / Exclude. |
PdfTimestamper / PdfTimestampOptions / PdfTimestampClient | RFC 3161 DocTimeStamp via caller-supplied or built-in HTTP TSA client. |
PdfDss | Static. AddSecurityStore writes /DSS + per-signature VRI for PAdES B-LTA. |
PdfDocumentSecurityStore / PdfVri | Document-level cert / CRL / OCSP store + per-signature VRI sub-dict. |
Namespace JetsonPDF.Reading — JetsonPDF.Reader.dll
Read-side DTOs. Everything starts with PdfReader.Load.
| Type | Purpose |
|---|---|
PdfReader | Static entry point. Load(string | Stream | byte[], password?) → ReadPdfDocument. |
ReadPdfDocument | Parsed document: Pages, Info, Outlines, PageLabels, NamedDestinations, PageLayout, PageMode, ViewerPreferences, OpenAction, Language, IsEncrypted, EncryptionAuthenticated, OutputIntents, Conformance, DocMdpPermission, CalculationOrder. |
ReadPdfPage | One page: dimensions, Items (text / vector / image / inline-image / form-XObject), annotations, widgets. |
PageItem + subclasses | PageTextItem, PagePathItem, PageImageItem, PageInlineImageItem, PageFormXObjectItem. |
ReadOutlineItem | Bookmark-tree node with title, destination, child list. |
ReadStructureTree / ReadStructureElement / ReadStructureAttributes | Tagged-PDF tree, recursively. AnnotationRefs resolves OBJR child refs. |
ReadOptionalContent | OCGs and the catalog /D default config. |
ReadOutputIntent | Output intent (PDF/A / PDF/X) with ICC profile and identifier. |
ReadSignature | Signature field metadata: signer, time, reason, MDP / FieldMDP, integrity status. |
ReadSignatureSeedValue / ReadFieldMdpRestriction | /SV and FieldMDP transform read-back. |
ReadDocumentSecurityStore / ReadVri | Catalog-level /DSS with VRI sub-dict (cert / CRL / OCSP). |
ReadAdditionalActions | Field /AA trigger map round-trip. |
ReadMeasure / ReadViewport / ReadNumberFormat / ReadCoordinateSystem | §12.9 / §12.10 measurement and geospatial DTOs. |
ReadTilingPattern | Tiling-pattern read-back with module matrix. |
BarcodeMetadata | Symbology + module matrix recovered from a barcode field. |
Namespace JetsonPDF.Fluent — JetsonPDF.Fluent.dll
QuestPDF-style fluent layout API. Compose a Document from Page + slot containers (Header/Footer/Background/Foreground/Content); pages auto-paginate on overflow. Two-pass renderer resolves {TotalPages} after layout. See jetsonpdf-fluent-api.pdf for the full member list.
| Type | Purpose |
|---|---|
Document | Entry point. Document.Create(d => d.Page(...)) → configure with WithMetadata / WithFonts / WithOutline / WithConformance / WithLanguage / WithOutputIntent / WithPageLabels / WithLayer; render via GeneratePdf(path | Stream). |
IDocumentContainer | Receives .Page(p => ...) calls — one block per page descriptor (each block can paginate to many physical pages). |
IPageDescriptor | Per-page config: Size, Margin, DefaultTextStyle, plus the five layered slots: Background, Header, Content, Footer, Foreground. |
IContainer + extensions | The fluent slot. Layout decorators: Padding*, Width/Height/Min*/Max*, AlignLeft/Center/Right/Top/Middle/Bottom, Background, Border, AspectRatio, Translate, Rotate, ShowOnce/SkipOnce/ShowEntire/EnsureSpace, Layer, Section/SectionLink/Link. |
ColumnDescriptor / RowDescriptor | Vertical / horizontal containers via .Column(c => c.Item().Text(...)) / .Row(r => r.RelativeItem(); r.ConstantItem(80)). |
TableDescriptor + TableHeaderDescriptor/TableFooterDescriptor | .Table(t => { t.ColumnsDefinition(c => c.RelativeColumn(); c.ConstantColumn(80)); t.Header(h => ...); t.Cell(columnSpan, rowSpan).Text(...); t.Footer(f => ...); }). Auto-paginating body, repeating header, last-page footer, row-span atomic blocks. |
TextDescriptor | Rich text inside .Text(t => t.Span("...").Bold(); t.CurrentPageNumber(); t.TotalPages()). Per-run Bold/Italic/Underline/FontSize/FontColor; multi-line wrap. |
TextStyle | Mutable style: FontFamily (string), FontSize, FontStyle, FontColor, LineHeight, …. |
FontRegistry | Custom-font registration: RegisterFromFile / RegisterFromBytes. Standard 14 work without registration. |
Colors | Material-palette static class: Colors.Grey50, Colors.IndigoDark, …, plus Colors.FromHex("#213F85"). |
| Form-widget extensions | On any IContainer leaf: .AsTextField(name), .AsCheckBox, .AsComboBox(name, options), .AsListBox, .AsPushButton(name, caption). Acrobat draws the chrome. |
IDynamicComponent / IDrawingSurface | Per-page content via .Component(IDynamicComponent); raw drawing escape via .Canvas((surface, w, h) => ...). |
OutlineBuilder / PageLabelsBuilder / LayerHandle | Helpers for WithOutline, WithPageLabels, and OCG layer scoping. |
Namespace JetsonPDF.Flow — JetsonPDF.Flow.dll
Word-like retained-mode DOM. Build a FlowDocument tree of Section → Paragraph/Table/BlockImage/PageBreak, then Save. The renderer paginates over JetsonPDF.Fluent. See jetsonpdf-flow-api.pdf for the full surface.
| Type | Purpose |
|---|---|
FlowDocument | Top-level. Title, Author, DefaultRunProperties, Sections, Styles, AutomaticOutline, Hyphenator, ConfigureFonts; AddSection / AddStyle; Save(path | Stream). |
Section | Page-setup unit: PageSize, PageMargins, StartsOnNewPage, ColumnCount/ColumnGap, FootnoteAreaHeight, Header/Footer/Body blocks. |
Paragraph | Block of inline runs. Style (built-in), StyleName (named), Alignment, SpaceBefore/SpaceAfter, LineSpacing, LeftIndent/RightIndent, FirstLineIndent, KeepWithNext/KeepLinesTogether, PageBreakBefore, ListMarker, DropCap, FloatImage, TabStops, Bookmark. |
| Run helpers | Inside p => ...: AddText("...").Bold().Italic().Underline().Strikethrough(), .Link(url), .Comment(author, text), .AsInsertion/AsDeletion (track changes); plus p.AddPageNumber(), p.AddPageCount(), p.AddFootnote(text), p.AddEndnote(text), p.AddTab(). |
RunProperties / ParagraphProperties | The cascading style buckets used by DefaultRunProperties and NamedStyle. |
NamedStyle / ParagraphStyle | User-defined named styles with a BasedOn chain. ParagraphStyle = built-in palette (Heading1..Heading3, Quote, Caption, Body, …). |
Table + TableRow + TableCell | Block-level table. Columns (relative weights), Header/Body, RepeatHeader, CellBorderWidth, CellPadding; cells take a string or a Paragraph. |
BlockImage / AnchoredImage + AnchorSide | Inline block image, plus floating image (FloatImage on a paragraph) with text wrap. |
PageBreak | Hard page break inside a section body. |
ListMarker / ListKind | Auto-counter list bullets / numbers / roman / letter at level; hanging indent. |
DropCap | Decorative drop cap at the start of a paragraph (LineSpan). |
TableOfContents / EndnoteList / CommentList | Auto-collected document blocks — place inside any section body. |
TabStop + TabAlignment | Per-paragraph tab stops, paired with p.AddTab() calls. |
Hyphenation.Hyphenator | Optional Liang-pattern hyphenator. Hyphenator.EnglishDefault(); line-breaker prefers soft-hyphen splits. |
StylePresets | Static helpers that prebuild common NamedStyle bundles. |
Namespace JetsonPDF.Wpf — JetsonPDF.Wpf.dll (net8.0-windows)
| Type | Purpose |
|---|---|
PdfToXamlConverter | Static. Convert(ReadPdfDocument, options?) → XAML string (a StackPanel of Canvas pages). |
PdfToXamlOptions | Knobs for the converter: page background, scale, image format, …. |
Base64ImageExtension | Markup extension {jetsonpdf:Base64Image} — decodes inline base64 image bytes without touching disk. |
StandardFontMap | WPF FontFamily ↔ PDF standard-14 mapping used by both converters. |
Sub-namespace JetsonPDF.Wpf.Authoring
| Type | Purpose |
|---|---|
XamlToPdfConverter | Static. Convert(string xaml, options?) → byte[] or (string, Stream, options?) overload. STA-only. |
XamlToPdfOptions | DPI / image quality / font fallback options for the authoring pipeline. |
Document | XAML root element <jetsonpdf:Document>: PageSize, Landscape, Title, Author, Pages collection. |
Page | Member of Document.Pages with optional per-page size/landscape overrides. |
PaginatedTable + PaginatedColumn | Multi-page table with auto-overflow and repeating headers; jetsonpdf:Pagination.HideOnOverflow attached prop. |
Form (attached props) | jetsonpdf:Form.FieldName + MaxLength / IsMultiline / IsPassword / Action — turn a TextBox/CheckBox/ComboBox/ListBox/Button into an AcroForm widget. |
PageNumberExtension / PageCountExtension | Markup extensions {jetsonpdf:PageNumber} / {jetsonpdf:PageCount}; resolve per page during authoring. |
VisualTreeEmitter | The walker that turns an arranged WPF visual tree into PDF drawing operators. Public for advanced extension scenarios. |