Plain English

Writes the **current label format** (everything between `^XA` and `^XZ` in the same job) to a named file on a printer storage device. The path takes the standard `d:name.ext` form: `d` is the storage device — `R:` volatile RAM (lost on power-off, fastest), `E:` onboard flash (default if `d:` omitted; **persists across power cycles**), `B:` optional non-volatile memory module if fitted. `^DF` is the **producer side** of the `^DF`/`^XF` template pattern: store once with `^DF`, then recall many times with `^XF` and inject per-print data via `^FN` variable substitution. The job that contains `^DF` does NOT print — it stores the format.

When to use

For label layouts reused with different data per print (shipping labels, badges, asset tags). Write to `E:` for production firmware so the template survives reboot; `R:` is fine during development for quick iteration. Always pair `^DF` with `^XF` (recall) and `^FN` (numbered variable placeholders) — `^DF` is meaningless without a downstream `^XF`. Saves transmission bandwidth: send the full layout once at provisioning, then transmit only the variable data per print.

Syntax

^DFd:o.x

Parameters

ParameterDescription
dStorage device: `R:` RAM (volatile, fast), `E:` flash (default, persistent across power cycles), `B:` optional memory module
o.xFilename including extension (typically `.ZPL` or `.GRF`); 1–8 character base name per Zebra firmware limits

Example

^XA
^DFE:SHIPPING.ZPL
^FO50,50^A0N,30,30^FN1^FS
^FO50,100^BY2^BCN,80,Y^FN2^FS
^XZ

Stores a two-field shipping template to onboard flash (`E:SHIPPING.ZPL`) — `^FN1` for address line, `^FN2` for tracking-number barcode. Persists across power cycles. Recall later with `^XFE:SHIPPING.ZPL` and supply field data via `^FN1^FD…^FS` / `^FN2^FD…^FS`.

Try it in the playground View all ZPL commands