# PaperForge v1.0.0 - Table of Contents

> A pure Elixir PDF document authoring engine with unified layout, reusable
components, TrueType fonts, Unicode text, images, navigation, and PDF output.

## Pages

- [PaperForge](readme.md)
- [Changelog](changelog.md)
- [PaperForge Public API](api.md)
- [Migrating PaperForge](migrating.md)
- [LICENSE](license.md)

## Modules

- [PaperForge](PaperForge.md): Public API for creating PDF documents with PaperForge.
- [PaperForge.Barcode](PaperForge.Barcode.md): Interleaved 2 of 5 barcode encoding for numeric identifiers.
- [PaperForge.Color](PaperForge.Color.md): Represents colors used by PDF graphics operations.
- [PaperForge.Compression](PaperForge.Compression.md): Compression helpers used by PDF streams.
- [PaperForge.Coordinates](PaperForge.Coordinates.md): Helpers for converting between PDF coordinate systems.
- [PaperForge.Document](PaperForge.Document.md): Represents a PDF document and manages its indirect objects.
- [PaperForge.Flow](PaperForge.Flow.md): Builder for unified document layout blocks.

- [PaperForge.Font](PaperForge.Font.md): Represents a PDF font registered inside a document.

- [PaperForge.FontRegistry](PaperForge.FontRegistry.md): Stores the standard PDF fonts registered in a document.
- [PaperForge.Fonts.Builtin](PaperForge.Fonts.Builtin.md): Definitions for the 14 standard PDF fonts.
- [PaperForge.Fonts.Metrics](PaperForge.Fonts.Metrics.md): Character-width metrics for standard PDF fonts.
- [PaperForge.Fonts.TrueType](PaperForge.Fonts.TrueType.md): Minimal TrueType parser for embedded PDF Type 0 fonts.

- [PaperForge.Fonts.TrueType.Subsetter](PaperForge.Fonts.TrueType.Subsetter.md): Builds physical TrueType subsetting plans.
- [PaperForge.Graphics.Circle](PaperForge.Graphics.Circle.md): Builds PDF commands for drawing circles using cubic Bézier curves.

- [PaperForge.Graphics.Image](PaperForge.Graphics.Image.md): Builds PDF drawing commands for image XObjects.
- [PaperForge.Graphics.Line](PaperForge.Graphics.Line.md): Builds PDF commands for drawing lines.

- [PaperForge.Graphics.Path](PaperForge.Graphics.Path.md): Builds PDF path commands from move, line, cubic curve, and close operations.

- [PaperForge.Graphics.Rectangle](PaperForge.Graphics.Rectangle.md): Builds PDF commands for drawing rectangles.

- [PaperForge.Graphics.Text](PaperForge.Graphics.Text.md): Builds PDF text drawing commands.
- [PaperForge.Graphics.TextBox](PaperForge.Graphics.TextBox.md): Builds multiline text commands constrained to a rectangular area.
- [PaperForge.Image](PaperForge.Image.md): Represents an image registered inside a PDF document.
- [PaperForge.ImageRegistry](PaperForge.ImageRegistry.md): Stores images registered inside a PDF document.
- [PaperForge.Images.JPEG](PaperForge.Images.JPEG.md): Reads JPEG metadata without decoding image pixels.
- [PaperForge.Images.PNG](PaperForge.Images.PNG.md): Reads PNG metadata and image data for embedding in PDF image XObjects.
- [PaperForge.Layout.Block](PaperForge.Layout.Block.md): Common block representation used by the unified layout engine.

- [PaperForge.Margins](PaperForge.Margins.md): Represents page margins.
- [PaperForge.Metadata](PaperForge.Metadata.md): Represents document metadata stored in the PDF information dictionary.
- [PaperForge.Object](PaperForge.Object.md): Represents an indirect PDF object.
- [PaperForge.Page](PaperForge.Page.md): Represents a PDF page and its drawing operations.
- [PaperForge.PageCompiler](PaperForge.PageCompiler.md): Compiles `PaperForge.Page` drawing operations into PDF page content.
- [PaperForge.PageContext](PaperForge.PageContext.md): Context passed to layout headers, footers, and custom flow blocks.

- [PaperForge.PageResources](PaperForge.PageResources.md): Represents the resources used by a PDF page.
- [PaperForge.PageSize](PaperForge.PageSize.md): Standard PDF page dimensions expressed in points.

- [PaperForge.Reference](PaperForge.Reference.md): Represents an indirect reference to a PDF object.
- [PaperForge.SVG](PaperForge.SVG.md): Renders SVG geometry as native PDF vectors.
- [PaperForge.Serializer](PaperForge.Serializer.md): Serializes Elixir values into PDF syntax.
- [PaperForge.Stream](PaperForge.Stream.md): Represents a PDF stream object.
- [PaperForge.StringEncoding](PaperForge.StringEncoding.md): Encodes strings for use inside PDF objects.
- [PaperForge.TextMetrics](PaperForge.TextMetrics.md): Measures text using the metrics of the standard PDF fonts.
- [PaperForge.TextWrapper](PaperForge.TextWrapper.md): Wraps text into lines that fit within a maximum width.
- [PaperForge.Validation](PaperForge.Validation.md): Performs deterministic structural validation before PDF serialization.
- [PaperForge.Writer](PaperForge.Writer.md): Serializes a `PaperForge.Document` into a valid PDF binary.

- Exceptions
  - [PaperForge.FontError](PaperForge.FontError.md)
  - [PaperForge.LayoutError](PaperForge.LayoutError.md)
  - [PaperForge.NavigationError](PaperForge.NavigationError.md)
  - [PaperForge.PageTemplateError](PaperForge.PageTemplateError.md)
  - [PaperForge.TableError](PaperForge.TableError.md)
  - [PaperForge.ValidationError](PaperForge.ValidationError.md): Raised when a document fails structural validation before serialization.

