^ID - Image Delete
Deletes a stored object from printer memory.
^ID removes a stored object so that a printer's memory does not fill up. The guide
calls it Object Delete, because it deletes graphics, fonts, encoding tables and stored
formats, and not images only. The guide documents it inside a format that stores a
replacement. The renderer does not implement the asterisk wildcard: ^IDR:*.GRF
deletes nothing here, and Labelary clears every stored graphic.
Syntax
^IDd:o.xSupport
The command renders, with the caveat below.
Deletes by exact object name. The renderer does not implement the asterisk wildcard, so ^IDR:*.GRF deletes nothing. — not pinned by a test
Labelary renders this command.
Parameters
dStorage deviceoptional · single characterWhich memory device to delete from.
- Default
- R:
- Invalid value
- discarded, and the default applies. This service keeps one object store, so the device letter does not narrow the search.
- Test coverage
- The invalid-value rule is not pinned by a test.
oObject nameoptional · textName of the object to delete. The guide accepts * as a wildcard, so ^ID*.* clears the store.
- Default
- UNKNOWN
- Invalid value
- not possible — any value is accepted. A name that was never stored is not an error, and reports no diagnostic. The renderer takes an asterisk literally, not as a wildcard; see the deviations.
- Test coverage
xExtensionoptional · textExtension of the object to delete. * matches any extension.
- Default
- .GRF
- Invalid value
- discarded, and the default applies. The extension takes no part in the lookup, because the renderer stores objects under their bare name. So
^IDR:LOGO.PNGdeletes the graphic downloaded asLOGO.GRF. - Test coverage
- The invalid-value rule is not pinned by a test.
Behavior
^ID takes effect in the order it appears, so a delete before a recall of the same
name leaves the recall with nothing to draw. The delete-then-save pattern depends on
this: delete the old object first, then store the new object under the same name.
A delete of a name that no download stored is not an error and reports no diagnostic, so a mistyped name is silent. The guide agrees: the printer ignores the command when it finds the object on no device.
The device letter and the extension play no part in the lookup here, because the
renderer holds an object under its bare name. ^IDR:LOGO.PNG deletes the graphic that
arrived as LOGO.GRF. On a printer, a delete from R: frees the memory at once, and
the other devices recover the space at the next defragmentation.
^ID is not a field, but the guide writes an ^FS after it, and a printer accepts both
forms.
Differences from the specification
zpl.tools against the ZPL II guide
Where our renderer behaves differently from the specification.
- The renderer does not implement the asterisk wildcard.
^IDR:*.GRFlooks for an object literally named*, finds none and deletes nothing. Delete objects by their exact name. — not pinned by a test
zpl.tools against Labelary
Where our output differs from Labelary for the same input. These are the differences that break a migration.
- Labelary honors the wildcard. We measured this on 2026-07-29:
^IDR:*.GRFremoved a graphic stored asLOGO.GRFthere and left it in place here. — not pinned by a test
Example
Two labels. The first draws the graphic; the second deletes it by name and then tries to recall it, so only the text prints:
~DGR:LOGO.GRF,00080,010,
FFFFFFFFFFFFFFFFFFFF
8000FFFF0000FFFF0001
8000FFFF0000FFFF0001
8000FFFF0000FFFF0001
FFFF0000FFFF0000FFFF
FFFF0000FFFF0000FFFF
FFFF0000FFFF0000FFFF
FFFFFFFFFFFFFFFFFFFF
^XA
^FO50,50^XGR:LOGO.GRF^FS
^XZ
^XA
^IDR:LOGO.GRF^FS
^FO50,50^A0N,30,30^FDlogo deleted^FS
^FO50,120^XGR:LOGO.GRF^FS
^XZ
Related commands
~DGDownload GraphicDownloads an ASCII-hex bitmap into printer memory as a `.GRF` object.^XGRecall GraphicDraws a previously downloaded graphic, optionally magnified.^EG / ~EGErase Download GraphicsErases every stored `.GRF` graphic from all writeable devices.