# ex_pdf_read v1.0.1 - Table of Contents

> PDF reader — text extraction, layout, links, images, metadata, encryption, AcroForm.

## Pages

- [ExPdfRead](readme.md)

## Modules

- [Pdf.Reader](Pdf.Reader.md): Native PDF reader — opens a PDF binary or file path and provides pure-functional
access to text runs with positions, raster images, document metadata, interactive
form fields, document outlines (bookmarks), and page annotations.
No GenServer, no mutable state; the reader is a fully lazy, immutable pipeline.
- [Pdf.Reader.AGL](Pdf.Reader.AGL.md): Adobe Glyph List (AGL) — compile-time glyph name to Unicode codepoint lookup.
- [Pdf.Reader.AcroForm](Pdf.Reader.AcroForm.md): AcroForm field walker for `Pdf.Reader`.
- [Pdf.Reader.Annotation](Pdf.Reader.Annotation.md): Represents a single annotation extracted from a PDF page.
- [Pdf.Reader.Annotations](Pdf.Reader.Annotations.md): Walker for per-page `/Annots` arrays.
- [Pdf.Reader.CID.AdobeCNS1](Pdf.Reader.CID.AdobeCNS1.md): Adobe-CNS1 CID to Unicode mapping (~18000 entries).
- [Pdf.Reader.CID.AdobeGB1](Pdf.Reader.CID.AdobeGB1.md): Adobe-GB1 CID to Unicode mapping (~28000 entries).
- [Pdf.Reader.CID.AdobeJapan1](Pdf.Reader.CID.AdobeJapan1.md): Adobe-Japan1 CID to Unicode mapping (~9600 entries).
- [Pdf.Reader.CID.AdobeKorea1](Pdf.Reader.CID.AdobeKorea1.md): Adobe-Korea1 CID to Unicode mapping (~17000 entries).
- [Pdf.Reader.CID.CIDToGIDMap](Pdf.Reader.CID.CIDToGIDMap.md): Parser and lookup for the PDF `/CIDToGIDMap` entry in Type2 CIDFont dicts.
- [Pdf.Reader.CID.CMapParser](Pdf.Reader.CID.CMapParser.md): Minimal PostScript subset parser for Adobe predefined CMap files.
- [Pdf.Reader.CID.Codespace](Pdf.Reader.CID.Codespace.md): Variable-length codespace-aware tokenizer for predefined CMap byte sequences.
- [Pdf.Reader.CID.Decoder](Pdf.Reader.CID.Decoder.md): CID font decoder for Type0/Identity-H and Identity-V composite fonts.
- [Pdf.Reader.CID.PredefinedCMap](Pdf.Reader.CID.PredefinedCMap.md): Lazy loader and lookup for Adobe predefined CMaps bundled in `priv/cmap/`.
- [Pdf.Reader.CMap](Pdf.Reader.CMap.md): Parser for the ToUnicode CMap subset used in PDF fonts.
- [Pdf.Reader.ContentStream](Pdf.Reader.ContentStream.md): PDF content stream interpreter for text and image extraction.
- [Pdf.Reader.Destination](Pdf.Reader.Destination.md): Destination resolution for outline and annotation `/Dest` values.
- [Pdf.Reader.Document](Pdf.Reader.Document.md): Struct representing an open PDF document in the reader.
- [Pdf.Reader.Encoding](Pdf.Reader.Encoding.md): Encoding cascade facade for resolving PDF character codes to Unicode codepoints.
- [Pdf.Reader.Encoding.Differences](Pdf.Reader.Encoding.Differences.md): Applies a PDF `/Differences` array on top of a base encoding override map.
- [Pdf.Reader.Encoding.MacRoman](Pdf.Reader.Encoding.MacRoman.md): Mac OS Roman (MacRomanEncoding) byte-to-Unicode codepoint table.
- [Pdf.Reader.Encoding.StandardEncoding](Pdf.Reader.Encoding.StandardEncoding.md): PDF Standard Encoding — byte-to-Unicode codepoint table.
- [Pdf.Reader.Encoding.WinAnsi](Pdf.Reader.Encoding.WinAnsi.md): WinAnsi (Windows-1252 / CP1252) encoding — read direction.
- [Pdf.Reader.Encryption](Pdf.Reader.Encryption.md): Facade module for PDF Standard Security Handler authentication and decryption.
- [Pdf.Reader.Encryption.ObjectKey](Pdf.Reader.Encryption.ObjectKey.md): Derives the per-object encryption key used for V1, V2, and V4 Standard
Security Handler streams and strings.
- [Pdf.Reader.Encryption.PasswordPad](Pdf.Reader.Encryption.PasswordPad.md): Provides the canonical 32-byte PDF password-padding constant and a helper
to pad (or truncate) an arbitrary password binary to exactly 32 bytes.
- [Pdf.Reader.Encryption.StandardHandler](Pdf.Reader.Encryption.StandardHandler.md): Parses the PDF `/Encrypt` dictionary into a `%StandardHandler{}` struct.
- [Pdf.Reader.Encryption.V1V2](Pdf.Reader.Encryption.V1V2.md): Implements PDF Standard Security Handler algorithms for V1 (RC4-40) and
V2 (RC4-128) — revisions R=2 and R=3/4.
- [Pdf.Reader.Encryption.V4](Pdf.Reader.Encryption.V4.md): Implements PDF Standard Security Handler algorithms for V4 (Crypt Filters +
AES-128 CBC) — revision R=4.
- [Pdf.Reader.Encryption.V5](Pdf.Reader.Encryption.V5.md): Implements PDF Standard Security Handler algorithms for V5/R6 (AES-256,
PDF 2.0).  R=5 (deprecated Acrobat X beta variant) is explicitly rejected.
- [Pdf.Reader.Errors](Pdf.Reader.Errors.md): Documents the full reason set returned in `{:error, reason}` from `Pdf.Reader`.
- [Pdf.Reader.Filter](Pdf.Reader.Filter.md): PDF stream filter pipeline — behaviour definition and apply_chain dispatcher.
- [Pdf.Reader.Filter.ASCII85](Pdf.Reader.Filter.ASCII85.md): ASCII85Decode filter — decodes ASCII base-85 encoded data to binary.
- [Pdf.Reader.Filter.ASCIIHex](Pdf.Reader.Filter.ASCIIHex.md): ASCIIHexDecode filter — decodes a sequence of hexadecimal digit pairs to
a binary.
- [Pdf.Reader.Filter.Flate](Pdf.Reader.Filter.Flate.md): FlateDecode filter — zlib inflate, with optional PNG and TIFF predictor
un-filtering.
- [Pdf.Reader.Filter.LZW](Pdf.Reader.Filter.LZW.md): LZWDecode filter — decodes LZW compressed data as specified in PDF §7.4.4.
- [Pdf.Reader.Filter.RLE](Pdf.Reader.Filter.RLE.md): RunLengthDecode filter — decodes PackBits-style run-length encoded data.
- [Pdf.Reader.Font](Pdf.Reader.Font.md): Per-font decoder construction for the encoding cascade.
- [Pdf.Reader.Font.Widths](Pdf.Reader.Font.Widths.md): Per-font glyph-width lookup for text advance computation.
- [Pdf.Reader.FormField](Pdf.Reader.FormField.md): Represents a single interactive form field extracted from a PDF AcroForm.
- [Pdf.Reader.GraphicsState](Pdf.Reader.GraphicsState.md): Struct and operations for the PDF graphics state during content stream interpretation.
- [Pdf.Reader.Image](Pdf.Reader.Image.md): Struct representing an image extracted from a PDF page.
- [Pdf.Reader.Images.JPEG](Pdf.Reader.Images.JPEG.md): JPEG (DCTDecode) image utilities for `Pdf.Reader`.
- [Pdf.Reader.Images.PNGLike](Pdf.Reader.Images.PNGLike.md): PNG-like image decoding for `Pdf.Reader`.
- [Pdf.Reader.Lexer](Pdf.Reader.Lexer.md): PDF binary tokenizer.
- [Pdf.Reader.Line](Pdf.Reader.Line.md): Logical text line reconstructed from individual `TextRun`s.
- [Pdf.Reader.ObjectResolver](Pdf.Reader.ObjectResolver.md): Lazy indirect-object resolver with Map-based cache.
- [Pdf.Reader.ObjectStream](Pdf.Reader.ObjectStream.md): Decodes objects embedded in a PDF Object Stream (`/Type /ObjStm`).
- [Pdf.Reader.Outline](Pdf.Reader.Outline.md): Represents a single node in a PDF document outline (bookmark tree).
- [Pdf.Reader.Outlines](Pdf.Reader.Outlines.md): Walker for catalog `/Outlines` (PDF document outline / bookmarks tree).
- [Pdf.Reader.Page](Pdf.Reader.Page.md): Page tree walker for `Pdf.Reader`.
- [Pdf.Reader.Parser](Pdf.Reader.Parser.md): PDF recursive-descent parser.
- [Pdf.Reader.Result](Pdf.Reader.Result.md): Unified extraction result returned by `Pdf.Reader.read/2`.
- [Pdf.Reader.Result.Page](Pdf.Reader.Result.Page.md): Per-page slice of the unified extraction result.
- [Pdf.Reader.Shape](Pdf.Reader.Shape.md): Polymorphic struct describing an "interactive" or actionable element
extracted from a PDF — currently link-like elements (URIs, emails,
intra-document jumps).
- [Pdf.Reader.TextRun](Pdf.Reader.TextRun.md): Struct representing a single text run extracted from a PDF page.
- [Pdf.Reader.Trailer](Pdf.Reader.Trailer.md): Locates the `startxref` byte offset in a PDF binary and parses the
trailer dictionary at a given xref section offset.
- [Pdf.Reader.Utils](Pdf.Reader.Utils.md): Shared utility helpers for `Pdf.Reader` sub-modules.
- [Pdf.Reader.Wordlist](Pdf.Reader.Wordlist.md): Compile-time dictionaries used by `Pdf.Reader.read/2` to recover word
boundaries that the PDF producer collapsed (e.g. `iniciode` →
`inicio` + `de`).
- [Pdf.Reader.XMP](Pdf.Reader.XMP.md): XMP RDF/XML metadata parser.
- [Pdf.Reader.XRef](Pdf.Reader.XRef.md): Facade that dispatches to the appropriate xref reader and follows /Prev chains.
- [Pdf.Reader.XRef.Classic](Pdf.Reader.XRef.Classic.md): Parses a classic PDF cross-reference table (keyword `xref`).
- [Pdf.Reader.XRef.Stream](Pdf.Reader.XRef.Stream.md): Parses a PDF 1.5+ compressed cross-reference stream (`/Type /XRef`).

- Exceptions
  - [Pdf.Reader.Error](Pdf.Reader.Error.md): Exception raised by bang variants of `Pdf.Reader` functions.

