{{ csvError }}
Columns: content (required), label, copies, back, backlabel.
A header row is optional; without one the order is content, label, copies, back, backlabel.
The quiet zone is the clear space the SCANNER needs and it stays wrapped around the code. The gap is only the space between the code and its caption, and it adds to the quiet zone rather than eating into it.
{{ fitAdvice }}
Content moves the code and caption INSIDE the label and leaves the label where it is. Media moves the whole printed area on the stock - that one is for a printer whose origin is off, not for composing a label.
The picture never leaves the browser, so this works on an air-gapped site. It is also NOT remembered between visits, unlike the sizing - an image is far too big to keep in the settings the page saves. A watermark behind a code costs the scanner contrast: keep the opacity low and test a scan before printing a run.
Duplex printer: keep page order interleaved and set the driver to double-sided, flip on SHORT edge for portrait card stock - long edge prints the back upside down. Single-sided printer: choose grouped, print the run, flip the whole stack keeping its order, and print the second half. Print one card both ways before committing the box.
Showing the first {{ MAX_LABELS }} labels. {{ truncated }} more were left out - split the CSV and print it in batches.
{{ overlong.length }} row(s) could not be encoded as CODE128 or were empty: {{ overlong.slice(0, 3).join(', ') }}{{ overlong.length > 3 ? ' ...' : '' }}