{
  "schemaVersion": 1,
  "language": "dpl",
  "name": "DPL",
  "fullName": "Datamax Programming Language",
  "canonicalUrl": "https://rfid.me/reference/dpl/",
  "reuseNotice": "No reuse license is granted by this export. Consult the upstream package or repository terms before reusing the data.",
  "commandCount": 32,
  "commands": [
    {
      "command": "<STX>L",
      "name": "Start Label Format",
      "description": "Begins a label formatting block. All label commands and format records must appear between <STX>L and the terminating E command. Think of it as opening a new document — everything you draw goes inside this block.",
      "category": "system",
      "syntax": "<STX>L",
      "parameters": [],
      "whenToUse": "Always. Every DPL label must begin with <STX>L to enter label formatting mode.",
      "example": {
        "source": "<STX>L\nD11\n121100000100010Hello\nE",
        "description": "Start a label, set dot size, add text, and print"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-l/"
    },
    {
      "command": "<STX>c",
      "name": "Set Continuous Paper Length",
      "description": "Sets the label length in dots for continuous media. This tells the printer how far to feed between labels when no gap or mark sensor is used. At 203 DPI, 203 dots equals roughly 1 inch.",
      "category": "system",
      "syntax": "<STX>cNNNN",
      "parameters": [
        {
          "name": "NNNN",
          "description": "Label length in dots (4 digits, zero-padded)"
        }
      ],
      "whenToUse": "When using continuous (non-die-cut) media and you need to define a fixed label length.",
      "example": {
        "source": "<STX>c0406",
        "description": "Set continuous label length to 406 dots (approx 2 inches at 203 DPI)"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-c/"
    },
    {
      "command": "<STX>m",
      "name": "Set Metric Mode",
      "description": "Switches the printer to metric mode. Subsequent dimension commands that accept units will interpret values in millimetres rather than inches.",
      "category": "system",
      "syntax": "<STX>m",
      "parameters": [],
      "whenToUse": "When you want label dimensions and offsets specified in millimetres.",
      "example": {
        "source": "<STX>m",
        "description": "Switch to metric (millimetre) mode"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-m/"
    },
    {
      "command": "<STX>n",
      "name": "Set Imperial Mode",
      "description": "Switches the printer to imperial mode. Subsequent dimension commands will interpret values in inches. This is the default mode on most Datamax printers.",
      "category": "system",
      "syntax": "<STX>n",
      "parameters": [],
      "whenToUse": "When you want label dimensions and offsets specified in inches (the factory default).",
      "example": {
        "source": "<STX>n",
        "description": "Switch to imperial (inch) mode"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-n/"
    },
    {
      "command": "<STX>E",
      "name": "Print Stored Label Quantity",
      "description": "Prints the specified number of copies of the last stored label format. This lets you reprint without resending the entire label data.",
      "category": "system",
      "syntax": "<STX>ENNNN",
      "parameters": [
        {
          "name": "NNNN",
          "description": "Number of copies to print (4 digits, zero-padded)"
        }
      ],
      "whenToUse": "When you need to reprint the last label without resending it, or when printing multiple copies from a stored format.",
      "example": {
        "source": "<STX>E0005",
        "description": "Print 5 copies of the last stored label"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-e/"
    },
    {
      "command": "<STX>G",
      "name": "Print Last Label",
      "description": "Reprints the last label that was sent to the printer. A quick way to get another copy without resending data.",
      "category": "system",
      "syntax": "<STX>G",
      "parameters": [],
      "whenToUse": "When you need a quick reprint of the most recent label.",
      "example": {
        "source": "<STX>G",
        "description": "Reprint the last label"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-g/"
    },
    {
      "command": "<STX>F",
      "name": "Form Feed",
      "description": "Advances the media to the next label position without printing. The printer uses gap or mark detection to find the next label boundary.",
      "category": "system",
      "syntax": "<STX>F",
      "parameters": [],
      "whenToUse": "When you need to skip a label or advance to a known position for alignment.",
      "example": {
        "source": "<STX>F",
        "description": "Feed to the next label position"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-f/"
    },
    {
      "command": "<STX>S",
      "name": "Set Print Speed",
      "description": "Sets the print speed. The value is a single character representing the speed level: A (slowest) through F or higher depending on the printer model. Slower speeds generally produce better print quality.",
      "category": "system",
      "syntax": "<STX>Sn",
      "parameters": [
        {
          "name": "n",
          "description": "Speed code: A (1.0 ips), B (2.0 ips), C (3.0 ips), D (4.0 ips), E (5.0 ips), F (6.0 ips)"
        }
      ],
      "whenToUse": "When you need to balance print speed and quality. Slow down for barcodes that must scan perfectly.",
      "example": {
        "source": "<STX>SD",
        "description": "Set print speed to D (4.0 inches per second)"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-s/"
    },
    {
      "command": "<STX>Z",
      "name": "Print Configuration Label",
      "description": "Prints a configuration label showing the current printer settings, firmware version, memory status, and other diagnostic information.",
      "category": "system",
      "syntax": "<STX>Z",
      "parameters": [],
      "whenToUse": "For diagnostics — to check printer settings, firmware version, and hardware configuration.",
      "example": {
        "source": "<STX>Z",
        "description": "Print a configuration diagnostic label"
      },
      "previewSupported": false,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-z/"
    },
    {
      "command": "D",
      "name": "Set Dot Size",
      "description": "Sets the width and height multiplier for the dot size of subsequent format records. D11 is the default (1x1). D22 doubles both dimensions. This affects all format records that follow until changed.",
      "category": "label",
      "syntax": "Dwh",
      "parameters": [
        {
          "name": "w",
          "description": "Dot width multiplier (1-3)"
        },
        {
          "name": "h",
          "description": "Dot height multiplier (1-3)"
        }
      ],
      "whenToUse": "At the start of a label block to set the base dot size. Use D11 for normal density or D22 for doubled output.",
      "example": {
        "source": "<STX>L\nD11\n121110000500050Dot Size Test\nE",
        "description": "Complete label with dot size 1x1 and sample text at row 50, column 50"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/d/"
    },
    {
      "command": "H",
      "name": "Set Heat (Darkness)",
      "description": "Sets the printhead heat level (darkness/density). Values range from 00 to 30, where higher values produce darker output. Start around 07-10 and adjust based on print quality and barcode scan results.",
      "category": "label",
      "syntax": "Hnn",
      "parameters": [
        {
          "name": "nn",
          "description": "Heat value 00 (lightest) to 30 (darkest), zero-padded"
        }
      ],
      "whenToUse": "At the start of a label block to control print darkness. Essential for barcode readability.",
      "example": {
        "source": "H10",
        "description": "Set heat level to 10"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/h/"
    },
    {
      "command": "P",
      "name": "Set Print Speed (Label)",
      "description": "Sets the print speed within a label block. This overrides the system-level speed setting for the current label. Values are single characters from A to F.",
      "category": "label",
      "syntax": "Pn",
      "parameters": [
        {
          "name": "n",
          "description": "Speed code: A-F (same as <STX>S)"
        }
      ],
      "whenToUse": "When a specific label needs a different speed than the system default — for example, slowing down for a barcode-heavy label.",
      "example": {
        "source": "PC",
        "description": "Set label print speed to C (3.0 ips)"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/p/"
    },
    {
      "command": "Q",
      "name": "Set Quantity",
      "description": "Sets the number of copies to print for the current label. The value is a 4-digit zero-padded number. Q0001 prints one copy; Q0100 prints one hundred.",
      "category": "label",
      "syntax": "Qnnnn",
      "parameters": [
        {
          "name": "nnnn",
          "description": "Number of copies (4 digits, zero-padded, 0001-9999)"
        }
      ],
      "whenToUse": "Always. Place Q before the E (end/print) command to specify how many labels to print.",
      "example": {
        "source": "Q0001",
        "description": "Print one copy of the label"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/q/"
    },
    {
      "command": "C",
      "name": "Set Column Offset",
      "description": "Sets a horizontal (column) offset in dots for the entire label. All format record column positions are shifted by this amount. Use it to adjust horizontal alignment without changing every format record.",
      "category": "label",
      "syntax": "Cnnnn",
      "parameters": [
        {
          "name": "nnnn",
          "description": "Column offset in dots (4 digits, zero-padded)"
        }
      ],
      "whenToUse": "When the entire label design needs to be shifted left or right on the media.",
      "example": {
        "source": "<STX>L\nC0020\n121110000500050Offset Text\nE",
        "description": "Complete label with column offset shifting text 20 dots right"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/c/"
    },
    {
      "command": "R",
      "name": "Set Row Offset",
      "description": "Sets a vertical (row) offset in dots for the entire label. All format record row positions are shifted by this amount. Use it to adjust vertical alignment without changing every format record.",
      "category": "label",
      "syntax": "Rnnnn",
      "parameters": [
        {
          "name": "nnnn",
          "description": "Row offset in dots (4 digits, zero-padded)"
        }
      ],
      "whenToUse": "When the entire label design needs to be shifted up or down on the media.",
      "example": {
        "source": "<STX>L\nR0010\n121110000500050Offset Text\nE",
        "description": "Complete label with row offset shifting text 10 dots down"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/r/"
    },
    {
      "command": "M",
      "name": "Set Mirror Mode",
      "description": "Sets the mirror mode for the label. M0 disables mirroring (default), M1 enables horizontal mirroring. Used when labels are applied to the inside of transparent packaging and read from the outside.",
      "category": "label",
      "syntax": "Mn",
      "parameters": [
        {
          "name": "n",
          "description": "0 = normal (default), 1 = mirror"
        }
      ],
      "whenToUse": "When the label needs to be printed as a mirror image for transparent packaging applications.",
      "example": {
        "source": "<STX>L\nM1\nD11\n121110000500050Mirror Mode\nE",
        "description": "Complete label with mirror mode on (M1) so the preview shows the flipped text"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/m/"
    },
    {
      "command": "E",
      "name": "End Label / Print",
      "description": "Ends the label formatting block and triggers printing. This is the closing counterpart to <STX>L. When the printer encounters E, it prints the label using the quantity set by Q and exits label mode.",
      "category": "label",
      "syntax": "E",
      "parameters": [],
      "whenToUse": "Always. It must be the last command inside a label block. Without E, the label will not print.",
      "example": {
        "source": "<STX>L\nD11\n121110000500050Print Me\nQ0001\nE",
        "description": "Complete label demonstrating the E command ending the label block"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/e/"
    },
    {
      "command": "Font 0-9",
      "name": "Text Format Record",
      "description": "A text format record is a fixed 15-byte header followed by data. R = rotation (1-4), F = font ID (0-9), w = width multiplier (1-9), h = height multiplier (1-9), SSS = data length (3 digits), rrrr = row position, cccc = column position. The remaining characters are the text data. Font 0 is the smallest (5x7) and font 9 is the largest (18x24 OCR-B).",
      "category": "text",
      "syntax": "RFwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "F",
          "description": "Font ID: 0 (5x7), 1 (9x7), 2 (10x14), 3 (12x20), 4 (5x7 OCR-A), 5 (13x20 OCR-A), 6 (27x13), 7 (14x24), 8 (18x24 OCR-A), 9 (18x24 OCR-B)"
        },
        {
          "name": "w",
          "description": "Width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Height multiplier (1-9)"
        },
        {
          "name": "SSS",
          "description": "Data length in bytes (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "The text string to print"
        }
      ],
      "whenToUse": "Whenever you need to print text on the label. Each text element is a single format record line.",
      "example": {
        "source": "<STX>L\nD11\n121110000500050Hello\nE",
        "description": "Complete label with \"Hello\" at row 50, column 50 using font 2 with 1x1 multiplier"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/font-0-9/"
    },
    {
      "command": "Barcode A (Code 39)",
      "name": "Code 39 Barcode",
      "description": "A barcode format record using Code 39 symbology. The format is the same 15-byte header as text, but the font/type field is set to A for Code 39. Code 39 supports uppercase letters, digits, and symbols (- . $ / + % space).",
      "category": "barcode",
      "syntax": "RAwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "A",
          "description": "Barcode type identifier for Code 39"
        },
        {
          "name": "w",
          "description": "Narrow bar width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Wide bar width multiplier (1-9)"
        },
        {
          "name": "SSS",
          "description": "Barcode height in dots (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "The data to encode"
        }
      ],
      "whenToUse": "When you need a simple alphanumeric barcode. Code 39 is widely used in non-retail applications.",
      "example": {
        "source": "<STX>L\nD11\n1A1100800100050ABC-123\nE",
        "description": "Complete label with Code 39 barcode at row 100, column 50, height 80 dots"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/barcode-a-code-39/"
    },
    {
      "command": "Barcode E (Code 128)",
      "name": "Code 128 Barcode",
      "description": "A barcode format record using Code 128 symbology. Code 128 is the most versatile 1D barcode, supporting the full ASCII character set. It produces compact barcodes and is widely used in shipping and logistics.",
      "category": "barcode",
      "syntax": "REwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "E",
          "description": "Barcode type identifier for Code 128"
        },
        {
          "name": "w",
          "description": "Narrow bar width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Wide bar width multiplier (not used for Code 128, set to 1)"
        },
        {
          "name": "SSS",
          "description": "Barcode height in dots (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "The data to encode (full ASCII)"
        }
      ],
      "whenToUse": "When you need a compact, full-ASCII barcode — shipping labels, inventory, and logistics.",
      "example": {
        "source": "<STX>L\nD11\n1E1100800200050SHIP-2026-001\nE",
        "description": "Complete label with Code 128 barcode at row 200, column 50, height 80 dots"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/barcode-e-code-128/"
    },
    {
      "command": "Barcode F (EAN-13)",
      "name": "EAN-13 Barcode",
      "description": "A barcode format record using EAN-13 symbology. EAN-13 is the standard barcode for retail products worldwide (the 13-digit number under the barcode on most products). Data must be exactly 12 digits; the check digit is calculated automatically.",
      "category": "barcode",
      "syntax": "RFwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "F",
          "description": "Barcode type identifier for EAN-13 (note: F is also the font field position)"
        },
        {
          "name": "w",
          "description": "Narrow bar width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Wide bar width multiplier (1-9)"
        },
        {
          "name": "SSS",
          "description": "Barcode height in dots (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "12 digits (check digit is auto-calculated)"
        }
      ],
      "whenToUse": "For retail product labelling where a 13-digit European Article Number is required.",
      "example": {
        "source": "<STX>L\nD11\n1F1100800300050978020137962\nE",
        "description": "Complete label with EAN-13 barcode at row 300, column 50, height 80 dots"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/barcode-f-ean-13/"
    },
    {
      "command": "Barcode B (UPC-A)",
      "name": "UPC-A Barcode",
      "description": "A barcode format record using UPC-A symbology. UPC-A is the standard US retail barcode — the 12-digit number printed on virtually every product sold in North America. Data must be exactly 11 digits; the check digit is calculated automatically.",
      "category": "barcode",
      "syntax": "RBwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "B",
          "description": "Barcode type identifier for UPC-A"
        },
        {
          "name": "w",
          "description": "Narrow bar width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Wide bar width multiplier (1-9)"
        },
        {
          "name": "SSS",
          "description": "Barcode height in dots (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "11 digits (check digit is auto-calculated)"
        }
      ],
      "whenToUse": "For US retail product labelling where a 12-digit Universal Product Code is required.",
      "example": {
        "source": "<STX>L\nD11\n1B1100800200050012345678901\nE",
        "description": "Complete label with UPC-A barcode at row 200, column 50, height 80 dots"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/barcode-b-upc-a/"
    },
    {
      "command": "Barcode C (UPC-E)",
      "name": "UPC-E Barcode",
      "description": "A barcode format record using UPC-E symbology. UPC-E is the compressed version of UPC-A designed for small packages where space is limited. Data is 6-7 digits.",
      "category": "barcode",
      "syntax": "RCwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "C",
          "description": "Barcode type identifier for UPC-E"
        },
        {
          "name": "w",
          "description": "Narrow bar width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Wide bar width multiplier (1-9)"
        },
        {
          "name": "SSS",
          "description": "Barcode height in dots (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "6-7 digits for the compressed UPC-E code"
        }
      ],
      "whenToUse": "For small retail items where a full-size UPC-A barcode will not fit on the packaging.",
      "example": {
        "source": "<STX>L\nD11\n1C110080020005001234567\nE",
        "description": "Complete label with UPC-E barcode at row 200, column 50, height 80 dots"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/barcode-c-upc-e/"
    },
    {
      "command": "Barcode D (I2of5)",
      "name": "Interleaved 2 of 5 Barcode",
      "description": "A barcode format record using Interleaved 2 of 5 symbology. I2of5 encodes pairs of digits, so the data must contain an even number of digits. It is a compact numeric-only barcode widely used in shipping and warehousing.",
      "category": "barcode",
      "syntax": "RDwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "D",
          "description": "Barcode type identifier for Interleaved 2 of 5"
        },
        {
          "name": "w",
          "description": "Narrow bar width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Wide bar width multiplier (1-9)"
        },
        {
          "name": "SSS",
          "description": "Barcode height in dots (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "Numeric digits (must be an even count)"
        }
      ],
      "whenToUse": "For shipping cartons, warehouse labels, and other logistics applications requiring a compact numeric barcode.",
      "example": {
        "source": "<STX>L\nD11\n1D1100800200050123456\nE",
        "description": "Complete label with I2of5 barcode at row 200, column 50, height 80 dots"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/barcode-d-i2of5/"
    },
    {
      "command": "Barcode G (EAN-8)",
      "name": "EAN-8 Barcode",
      "description": "A barcode format record using EAN-8 symbology. EAN-8 is the short version of EAN-13, designed for small packages where a full 13-digit barcode will not fit. Data must be exactly 7 digits; the check digit is calculated automatically.",
      "category": "barcode",
      "syntax": "RGwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "G",
          "description": "Barcode type identifier for EAN-8"
        },
        {
          "name": "w",
          "description": "Narrow bar width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Wide bar width multiplier (1-9)"
        },
        {
          "name": "SSS",
          "description": "Barcode height in dots (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "7 digits (check digit is auto-calculated)"
        }
      ],
      "whenToUse": "For small retail products where an EAN-13 barcode is too large for the available space.",
      "example": {
        "source": "<STX>L\nD11\n1G110080020005012345670\nE",
        "description": "Complete label with EAN-8 barcode at row 200, column 50, height 80 dots"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/barcode-g-ean-8/"
    },
    {
      "command": "Barcode H (HIBC)",
      "name": "HIBC Barcode",
      "description": "A barcode format record using HIBC (Health Industry Bar Code) symbology. HIBC is used in healthcare for device and product identification. It supports alphanumeric data and automatically adds the + prefix and check character required by the HIBC standard.",
      "category": "barcode",
      "syntax": "RHwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "H",
          "description": "Barcode type identifier for HIBC"
        },
        {
          "name": "w",
          "description": "Narrow bar width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Wide bar width multiplier (1-9)"
        },
        {
          "name": "SSS",
          "description": "Barcode height in dots (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "Alphanumeric HIBC data (+ prefix and check char are auto-added)"
        }
      ],
      "whenToUse": "For healthcare and medical device labelling where HIBC compliance is required.",
      "example": {
        "source": "<STX>L\nD11\n1H1100800200050+H123ABC\nE",
        "description": "Complete label with HIBC barcode at row 200, column 50, height 80 dots"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/barcode-h-hibc/"
    },
    {
      "command": "Barcode I (Codabar)",
      "name": "Codabar Barcode",
      "description": "A barcode format record using Codabar symbology. Codabar supports digits and the characters - . $ / + : as well as start/stop characters A-D. It is commonly used in libraries, blood banks, and FedEx airbills.",
      "category": "barcode",
      "syntax": "RIwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "I",
          "description": "Barcode type identifier for Codabar"
        },
        {
          "name": "w",
          "description": "Narrow bar width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Wide bar width multiplier (1-9)"
        },
        {
          "name": "SSS",
          "description": "Barcode height in dots (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "Digits and -.$/ +:, with A-D start/stop characters"
        }
      ],
      "whenToUse": "For library books, blood bank labels, and legacy logistics systems that require Codabar.",
      "example": {
        "source": "<STX>L\nD11\n1I1100800200050A12345B\nE",
        "description": "Complete label with Codabar barcode at row 200, column 50, height 80 dots"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/barcode-i-codabar/"
    },
    {
      "command": "Barcode O (Code 93)",
      "name": "Code 93 Barcode",
      "description": "A barcode format record using Code 93 symbology. Code 93 is a compact barcode that supports the full ASCII character set. It produces denser output than Code 39 and is used in logistics and by Canada Post for delivery routing.",
      "category": "barcode",
      "syntax": "ROwhSSSrrrrccccDATA",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "O",
          "description": "Barcode type identifier for Code 93"
        },
        {
          "name": "w",
          "description": "Narrow bar width multiplier (1-9)"
        },
        {
          "name": "h",
          "description": "Wide bar width multiplier (1-9)"
        },
        {
          "name": "SSS",
          "description": "Barcode height in dots (3 digits, zero-padded)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "DATA",
          "description": "The data to encode (full ASCII)"
        }
      ],
      "whenToUse": "When you need a compact, full-ASCII barcode — especially for postal and logistics applications.",
      "example": {
        "source": "<STX>L\nD11\n1O1100800200050TEST93\nE",
        "description": "Complete label with Code 93 barcode at row 200, column 50, height 80 dots"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/barcode-o-code-93/"
    },
    {
      "command": "Line (X...L/l)",
      "name": "Draw Line",
      "description": "Draws a horizontal or vertical line on the label. Use the X type field with L (horizontal) or l (vertical) as the first byte of the data field. The SSS field sets the line length and the data field starts with L or l followed by the line width in dots.",
      "category": "graphics",
      "syntax": "1X1100LLLLrrrrcccc",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "X",
          "description": "Graphics type identifier"
        },
        {
          "name": "LLLL",
          "description": "Line length in dots (used in SSS + data fields)"
        },
        {
          "name": "rrrr",
          "description": "Row position in dots (4 digits, zero-padded)"
        },
        {
          "name": "cccc",
          "description": "Column position in dots (4 digits, zero-padded)"
        },
        {
          "name": "L/l",
          "description": "L = horizontal line, l = vertical line"
        },
        {
          "name": "width",
          "description": "Line width/thickness in dots"
        }
      ],
      "whenToUse": "When you need a divider line, border edge, or rule on the label.",
      "example": {
        "source": "<STX>L\nD11\n1X1100000000000L0700003\nE",
        "description": "Complete label with a horizontal line at row 0, column 0, length 700, width 3"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/line-x-l-l/"
    },
    {
      "command": "Box (X...B/b)",
      "name": "Draw Box",
      "description": "Draws a rectangular box (outline) on the label. Use the X type field with B (box with specified width and height) as the first byte of the data. The data encodes the box width, height, and line thickness.",
      "category": "graphics",
      "syntax": "1X1100BBBBrrrrcccc",
      "parameters": [
        {
          "name": "R",
          "description": "Rotation: 1 (0 deg), 2 (90 deg), 3 (180 deg), 4 (270 deg)"
        },
        {
          "name": "X",
          "description": "Graphics type identifier"
        },
        {
          "name": "rrrr",
          "description": "Row position (top-left corner) in dots"
        },
        {
          "name": "cccc",
          "description": "Column position (top-left corner) in dots"
        },
        {
          "name": "B/b",
          "description": "B = box outline, b = filled box"
        },
        {
          "name": "width",
          "description": "Box width in dots"
        },
        {
          "name": "height",
          "description": "Box height in dots"
        },
        {
          "name": "thickness",
          "description": "Line thickness in dots"
        }
      ],
      "whenToUse": "When you need a border, frame, or table cell outline on the label.",
      "example": {
        "source": "<STX>L\nD11\n1X1100000100010B300120003003\nE",
        "description": "Complete label with a box at row 10, column 10 (300×120 units, ~609×244 dots) so the whole outline sits inside the label, 3-unit line thickness"
      },
      "previewSupported": true,
      "canonicalUrl": "https://rfid.me/reference/dpl/box-x-b-b/"
    },
    {
      "command": "<STX>K",
      "name": "Set Configuration",
      "description": "Sets various printer configuration options. The character after K selects the specific setting. Common subcommands include Kf (label format), Kc (continuous length), Km (metric), etc.",
      "category": "config",
      "syntax": "<STX>KcVALUE",
      "parameters": [
        {
          "name": "c",
          "description": "Configuration subcommand letter"
        },
        {
          "name": "VALUE",
          "description": "Configuration value (depends on subcommand)"
        }
      ],
      "whenToUse": "For advanced printer configuration beyond the standard label commands.",
      "example": {
        "source": "<STX>Kf0406",
        "description": "Set label format length to 406 dots"
      },
      "previewSupported": false,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-k/"
    },
    {
      "command": "<STX>O",
      "name": "Set Options",
      "description": "Sets hardware options and peripheral settings. Subcommands control cutter, peel mode, present distance, and other optional accessories.",
      "category": "config",
      "syntax": "<STX>OcVALUE",
      "parameters": [
        {
          "name": "c",
          "description": "Option subcommand letter"
        },
        {
          "name": "VALUE",
          "description": "Option value (depends on subcommand)"
        }
      ],
      "whenToUse": "When configuring optional hardware features like cutter or peel-and-present.",
      "example": {
        "source": "<STX>OC",
        "description": "Enable cutter mode"
      },
      "previewSupported": false,
      "canonicalUrl": "https://rfid.me/reference/dpl/stx-o/"
    }
  ]
}
