# Rendro v0.2.0 - Table of Contents

Pure-Elixir, Phoenix-first PDF/document generation with deterministic layout and pagination

## Pages

- [Rendro](readme.md)

- Guides
  - [Rendro Integrations](integrations.md)
  - [Branding](branding.md)

- Policies
  - [API Stability and Support Boundaries](api_stability.md)

## Modules

- [Rendro.Adapters.Poppler](Rendro.Adapters.Poppler.md): External binary adapter for Poppler's pdfinfo tool.
Provides structural validation of generated PDF files.

- [Rendro.Artifact](Rendro.Artifact.md): A pure data carrier containing the rendered PDF bytes, a deterministic hash,
and structured diagnostics from the render pipeline.
- [Rendro.Audit](Rendro.Audit.md): Behavior for rendering audit trails and lifecycle telemetry.
- [Rendro.Cell](Rendro.Cell.md): Cell primitive for explicit table fragmentation configuration.

- [Rendro.Component](Rendro.Component.md): Component-based layout pattern for reusable PDF UI parts.

- [Rendro.EmbeddedFileRegistry](Rendro.EmbeddedFileRegistry.md): Pure data registry for document-owned embedded-file registrations.

- [Rendro.FormField](Rendro.FormField.md): Interactive form field content with deterministic authoring defaults.
- [Rendro.Fragmentable](Rendro.Fragmentable.md): Protocol for splitting layout components across page boundaries.

- [Rendro.Link](Rendro.Link.md): Explicit authored link content wrapper with a narrow target contract.

- [Rendro.PDF.CidFont](Rendro.PDF.CidFont.md): Generates PDF dictionaries for CID-keyed (Type0 / Identity-H) fonts.

- [Rendro.PDF.FontSubsetter](Rendro.PDF.FontSubsetter.md): Pure Elixir TrueType binary subsetter.
Strips unused glyphs and updates `loca` / `glyf` tables correctly to minimize PDF size.

- [Rendro.Row](Rendro.Row.md): Row primitive for explicit table fragmentation configuration.

- [Rendro.Storage](Rendro.Storage.md): Behavior for artifact storage adapters.
- [Rendro.Storage.Local](Rendro.Storage.Local.md): A simple local filesystem storage adapter for Rendro artifacts.

- [Rendro.Text.Bidi](Rendro.Text.Bidi.md): Splits text into unidirectional, single-script runs.

- [Rendro.Text.Shaper](Rendro.Text.Shaper.md): Wraps the `harfbuzz_ex` text shaping engine to return exact glyphs and bounding boxes.
Also detects missing glyph IDs from the shaping engine and emits structured Telemetry
events instead of crashing.

- Core Builder API
  - [Rendro](Rendro.md): Pure-Elixir, Phoenix-first PDF/document generation with deterministic layout and pagination.

  - [Rendro.Block](Rendro.Block.md): Content container with position and size.

  - [Rendro.Document](Rendro.Document.md): Top-level document: pages, content (flow), metadata, and rendering options.
  - [Rendro.Image](Rendro.Image.md): AST representation of a registered image asset to be rendered.

  - [Rendro.Page](Rendro.Page.md): A page with blocks, dimensions, and margins.

  - [Rendro.PageTemplate](Rendro.PageTemplate.md): Explicit flow-page layout template with page geometry and named regions.

  - [Rendro.Region](Rendro.Region.md): Bounded layout region with named role and anchoring metadata.

  - [Rendro.Section](Rendro.Section.md): Reusable flow section that targets a named template region.

  - [Rendro.Table](Rendro.Table.md): Table primitive for structured data.

  - [Rendro.Text](Rendro.Text.md): Text content with logical font, size, and color attributes.

- Canonical Recipes
  - [Rendro.Recipes](Rendro.Recipes.md): Canonical PDF recipes for standard document types.
  - [Rendro.Recipes.BrandedInvoice](Rendro.Recipes.BrandedInvoice.md): Branded canonical invoice recipe using the Tiered Composition pattern.
  - [Rendro.Recipes.Invoice](Rendro.Recipes.Invoice.md): Canonical invoice recipe using the Tiered Composition pattern.

- Ecosystem Adapters
  - [Rendro.Adapters.Oban.RenderWorker](Rendro.Adapters.Oban.RenderWorker.md): Oban worker pattern for background PDF rendering.

  - [Rendro.Adapters.Phoenix](Rendro.Adapters.Phoenix.md): Phoenix integration for Rendro.
  - [Rendro.Adapters.Qpdf](Rendro.Adapters.Qpdf.md): Optional runtime adapter for qpdf-based PDF protection.

- Protection
  - [Rendro.Protect](Rendro.Protect.md): Artifact-first PDF protection boundary.
  - [Rendro.Protect.Adapter](Rendro.Protect.Adapter.md): Behavior for artifact protection adapters.

- Inspection &amp; Observability
  - [Rendro.Error](Rendro.Error.md): Structured diagnostics for render failures.
  - [Rendro.Inspector](Rendro.Inspector.md): Deterministic layout inspector for ASCII snapshot testing.
Provides string serialization of document structure and diagnostics.

  - [Rendro.Telemetry](Rendro.Telemetry.md): Telemetry event definitions and helpers for the Rendro render pipeline.

- Registries
  - [Rendro.AssetRegistry](Rendro.AssetRegistry.md): State container for registered assets and their metadata.

  - [Rendro.FontRegistry](Rendro.FontRegistry.md): Pure data registry for document-owned logical font registrations.

- Exceptions
  - [Rendro.AssetRegistry.InvalidAssetError](Rendro.AssetRegistry.InvalidAssetError.md)
  - [Rendro.FontRegistry.EmbeddedFontFamilyError](Rendro.FontRegistry.EmbeddedFontFamilyError.md)

## Mix Tasks

- [mix docs.contract](Mix.Tasks.Docs.Contract.md): Runs the canonical docs-contract verification command.

- [mix release.preflight](Mix.Tasks.Release.Preflight.md): Runs preflight checks before release.

- [mix rendro.visual_uat](Mix.Tasks.Rendro.VisualUat.md): Renders the branded invoice fixture, rasterises page 1 to PNG via `pdftoppm`,
asks the Claude API to grade three visual criteria (logo present, header
uses the embedded branded font, layout looks intentional), and writes the
verdict back into the phase's UAT file.
- [mix verify](Mix.Tasks.Verify.md): Runs full verification suite with deterministic and advisory lanes.

