Variable text and barcodes
Variable text is computed from a template with dynamic sources — a serial number, date/time, lines from a file — and inherits all regular text parameters: font, spacing, Touch Type. Barcodes use the same template engine for variable content.
The template
Everything outside the tokens is fixed text; the + Serial, + Date, and + File buttons insert sources:
SN-{serial:0000}-{date:yyyy-MM-dd}-{file:data.csv:0}
When the template is edited, the sources’ state (the current counter, the current file row) is preserved.
Sources
- Serial number: number base (decimal or hexadecimal), start value,
increment — including a negative one for counting down, repeating one
value for several marks in a row, a limit that wraps back to the start,
and a number format (zero padding, e.g.
0000→0042). - Date/time: a .NET format string (e.g.
yyyy-MM-dd); the value comes from the system clock and refreshes itself before every mark. - File data: a text or CSV file, column index, separator, looping over the rows after the end of the file. Errors (missing file, empty file, row out of range) are shown to the operator explicitly.
Advancing values
- Auto-advance after marking (on by default): after every successful mark all sources advance — the serial number by its increment, the file to the next row.
- The Advance button moves to the next value manually.
Behavior in arrays and containers
- In an array every copy gets its own value: N copies = N advances per mark — the same “serial per copy” semantics as EzCad.
- In live symmetry the source and its mirror keep one value per mark.
- Breaking text into characters (Ctrl+U) freezes variable text at its current value.
Barcodes
A barcode in Zenom is a vector object: modules and bars are built as outlines and marked like regular geometry — hatching applies.
- Formats: QR Code, DataMatrix, Code 128, EAN-13, Code 39.
- Content — a fixed string or a template with the same Serial / Date / File sources; auto-advance after marking works the same way.
- Size: dimensions are set in mm; changing width and height does not distort the code — the module size is recalculated and 2D codes are centered in the given rectangle.
- Error correction (L/M/Q/H) — QR Code only.
- The “Show text” label on 1D codes — a human-readable line under the bars, inside the same dimensions; the text fits itself to the width.
- In arrays variable content advances like text: N copies = N values.
Limitations
- There is no “keyboard prompt before marking” source (the EzCad keyboard prompt) — only Serial / Date / File / fixed text. The workaround is editing the template before marking.
- No barcode inversion (light modules on a dark background cannot be built).
- The quiet zone in the encoder is zero — provide margin around the code by placement.
- Error correction is ignored for formats other than QR.
- No other symbologies (PDF417, Aztec, UPC-A, Code 93, etc.).
Related topics
- Text and fonts — base text parameters and Touch Type.
- Editing and operations — arrays, symmetry, converting to paths.