Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 2 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,7 @@ The **ZPL output** panel at the bottom shows the generated ZPL. It updates in re

File menu → **Import ZPL**: paste ZPL code directly, or open a `.zpl` file.

> Import is best-effort: simple labels (especially those originally created in this tool) come back cleanly, complex or machine-generated ones may lose detail. Use **Save design (.json)** to keep a fully editable copy. `.zpl` is a printer output format, not a design source.

The parser covers the most common ZPL commands. Anything it doesn't recognize is skipped and listed in the import report.
> Import round-trips text, barcodes, shapes, images (including printer-stored and compressed graphics), and label-header settings. The main gap is variable template fields (`^FN`/`^FV`/`^FE`), which have no editor equivalent. Anything the parser doesn't recognize is skipped and listed in the import report.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The parser also ignores ^FC (Field Clock) commands (see src/lib/zplParser.ts line 1800), which are commonly used for date/time stamps. It would be more accurate to include ^FC in the list of known gaps.

Suggested change
> Import round-trips text, barcodes, shapes, images (including printer-stored and compressed graphics), and label-header settings. The main gap is variable template fields (`^FN`/`^FV`/`^FE`), which have no editor equivalent. Anything the parser doesn't recognize is skipped and listed in the import report.
> Import round-trips text, barcodes, shapes, images (including printer-stored and compressed graphics), and label-header settings. The main gaps are variable template fields and date/time codes (^FN/^FV/^FE/^FC), which have no editor equivalent. Anything the parser doesn't recognize is skipped and listed in the import report.


### Multiple labels (pages)

Expand All @@ -92,7 +90,7 @@ File menu → **Add page** creates a new page. With multiple pages, the control

### Saving and loading

Use `.json` (File → Save Design) to save your work. It preserves every object exactly and can be reopened as a fully editable design. `.zpl` is a printer output format: use it to send to a printer, not to save your design.
Both `.zpl` and `.json` round-trip cleanly. `.zpl` preserves all printable content and works as a design source: re-import it and keep editing. `.json` (File → Save Design) additionally stores designer-only state that has no ZPL representation: locked/hidden objects, items excluded from export, custom object names, and group structure.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The claim that .zpl "round-trips cleanly" and "preserves all printable content" is a bit strong given that several ZPL commands (like ^FN and ^FC) are explicitly ignored by the parser. If a user relies on .zpl as their primary design source for labels containing these elements, they will lose data upon re-import. It is safer to qualify this statement and continue recommending .json for full fidelity.

Suggested change
Both `.zpl` and `.json` round-trip cleanly. `.zpl` preserves all printable content and works as a design source: re-import it and keep editing. `.json` (File → Save Design) additionally stores designer-only state that has no ZPL representation: locked/hidden objects, items excluded from export, custom object names, and group structure.
Both .zpl and .json support round-tripping for most common elements. .zpl preserves printable content supported by the editor and can work as a design source for many labels. However, .json (File → Save Design) remains the most reliable format as it preserves every object exactly and additionally stores designer-only state that has no ZPL representation: locked/hidden objects, items excluded from export, custom object names, and group structure.


---

Expand All @@ -107,7 +105,6 @@ Use `.json` (File → Save Design) to save your work. It preserves every object

## Limitations

- ZPL import covers the most common commands but not the full ZPL II command set. Labels using printer-stored images, downloaded graphics, or printer-specific extensions may not import completely.
- The canvas is a design preview, not a pixel-perfect simulation. Shapes, spacing, and positions match the print; text approximates Zebra's built-in font to within a few dots, but exact letterforms and anti-aliasing differ. For a faithful render, use the **Preview** in the bottom-right panel (powered by Labelary).
- Label preview requires a connection to `api.labelary.com`.
- The Labelary preview doesn't render every ZPL feature. Some less common elements (e.g. Codablock F barcodes) may be missing or wrong in the preview even when the actual print is fine.
Expand Down