Auto-print receipts (skip the dialog)

Launch Chrome with one flag so receipts print straight to the default printer.

By default, every time you click Print receipt at the checkout desk Chrome pops a print dialog and waits for you to confirm. That extra click adds up over a busy Sunday. The fix is a one-time Chrome setup that tells the browser to skip the dialog and send straight to your default printer.

What's happening

The web platform deliberately makes `window.print()` show a dialog — websites can't silently print without your permission. Chrome offers an opt-in flag, `--kiosk-printing`, that lets the library skip the dialog for trusted, intentional print jobs like a checkout receipt.

You only need to launch Chrome with the flag once on the checkout-desk computer. Other devices (your phone, your home laptop, the cataloguer's machine) keep showing the dialog as normal.

Step 1 — Set your default printer

The kiosk-printing flag sends jobs to whatever the operating system says is the default printer. So before you do anything Chrome-side:

  • macOS: System Settings → Printers & Scanners → click your receipt printer → "Set as default"
  • Windows: Settings → Bluetooth & devices → Printers & scanners → uncheck "Let Windows manage my default printer" → click your printer → Set as default
  • ChromeOS: Settings → Advanced → Printing → Printers → click the printer → set as default

Step 2 — Launch Chrome with the kiosk-printing flag

You need to start Chrome with `--kiosk-printing` (and ideally `--no-first-run` so existing sessions aren't disrupted). The flag only applies for that launch — close Chrome and reopen normally and the dialog comes back.

## macOS

Open Terminal (Spotlight → "Terminal") and run:

```

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --kiosk-printing

```

To make this a desktop shortcut: open Script Editor → File → New, paste:

```

do shell script "open -a 'Google Chrome' --args --kiosk-printing"

```

Save as Application (not Script) — e.g. "Checkout Chrome.app" on the Desktop. Double-click it to launch Chrome in silent-print mode. Drag it to the Dock for one-click access.

## Windows

Right-click your existing Google Chrome shortcut → Properties → in the Target field, add ` --kiosk-printing` to the end (note the leading space). The full target looks like:

```

"C:\Program Files\Google\Chrome\Application\chrome.exe" --kiosk-printing

```

Click OK, then double-click the shortcut as normal. (Tip: copy the shortcut first, name the copy "Checkout Chrome", and modify only that copy — your other Chrome shortcuts stay regular.)

## ChromeOS

Chromebooks don't easily expose the flag from the GUI. The simplest workaround is the `crosh` shell:

```

Ctrl+Alt+T → type: shell → then: google-chrome --kiosk-printing

```

Most church libraries running on a Chromebook just accept the print dialog and press Enter — that's also fine.

Step 3 — Test it

With kiosk-printing Chrome running:

1. Sign in to Shelfwise as a librarian

2. Go to /checkout, scan a barcode, complete a checkout

3. Click "🖨 Print receipt"

A small popup window should briefly appear, the receipt should print without any dialog, and the popup should close itself. Total time: about a second.

If the dialog still shows, double-check:

  • You actually launched Chrome from the shortcut/script with the flag (not just any Chrome window)
  • Your default printer is correctly set in the OS, not in Chrome
  • The receipt window isn't being blocked by a popup blocker — allow popups for your library subdomain

When to skip this

A lot of libraries actively prefer the dialog — it lets staff change paper size, select a different printer, or skip printing entirely. If a printed receipt isn't essential for you:

  • Turn off the printer entirely. The email receipt sent automatically at checkout doubles as the patron's record.
  • Or just accept the dialog and hit Enter — modern Chrome remembers your last choice, so it's just one keystroke after the first time per session.

Troubleshooting

## "It's printing to a different printer, not my receipt printer"

The Windows default printer isn't always what Chrome uses. Two things to check, in order:

**1. Turn off "Let Windows manage my default printer"** — when this Windows setting is on, the OS auto-switches the default to whatever you last printed to. Open Settings → Bluetooth & devices → Printers & scanners → scroll down → uncheck "Let Windows manage my default printer". Then click your receipt printer in that same list and click "Set as default".

**2. Tell Chrome to remember the receipt printer** — Chrome keeps its own "last used printer" per profile, separate from the Windows default. This is what the --kiosk-printing flag actually uses. You set it once from a *normal* Chrome window (not the receipt popup):

> ⚠️ **Don't try this inside the receipt popup window.** That popup is designed to auto-close after printing, so the print dialog closes before you can pick a printer. You need a completely separate Chrome window.

  • **Close every** Chrome window launched from your kiosk-printing shortcut. Any Chrome window inheriting --kiosk-printing will silent-print instead of showing the dialog.
  • Open Chrome from your **regular** Start-menu / Taskbar shortcut — NOT the kiosk-printing one.
  • Go to any normal webpage (google.com works).
  • Press **Ctrl+P**. This time the dialog stays open.
  • In the **Destination** dropdown, pick your receipt printer.
  • Click **Print** — Chrome now permanently remembers that as your last-used printer for this profile. The page that prints will be mostly blank; that's fine.
  • Close the regular Chrome window.
  • Relaunch Chrome from the **kiosk-printing** shortcut.
  • Try a checkout receipt again. It should now land on the receipt printer silently.

Chrome's last-used printer preference persists across restarts and is shared across all Chrome windows on the same profile — including the kiosk-printing ones. You only need to do this once.

## Other things to check

The popup window opens but nothing prints: your default printer is offline or not connected. Check the printer light + paper.

The notification says a different printer is offline: that printer is what Chrome thinks is your last-used. Follow step 2 above to switch it.

Multiple receipts print at once: you have multiple browser tabs / windows open from prior sessions. Close them.

The popup window won't close: the print job was cancelled, so the browser's "afterprint" event never fired. The window stays open until you close it manually — annoying but not broken.

Receipt is cut off: switch your receipt printer's paper width in Settings → Receipts to match your hardware (2.25" vs 3.125").

For anything weirder, email hello@tryshelfwise.com with a screenshot of the receipt window.

Still stuck? Email hello@tryshelfwise.comand we'll get back within one business day.