PDF reports
Production wants paper: which rolls came in, how many files, how many gigabytes, verified by whom, with what hashes. IngestDeck generates that as a PDF — from a report template you design yourself in a built-in visual editor, rendered automatically against each run by the PDF Report node.
The report builder
Open it from Settings → Reports → PDF report builder (or the Edit in report builder button on a PDF Report node). It's a full design surface in three columns:
- Card palette (left) — the building blocks you can place.
- Page editor (center) — a true-scale preview of the page. Drag cards on, move them with snap-to-grid, resize with the handles. What you see is what the PDF renders.
- Card inspector (right) — settings for the selected card: which data field it binds to, background, border, colors, alignment.
The toolbar
- Report name — names the template.
- Template picker — switch between the built-in DIT Offload Report (immutable — editing it saves a copy) and your saved templates.
- New / Save / Delete / Restore defaults — template management; deleting asks first.
- Undo / Redo — full history per document (⌘Z / ⇧⌘Z); resets when you switch templates.
- Paper size & orientation — A4, Letter…, portrait or landscape.
- Export PDF — render the template with sample data right now, without running a workflow — the fastest way to iterate on a design.
The cards
| Card | What it renders |
|---|---|
| Files table | One row per copied file. The row layout is itself editable — double-click the card to open the row sub-builder and compose the columns (name, size, codec, hash, status…) exactly like laying out a miniature page. |
| Transfer routes | A diagram of the run's source → destination routes. Has its own sub-builder for configuration. |
| Stat cell | A single data-bound figure — total files, total bytes, duration, verified count… |
| Status badge | The run's outcome as a badge (completed / verified / failed). |
| File-type bar | A proportional bar of what file kinds the run carried. |
| Symbol / Separator / Background | Layout helpers — icons, divider rules, and page backgrounds (the Background card has a sub-builder for image/color). |
| Text & metadata fields | Free text plus data-bound production metadata — project, production, crew, location — pulled from the workflow's Info panel. Empty fields simply don't render. |
Multi-page behavior
A files table longer than the page paginates automatically; header and footer cards repeat on every page. The export is a real vector PDF — text stays text (selectable, searchable), not a screenshot.
Generating reports from a run
The PDF Report node renders your chosen template against upstream copy results and writes the PDF at each referenced copy's run-folder root — the paperwork lands next to the media it describes. Wire it after the copy (typically after a Wait-all if several branches feed it):
- Data source: the copy's per-file facts (what actually copied, sizes, hashes when verified). The report itself does no verification — pair it with a Verify add-on for signed numbers.
- Naming: optional wrap-subfolder and filename templates with the run-level tokens (run date, source name…).
- Multiple copies: reference several copy results and each gets its PDF in its own run folder.
v1 notes. The report aggregates all referenced results into one PDF per run folder; per-file tokens aren't available in its naming templates; it can't target a copy with multiple destinations (ambiguous save location — the diagnostics will say so); and it doesn't advance the global naming counter.
Real-world template ideas
- The daily offload report — production title + date header, transfer-routes diagram, stat cells (rolls / files / TB / verified), then the full files table with hashes. One per run folder, automatic, every day.
- The lab delivery sheet — minimal: project metadata, card name, file count, total size, checksum algorithm, and a status badge. Prints small, travels with the shuttle.
- The archive manifest — landscape, dense files table with codec/resolution columns for the vault's intake team.