FynPDF
FynPDF
Built on a PDF engine written from scratch. No PDFKit, no third-party SDKs.
Engine Architecture
A layered, modular PDF engine built from the ground up against ISO 32000-1:2008 (PDF 1.7 spec). No PDFKit. No shortcuts.
Core Object Model
Complete PDF object graph: booleans, numbers, strings, names, arrays, dictionaries, streams, and indirect references with full resolution.
Parser Pipeline
Byte-level tokenizer, object parser, cross-reference table/stream handler, and document structure reader. Handles incremental updates and hybrid xref files.
Renderer
Content stream interpreter with a full graphics state machine, compiled to a display list with a spatial index so a scroll only redraws what moved on screen.
Font Engine
Standard 14 fonts, embedded TrueType, CFF/Type1C, CIDFontType0, Type 3 glyph programs, composite CMap fonts, and vertical writing support.
Color System
Device, calibrated, ICC, indexed, separation, DeviceN color spaces. Tiling patterns, axial and radial shadings, and Coons and tensor patch meshes.
Image Handling
Raw samples, JPEG, JPEG 2000, inline images, stencil masks, soft masks, and color-key masking with full filter pipeline decompression.
Text Layer
Glyph-accurate extraction in page space, a character → word → line → paragraph layout model, and a background OCR source unioned in, so scanned pages select and search too.
Annotations & Signing
All 15 common annotation types parsed and rendered, default appearances generated when /AP is missing, creation and editing with generated appearance streams, and electronic signatures.
Writer
Incremental save and full rewrite with cross-reference generation, page insert, delete, reorder and rotate, merge and split, images to PDF, and searchable PDF with invisible OCR text.
What Makes It Different
Every byte of the PDF engine is written from scratch: spec-compliant, modular, and built to last.
Custom PDF Engine
No PDFKit, no third-party SDKs. A ground-up implementation of the PDF 1.7 spec, so nothing a PDF can do is out of reach.
Sharp While You Fling
Tiled rendering with a viewport-aware raster scheduler. Pages stay sharp mid-scroll instead of resolving a beat after you stop.
One Engine, Every Apple Device
The same engine runs the Mac app today and the iPad and iPhone apps next, with an interface built for each one rather than ported between them.
Spec-Compliant
Every feature verified against ISO 32000-1:2008, and every render checked against reference images with a perceptual ΔE visual-regression gate.
Agent-Ready
A built-in MCP server exposes the open document to AI agents: read pages, text and annotations, and run the write operations you explicitly enable.
On-Device Intelligence
Summarise, explain or rewrite a selection with Apple's on-device model, and OCR that makes scans selectable. Nothing leaves the device.
Apple Platforms Only
FynPDF is not a portable app that happens to run on a Mac. It is built for macOS, iPadOS and iOS, one engine underneath and an interface that belongs on each. The Mac app is what you can run today; iPad and iPhone follow.
Development Roadmap
FynPDF is built in incremental phases across a 14-phase plan. Each phase produces a testable, usable artifact before the next one starts.
Phase 0 and 1: Foundation & Parser
Swift Package scaffolding and module graph, then the full parser pipeline: tokenizer, object parser, stream filters (Flate, LZW, ASCII85, RunLength), cross-reference tables and streams, hybrid and incremental files, document structure, and the fynpdf-inspect CLI.
Phase 2: Renderer
Content stream interpreter and graphics state machine, path rendering and clipping, every color space (ICCBased, Indexed, Lab, Separation, DeviceN), PDF functions, tiling patterns, axial/radial shadings, mesh shadings (types 4 to 7), images and masks, and the complete font stack: Standard 14, TrueType, CFF/Type1C, Type 0/CID, Type 3, vertical writing.
Phase 3: Viewer & Workspace
A real macOS app: continuous scroll, zoom, thumbnail sidebar, reading layout modes, a Preview-style sidebar, keyboard navigation, and a full multiplexer workspace of windows, tabs and recursive split panes sharing one raster cache. Six app icon themes with an in-app picker.
Phase 4: Text Layer
Glyph-accurate text extraction, word/line/paragraph layout model, click-drag / double-click / triple-click selection, copy to clipboard, Cmd+F search across the document, background Vision OCR for scans, and a read-only MCP server over the open document.
Phase 5 and 6: Annotations & Signing
All 15 common annotation types rendered, default appearances generated when missing, link and popup actions. Creation and editing with an undo/redo command stack, electronic signatures, and on-device model actions on a selection.
Phase 7: Writer, Print & Merge
Incremental save and full rewrite, page insert / delete / reorder / rotate, the macOS print dialog, merge and split, images → PDF, searchable PDF with invisible OCR text, and MCP write tools.
Phase 11: Scroll Performance
Display list with a spatial index, tiled rendering, page-level caching and prefetch, and a viewport-aware raster scheduler. Pages stay sharp through a fling instead of resolving after it stops.
Phase 8: Forms
AcroForm parsing and the field model are underway; widget rendering, form interaction UI, validation, calculations and flattening are next.
Phase 3K: Automated UI Tests
Restabilising the XCUITest suite across the workspace multiplexer: tabs, panes and the shared raster cache.
Phase 4B-b / 7 leftovers
Tagged PDF reading order for extraction, split by bookmark, and form values in print.
Phase 9: Security
RC4 and AES (128/256-bit) decryption, password UI, permission enforcement, and encryption on save.
Phase 10: Content Editing
Edit text and images in place. The hardest thing a PDF editor does, and the reason the engine is ours.
Phase 11: Polish to v1.0
Bookmarks/outline sidebar, page labels, night and sepia reading modes, full VoiceOver and keyboard accessibility, transparency and blend modes, linearized fast-open.
Phase 12: iPadOS and iOS
The shared engine on iPad and iPhone: pinch-to-zoom container, multitasking, Apple Pencil, and an interface adapted to touch.
Phase 13 and 14: Beyond
Hardware scanner capture with image cleanup, and the same document open in two panes.
Target Platforms
- macOS: 14.0 (Sonoma) or later
- iPadOS / iOS: 17.0 or later
- Processor: Apple silicon (optimised)
Building a better PDF experience
FynPDF is being built one spec-compliant phase at a time.
Stay tuned for updates as development progresses.