AppKatzAppKatz Kits
Small tools. Useful work. Yours to keep.
Print tools / Free browser-local workspace

LabelFlow

One design. Every detail in its place. Turn rows into labels with variable text, local images and scannable codes, then check the whole batch before export.

CSV + manual recordsPDF at real dimensionsOne offline HTML
Start with a synthetic example or add records and label objects.
LabelFlow workspace

Project

Projects include records and normalized local images. Templates include design, sheet setup and expected fields. Save before closing: nothing is stored automatically.

1. Records & assets

Required values & unique identifiers

Unique means unique across physical labels, including repeated copies. Select a serial for a unique label ID; quantities repeat ordinary field values.

Values remain strings, including leading zeros. A quantity field must contain a positive whole number. Click a record to preview it; the label selector includes every physical copy.

Local image shelf

Use a shelf ID as image content, or bind a field containing that ID. Images are normalized to PNG; metadata is removed. No remote image URLs.

2. Label designer

Drag to move, use the corner handle to resize, or enter exact dimensions. All positions are measured from the label's top-left corner.

Label preview / schematic screen scale

Arrows move the selected object 0.1 mm; Shift + arrow moves 1 mm. White code boxes reserve quiet zones and must stay clear.

Sheet geometry & serials

Dimensions use the selected display unit. Label size is never silently scaled to fit.

Slots run left to right, then top to bottom. Skip applies only to the first sheet. Serials increment for each physical label; preview and repeated exports never advance the saved start.

Gray = already used · teal = labels in this job · white = unused. Sheet preview shows the first page.

3. Preflight & export

Check the batch before producing label files.

PDF uses exact physical page and label dimensions with vector code modules. Text and images are rendered locally at the selected resolution. PNG records the chosen DPI in its resolution metadata; SVG keeps vector modules and text, whose font appearance can vary on other systems. Exports require the entire batch to pass.

Print the PDF at Actual size / 100%, without Fit to page. First print the calibration sheet on plain paper, measure the 25.4 mm bar, and compare the grid against the label stock. This tool does not control a printer driver or send print jobs.

Design once. Check the whole run.

Useful for

Workshop stock, small-batch packaging, internal assets and dispatch labels. Import CSV or edit records, add local images, then bind objects to fields. Synthetic examples demonstrate stock codes, EAN-13 and address labels.

  1. Load records and choose an optional quantity field.
  2. Set the measured page, margins, label size and gutters.
  3. Place objects and use plain {{field}} bindings. Add visibility conditions for optional content.
  4. Set serials and any used first-sheet slots.
  5. Check every label, resolve errors and export. Save your project.

Codes & identifiers

Code 128 supports printable ASCII; no FNC, GS1-128 or control-character mode. EAN-13 requires all 13 digits with a valid check digit. QR uses UTF-8 with ECI 26, medium or stronger error correction, and versions 1–10.

Code 128 reserves 10 modules on each side; EAN-13 reserves 11 left / 7 right; QR reserves four on every side. Minimum module checks: 0.25 mm, 0.264 mm and 0.3 mm respectively. These are practical preflight thresholds, not a scanner-compliance certification. Human-readable EAN digits can be a separate bound text object.

Generated numbers do not allocate GS1 identifiers. Example identifiers are test data. Verify the receiving system's requirements and test your actual printed codes and scanner.

Limits & precision

200 records, 300 physical labels, 30 fields, 20 objects, 12 images and 80 pages per job. CSV: 1 MiB; JSON: 16 MiB. Each image: 2 MiB, 2048 pixels per edge / 4 megapixels; 6 MiB normalized images in a project. Only static PNG/JPEG imports.

PDF raster work is capped at 72 million pixels total and 8 million per label. Large labels at 600 DPI may require smaller batches. Jobs yield between labels, support cancellation and have a four-minute timeout.

Dimensions use integer 0.001 mm units; inches convert at exactly 25.4 mm. Finer inputs round explicitly. No irregular die cuts, rotated objects, automatic font shrinking, external data connections, printer control or automatic sending.

Privacy & persistence

Code, libraries, documentation and logo are embedded in this file. Data and image processing stay in the tab. No analytics, external fonts, backend or runtime network dependency. CSP blocks outgoing connections; offline browser tests inspect requests.

Projects contain exact records and normalized images. Templates omit records but include image assets and expected fields. Neither format is encrypted. Closing or reloading loses unsaved work. Undo is bounded to recent edits.

Protected CSV prefixes risky spreadsheet cells with an apostrophe and reports how many changed. Disable protection only after reviewing the warning. Use JSON for exact recovery.

Troubleshooting

Text does not fit? Enlarge its box or reduce the point size. Nothing is silently truncated. Check uncommon Unicode characters visually; rendering depends on installed fonts.

Missing image? Add a local file under the exact shelf ID used by that record. SVG/remote images are not accepted.

Duplicate identifiers? Uniqueness checks include repeated copies. Use {{__serial}} for a distinct label identifier when the product SKU repeats.

Code is too small? Enlarge its box and leave its white quiet zone clear. A digital decode test does not verify physical print quality.

Libraries & notices

This file embeds JsBarcode 3.12.1, Project Nayuki's QR Code generator and pdf-lib 1.17.1 under MIT licenses. Their notices are included below. Other barcode formats present in the encoder are not exposed or claimed as supported.

Open-source license notices
JsBarcode 3.12.1
Copyright (c) 2016 Johan Lindell ([email protected])

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


pdf-lib 1.17.1
MIT License

Copyright (c) 2019 Andrew Dillon

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


Project Nayuki QR Code generator
/*
 * QR Code generator library (compiled from TypeScript)
 *
 * Copyright (c) Project Nayuki. (MIT License)
 * https://www.nayuki.io/page/qr-code-generator-library
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of
 * this software and associated documentation files (the "Software"), to deal in
 * the Software without restriction, including without limitation the rights to
 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 * the Software, and to permit persons to whom the Software is furnished to do so,
 * subject to the following conditions:
 * - The above copyright notice and this permission notice shall be included in
 *   all copies or substantial portions of the Software.
 * - The Software is provided "as is", without warranty of any kind, express or
 *   implied, including but not limited to the warranties of merchantability,
 *   fitness for a particular purpose and noninfringement. In no event shall the
 *   authors or copyright holders be liable for any claim, damages or other
 *   liability, whether in an action of contract, tort or otherwise, arising from,
 *   out of or in connection with the Software or the use or other dealings in the
 *   Software.
 */

PDF text/images use the browser's local font renderer; code modules are vector rectangles. Check print scaling, stock alignment, ink contrast and scanner performance on your own equipment.