Printing & PDF Export
Both Prestart Checklists and Site Diaries can be exported as print-ready documents directly from the browser — no third-party tool required.
See also: Prestart Report for every prestart in a date range as a spreadsheet.
How to print
Prestarts: open the prestart detail, then click the Print action (toolbar or row action in the prestart list). The app opens /prestarts/{id}/print in a new tab and the browser’s print dialog appears automatically. Choose Save as PDF (or a physical printer) in the dialog.
Diaries: same flow — click Print from the diary list row or detail page. The print route resolves either a UUID or a human display ID (e.g. DIA-2026-0005), so links shared from the list work identically to direct UUID links.
If you cancel the dialog the rendered page stays open; you can re-print at any time via File → Print.
On the phone, Print prints the same page through the phone’s print sheet.
Saving as PDF names the file after the record:
- Diary:
<Supervisor>'s Daily Diary for <Mmm D, YYYY>, e.g. “Taylor Brooks’s Daily Diary for Sep 22, 2026”. - Prestart:
<Project> - Prestart <ID>.
What’s included
The exported document mirrors the full on-screen record. Every section is rendered whether or not it has data — empty sections show a “Not recorded” placeholder so nothing is silently omitted. The sections differ slightly by document type:
| Section | Prestart | Site Diary |
|---|---|---|
| Core details (date, shift, supervisor, location, status) | Yes | Yes |
| Custom fields | Yes | Yes |
| Activities | Yes (target qty / rate / resources) | Yes (target + logged qty) |
| Changes After Publish | Yes | Yes (mirrors linked prestart notes) |
| Resources (aggregated per-user) | Yes | — |
| Sign-ons (name, role, supplier, classification, worker type, ack. status) | Yes | — |
| Dockets (labour / plant / subcontractor / material / associated buckets) | — | Yes |
| Issues log | — | Yes |
| Alerts (mandatory, plus the optional ones acknowledged) | Yes | — |
| Shift handover notes | — | Yes |
| Weather snapshot (high/low temp, wet-bulb, wind, precipitation, humidity) | Yes | Yes |
| Photos grid (with thumbnail + link to full-res image) | Yes | Yes |
| File attachments table | Yes | Yes |
| Comments | Yes | Yes |
Every date and time prints in the project’s time zone, wherever the print is made. See Dates & Times.
Docket totals print only for people who can see docket pricing. For everyone else the Total columns are left off.
Photos render as a two-column thumbnail grid. Each card includes the filename, uploader, and a link to the full-resolution image stored in cloud storage — the link is live in the PDF so recipients can access the original.
Branding
The document header displays your organisation’s logo (uploaded in Org Settings), the organisation name, and the active project name. The footer records the generation timestamp and — for diary prints — the name of the user who triggered the print. If no logo is configured, the header falls back to “Lacroo Pro”.
A screenshot of an example print output can be added here once available.
Key files
| File | Purpose |
|---|---|
apps/web/src/app/prestarts/[prestartId]/print/page.tsx | Prestart print RSC — fetches + renders the full record |
apps/web/src/app/diaries/[diaryId]/print/page.tsx | Diary print RSC — fetches + renders the full record |
apps/web/src/app/_components/print/report-doc.tsx | Shared presentational primitives (ReportDocHeader, ReportSection, ReportDetailsTable, ReportPhotoGrid, …) |
apps/web/src/app/_components/print/report-print.css | Print-specific A4 stylesheet (imported by both print pages) |
apps/web/src/app/_components/print/custom-field-value.tsx | renderCustomFieldValue — maps raw JSONB values to human-readable strings |