zpdf is a high-performance PDF text extraction library written in Zig that focuses on speed, low overhead, and modern parsing techniques. It leans heavily on memory-mapped file reading and zero-copy patterns where possible, so it can scan large PDFs without repeatedly copying data around in memory. The library supports streaming extraction using efficient arena allocation, making it well suited for workloads that need to process big documents quickly or in batches. It implements multiple PDF decompression filters and handles common font encoding pathways, which are essential for turning raw PDF content streams into readable text. It also understands both classic cross-reference tables and newer cross-reference streams, including PDF 1.5+ features, and it offers configurable strict vs permissive error handling depending on whether you prioritize correctness or robustness.
Features
- Memory-mapped parsing with zero-copy extraction where possible
- Streaming text extraction with arena allocation for efficiency
- Multiple decompression filters including Flate, LZW, and ASCII variants
- Font encoding support including WinAnsi, MacRoman, and ToUnicode CMaps
- XRef table and XRef stream parsing for modern PDFs
- Configurable strict vs permissive error handling modes