Files
OSIT-AE-App-Svelte/documentation/GUIDE__AE_Events_Badges_Onsite.md
Scott Idem 518a450b91 docs(events): reorganize badges and leads documentation
Standardized documentation structure for Badges and Leads modules into
focused technical references and practical onsite guides.

- Refined MODULE__AE_Events_Badges.md (Core data integrity & sync logic)
- Renamed MODULE__AE_Events_Exhibitor_Leads.md to MODULE__AE_Events_Leads.md
- Renamed MODULE__AE_Events_Badges_Onsite.md to GUIDE__AE_Events_Badges_Onsite.md
- Expanded GUIDE__AE_Events_Onsite_Runbook.md with Badge and Leads sections.
- Maintained all critical business logic, including the 'Override Fields' pattern.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 22:40:06 -04:00

8.1 KiB
Raw Blame History

Aether Events — Onsite Badge Printing

Notes on setup, process, hardware, and browser behavior for onsite badge printing at events.


Overview

Aether badge printing uses the browser's native window.print() — no special software or print server needed. The badge render page (/events/[event_id]/badges/print/[badge_id]) outputs print-ready HTML/CSS, and the browser sends it directly to the connected printer via CUPS (Linux) or the OS print system (macOS/Windows).

Chrome (Chromium) is the recommended browser for onsite kiosk stations. Firefox is a solid alternative, especially for Save-to-PDF workflows.


  1. Open the event's badge printing page: /events/[event_id]/badges
  2. Search for the attendee (name, badge ID, or QR scan)
  3. Open the badge print page — review the rendered badge
  4. Click Print Badge in the controls panel (or use keyboard shortcut)
  5. In the browser print dialog:
    • Set Margins to None (Chrome) or leave defaults (Firefox)
    • Confirm paper/card size matches the stock loaded in the printer
    • Print
  6. print_count increments automatically on each print via the Print Badge button

For high-volume events, consider the rapid QR scan mode in the Leads module or using a dedicated kiosk session where the operator only handles physical card handoff.


Browser Settings

Chrome is recommended for onsite badge printing stations. Key print dialog settings:

Setting Correct value Notes
Margins None or Minimum Default margins add URL/date headers — breaks badge centering
Paper size Match card stock (e.g. 3.5" × 5.5") Zebra driver may override this automatically
Background graphics On Required for colored header/footer stripe to print
Pages 1 PVC single-sided — only front should print

Important: Chrome ignores CSS @page { size } for Save to PDF — it defaults to letter/A4. For physical printer output, the printer driver controls paper size. This is expected behavior.

To lock Chrome settings for a kiosk, set Margins to "None" once and Chrome remembers per-printer.

Firefox

Firefox honors CSS @page { size } which makes it ideal for PDF generation. For physical printing, Firefox generally "just works" without margin adjustments.

Setting Notes
Paper size Can be set in dialog, but CSS @page { size } is honored
Margins Default is usually fine; remove headers/footers if they appear
Background graphics Enable for colored stripes and header images to print

General Notes

  • Background graphics must be enabled in any browser — otherwise header images, footer color stripes, and tonal backgrounds will not print.
  • Private/incognito mode blocks PWA install prompts — use normal browser sessions for kiosk.
  • For highest reliability, set the kiosk machine to auto-login and open Chrome to the event URL.

Linux / CUPS Setup

For Linux workstations and dedicated kiosk machines running Linux:

  1. Install CUPS if not already present: sudo pacman -S cups (Arch) or equivalent
  2. Start the CUPS service: sudo systemctl enable --now cups
  3. Open the CUPS web UI: http://localhost:631
  4. Add the printer and install the appropriate driver (see per-printer sections below)
  5. Print a test page from CUPS to confirm card feed and quality
  6. In Chrome: select the CUPS printer name under Destination in the print dialog

On macOS and Windows, use the vendor-provided driver installer.


Printers


Zebra ZC10L — PVC Card Printer

Card stock: 3.5" × 5.5" PVC cards (CR80 extended) Tested: 2026-03-17 (rental test day, Arch Linux) Status: Working. Confirmed suitable for Axonius NYC (mid-April 2026).

Physical Setup

  • Connect via USB (the ZC10L supports USB and Ethernet)
  • Load PVC card stock per the Zebra loading instructions — cards face-up, landscape
  • The ZC10L prints one side (single-sided dye-sub thermal); do not attempt duplex on PVC stock

Linux Driver

  • Download the Zebra ZC10L CUPS driver from zebra.com (ZC Series Linux support)
  • Install the .deb or extract the PPD file and add to CUPS manually
  • In CUPS (http://localhost:631), add the printer and select the ZC10L PPD
  • Set default paper size to 3.5" × 5.5" (or CR80 Extended if listed)
  • Print a blank test page from CUPS before using Chrome

Note: Driver version tested: (update here after confirming) CUPS printer name used: (update here after setup)

Chrome Print Settings (ZC10L)

Setting Value
Destination Zebra ZC10L (CUPS name)
Paper size 3.5 × 5.5 in (or as set in CUPS)
Margins None
Background graphics On
Pages 1 (front only)

CSS Layout

The ZC10L uses the badge_3.5x5.5_pvc layout. The PVC layout CSS is at: src/routes/events/[event_id]/(badges)/badges/print/badge_layout_zebra_zc10l_pvc.css

This layout hides .badge_back in @media print — only the front face prints. @page { size: 3.5in 5.5in; margin: 0; } is set in the CSS.

Known Behaviors / Watch-outs

  • Chrome with Default margins: inserts URL/date headers, offsets badge — use None
  • Chrome with None or Minimum margins: correct output
  • Firefox: works correctly out of the box with this layout
  • Physical card alignment: if the badge appears offset on the card, a CSS margin tweak may be needed in the PVC layout file — note the offset and adjust print_margin_cfg once that field is wired to the UI
  • Font sizes: if name/affiliation text appears too small at physical scale, adjust via the font size controls (+ / ) in the print controls panel; note the preferred values for this event's template

Test Results (2026-03-19)

  • Card feeds and prints without jam:
  • Single-sided PVC confirmed (back does not print):
  • Chrome margins None/Minimum: correct output
  • Firefox: correct output
  • QR code scannable from printed card:
  • Print tracking (print_count increment):
  • Font sizes / visual quality: tested; specific calibration pending client design direction
  • Driver version: (record here)
  • Physical offset needed: (record if any)

Epson — Fan-Fold / Label Printer

Status: Not yet tested. Section to be filled in after testing.

Common Epson models used for fan-fold name badge stock: TM-T88 series, C3500, LX series. Fan-fold stock is typically 4" × 3" or 4" × 6" paper labels.

CSS Layout

Fan-fold badges would use a layout sized to the specific label stock. A new CSS layout file will need to be created per stock size if not already present. Naming convention: badge_layout_epson_[model]_[size].css

Setup Notes

(To be filled in after testing — cover: driver source, CUPS setup, paper size, Chrome settings)

Known Behaviors

(To be filled in after testing)


Print Tracking

The badge print page tracks print counts per badge:

  • print_count — increments on each Print Badge button click
  • print_first_datetime — timestamp of first print
  • An amber "Printed N×" chip appears in the print page header after the first print

The reprint shortcut (trusted access + edit mode) does not increment the count. Only the Print Badge button path increments the count. This is intentional — reprints for alignment or quality checks should not inflate the print count.


Troubleshooting

Symptom Cause Fix
White border around printed badge Chrome Default margins Change to None or Minimum
URL / date printed at top or bottom Chrome Default margins Change to None
Header image / stripe not printing Background graphics disabled Enable in print dialog
Badge appears on wrong-size output Paper size mismatch Set correct size in CUPS and/or print dialog
Card jams Card stock misloaded Re-seat cards per printer manual; check stock orientation
Badge content clipped Layout overflow Check font size — use control to reduce if needed
Second blank card ejected Duplex triggered on PVC Confirm .badge_back { display: none } in print CSS for this layout