Modules
Pure-Elixir, Phoenix-first PDF/document generation with deterministic layout and pagination.
HarfBuzz text shaping adapter via the harfbuzz_ex NIF.
Oban worker pattern for background PDF rendering.
Optional runtime adapter for pdfium-cli.
External binary adapter for Poppler's pdfsig tool.
Phoenix integration for Rendro.
External binary adapter for Poppler's pdfinfo tool. Provides structural validation of generated PDF files.
Optional runtime adapter for pyHanko-based PDF signing.
Optional runtime adapter for qpdf-based PDF protection.
A pure data carrier containing the rendered PDF bytes, a deterministic hash, and structured diagnostics from the render pipeline.
State container for registered assets and their metadata.
Raised when a registered asset fails validation (missing file, unsupported format, etc.).
Content container with position and size.
Cell primitive for explicit table fragmentation configuration.
Component-based layout pattern for reusable PDF UI parts.
Top-level document: pages, content (flow), metadata, and rendering options.
Pure data registry for document-owned embedded-file registrations.
Structured diagnostics for render failures.
Pure data registry for document-owned logical font registrations.
Raised when an embedded font family registration fails due to missing or unexpected variants.
Interactive form field content with deterministic authoring defaults.
AST representation of a registered image asset to be rendered.
Deterministic layout inspector for ASCII snapshot testing. Provides string serialization of document structure and diagnostics.
Explicit authored link content wrapper with a narrow target contract.
Input metadata for a rendered PDF document.
A page with blocks, dimensions, and margins.
Explicit flow-page layout template with page geometry and named regions.
Declarative vector-graphics block element for Rendro documents.
Artifact-first PDF protection boundary.
Behavior for artifact protection adapters.
Canonical PDF recipes for standard document types.
Branded canonical invoice recipe using the Tiered Composition pattern.
Data-driven certificate recipe for completion, compliance, and award certificates.
Canonical invoice recipe using the Tiered Composition pattern.
Payment receipt and tabular report recipe using the Tiered Composition pattern.
Canonical account statement recipe using the Tiered Composition pattern.
Bounded layout region with named role and anchoring metadata.
Row primitive for explicit table fragmentation configuration.
Wraps a per-page content function for use in running header/footer regions.
Reusable flow section that targets a named template region.
Artifact-first signing boundary.
Optional behaviour for external signing adapters.
Behavior for artifact storage adapters.
A simple local filesystem storage adapter for Rendro artifacts.
Table primitive for structured data.
Telemetry event definitions and helpers for the Rendro render pipeline.
Text content with logical font, size, and color attributes.
Behaviour for text shaping adapters.
Pure-Elixir text shaper. Uses cmap advance widths only — no NIF compilation required.
Mix Tasks
Runs the canonical docs-contract verification command.
Runs preflight checks before release.
Introspects all public Rendro modules for their tags: [:stable|:adapter]
annotation and writes priv/public_api.json.
Verifies the committed comparison manifest and raw artifacts without rerunning benchmarks or launching external comparator tools.
Generates comparison benchmark artifacts.
Regenerates launch artifact hashes and compares them to
assets/rendro/artifacts.json without writing repo files.
Generates the public launch artifact set
Converts guides/livebook/first_invoice.livemd with
Livebook.live_markdown_to_elixir/1 and executes the resulting script with
RENDRO_LIVEBOOK_LOCAL=1.
Operator tooling for viewer-evidence coverage gaps in priv/support_matrix.json.
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.
Runs full verification suite with deterministic and advisory lanes.