zpl.tools
Printer configuration

~JN - Head Test Fatal

Turns the printhead element test on, so that a failed element halts the printer.

~JN is a switch, not a test run. It turns the printhead element test on, and the printer then halts the first time it detects a failed element.

Syntax

~JN

Support

Recognised, deliberately skippedparsed: none · state: none · rendered: none

Accepted and skipped, because it configures the printer rather than the label. It cannot change the rendered output, and Labelary skips it too.

The command enables a hardware self-test, and no printhead exists to test. The renderer does not parse this command. It reports IGNORED_COMMAND at info severity, which does not reach X-Warnings. Labelary is also silent, so the rendered label is identical in both engines. — not pinned by a test

Labelary renders this command.

Parameters

~JN takes no arguments.

Behavior

That state is sticky: after the printer sees an element failure, it stays in error until ~JO turns the test off or the power cycles. The guide adds a caution: the printer cannot receive data when the communications buffer is full, so the ~JO that clears the condition never arrives.

^JT schedules the test; ~JN and ~JO only decide whether a failure is fatal.

This API has no printhead to test, so the renderer ignores this command.

Differences from the specification

Labelary against the ZPL II guide

Where Labelary — our compatibility target — behaves differently from the printed specification.

  • Labelary describes ~JN as a printhead test. The guide describes it as a switch: it turns the head test option on, and the printer then halts when it detects an element failure. A render shows no difference, because neither implementation performs a test. — not pinned by a test

Example

The test made fatal ahead of a label. The label renders exactly as it would without the command:

^XA
~JN
^FO50,50^A0N,40,40^FDHead test fatal^FS
^XZ

Open in viewer