# Rendro v1.0.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)
  - [User Flows and Jobs To Be Done](user_flows_and_jtbd.md)

- Evaluation
  - [Generating PDFs in Elixir without Chrome](comparison.md)
  - [First Invoice With Rendro](first_invoice.md)

- Policies
  - [API Stability and Support Boundaries](api_stability.md)
  - [Upgrading to 1.0](upgrading_to_1-0.md)
  - [Viewer Evidence Recording](viewer_evidence.md)

- Recipes &amp; Primitives
  - [PAGE Primitive](page_primitive.md)
  - [Canonical Recipes](recipes.md)

## Modules

- [Rendro.Adapters.Pdfium](Rendro.Adapters.Pdfium.md): Optional runtime adapter for [pdfium-cli](https://github.com/klippa-app/pdfium-cli).
- [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.FormField](Rendro.FormField.md): Interactive form field content with deterministic authoring defaults.
- [Rendro.Link](Rendro.Link.md): Explicit authored link content wrapper with a narrow target contract.

- [Rendro.Path](Rendro.Path.md): Declarative vector-graphics block element for Rendro documents.

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

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

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

  - [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.Document](Rendro.Document.md): Top-level document: pages, content (flow), metadata, and rendering options.
  - [Rendro.EmbeddedFileRegistry](Rendro.EmbeddedFileRegistry.md): Pure data registry for document-owned embedded-file registrations.

  - [Rendro.Error](Rendro.Error.md): Structured diagnostics for render failures.
  - [Rendro.FontRegistry](Rendro.FontRegistry.md): Pure data registry for document-owned logical font registrations.
  - [Rendro.Image](Rendro.Image.md): AST representation of a registered image asset to be rendered.

  - [Rendro.Metadata](Rendro.Metadata.md): Input metadata for a rendered PDF document.
  - [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.Row](Rendro.Row.md): Row primitive for explicit table fragmentation configuration.

  - [Rendro.RunningContent](Rendro.RunningContent.md): Wraps a per-page content function for use in running header/footer regions.
  - [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.
  - [Rendro.Text.Shaper](Rendro.Text.Shaper.md): Behaviour for text shaping adapters.
  - [Rendro.Text.Shaper.Simple](Rendro.Text.Shaper.Simple.md): Pure-Elixir text shaper. Uses cmap advance widths only — no NIF compilation required.

- 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.Certificate](Rendro.Recipes.Certificate.md): Data-driven certificate recipe for completion, compliance, and award certificates.
  - [Rendro.Recipes.Invoice](Rendro.Recipes.Invoice.md): Canonical invoice recipe using the Tiered Composition pattern.
  - [Rendro.Recipes.Receipt](Rendro.Recipes.Receipt.md): Payment receipt and tabular report recipe using the Tiered Composition pattern.
  - [Rendro.Recipes.Statement](Rendro.Recipes.Statement.md): Canonical account statement recipe using the Tiered Composition pattern.

- Ecosystem Adapters
  - [Rendro.Adapters.HarfBuzz](Rendro.Adapters.HarfBuzz.md): HarfBuzz text shaping adapter via the `harfbuzz_ex` NIF.
  - [Rendro.Adapters.Oban.RenderWorker](Rendro.Adapters.Oban.RenderWorker.md): Oban worker pattern for background PDF rendering.

  - [Rendro.Adapters.Pdfsig](Rendro.Adapters.Pdfsig.md): External binary adapter for Poppler's `pdfsig` tool.
  - [Rendro.Adapters.Phoenix](Rendro.Adapters.Phoenix.md): Phoenix integration for Rendro.
  - [Rendro.Adapters.PyHanko](Rendro.Adapters.PyHanko.md): Optional runtime adapter for pyHanko-based PDF signing.
  - [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.

- Signing
  - [Rendro.Sign](Rendro.Sign.md): Artifact-first signing boundary.
  - [Rendro.Sign.Adapter](Rendro.Sign.Adapter.md): Optional behaviour for external signing adapters.

- Inspection &amp; Observability
  - [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.

- Storage
  - [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.

- Exceptions
  - [Rendro.AssetRegistry.InvalidAssetError](Rendro.AssetRegistry.InvalidAssetError.md): Raised when a registered asset fails validation (missing file, unsupported format, etc.).

  - [Rendro.FontRegistry.EmbeddedFontFamilyError](Rendro.FontRegistry.EmbeddedFontFamilyError.md): Raised when an embedded font family registration fails due to missing or unexpected variants.

## 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.api.gen](Mix.Tasks.Rendro.Api.Gen.md): Introspects all public Rendro modules for their `tags: [:stable|:adapter]`
annotation and writes `priv/public_api.json`.
- [mix rendro.comparison.check](Mix.Tasks.Rendro.Comparison.Check.md): Verifies the committed comparison manifest and raw artifacts without rerunning
benchmarks or launching external comparator tools.
- [mix rendro.comparison.gen](Mix.Tasks.Rendro.Comparison.Gen.md): Generates comparison benchmark artifacts.
- [mix rendro.launch_artifacts.check](Mix.Tasks.Rendro.LaunchArtifacts.Check.md): Regenerates launch artifact hashes and compares them to
`assets/rendro/artifacts.json` without writing repo files.
- [mix rendro.launch_artifacts.gen](Mix.Tasks.Rendro.LaunchArtifacts.Gen.md): Generates the public launch artifact set
- [mix rendro.livebook.check](Mix.Tasks.Rendro.Livebook.Check.md): Converts `guides/livebook/first_invoice.livemd` with
`Livebook.live_markdown_to_elixir/1` and executes the resulting script with
`RENDRO_LIVEBOOK_LOCAL=1`.
- [mix rendro.viewer_evidence](Mix.Tasks.Rendro.ViewerEvidence.md): Operator tooling for viewer-evidence coverage gaps in `priv/support_matrix.json`.
- [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.

