A PDF417 code, carrying a whole form

Draw a PDF417 code of stacked bars, the one on boarding passes: it carries a whole form, not merely a number.

Summary

A name, a date, a flight number, all in one code: that is what the several stacked rows of bars are for. You give the text, the frame, and if you like the number of columns, which decides the rectangle's shape. You also set the sturdiness: the more you ask for, the better the code survives a crease or a stain, and the more room it takes.

Technically

Asked for with "type": "pdf417"

The stacked rows are drawn as filled rectangles, and the symbol and the quiet zone on either side fill the rectangle's width, anchored at the lower-left corner. The depth that comes out follows from the width: a module is drawn three times as tall as it is wide. The number of data columns runs from 1 to 30; left out, the encoder picks a shape about twice as wide as it is tall. The correction level runs from 0 to 8, each level costing twice what the one below costs; left out, it takes the level the standard asks for at that text length.

Request schema

Required keys: content, a string; rect. Optional: columns, an integer from 1 to 30 (default: the encoder's pick, about twice as wide as it is tall); level, an integer from 0 to 8 (default: the level the standard asks for at that length); pages, an array of one-based integers, default empty; transform, six numbers; rotate, degrees counter-clockwise about the centre of the rectangle; layer, the name of a declared layer. Cross refusal: transform together with rotate. Text longer than the largest symbol, or than the requested shape, carries answers 400.

A whole request that creates a PDF

{
  "items": [
    {
      "type": "pdf417",
      "content": "HQF/2026-08-08/PARIS/14B",
      "rect": {"llx": 72, "lly": 660, "urx": 283, "ury": 720}
    }
  ]
}

The line that sends it, in three languages

Barcodes and square codes

A barcode of vertical bars A square QR code, read with a phone An Aztec code, with no white margin around it A Data Matrix code, very small and very sturdy

Where to go next

Every JSON key of a request, in one page The other twenty-two things you can draw

See the prices See the examples