Skip to content

Barcode test sheet

A test sheet with every kind of barcode, one per page: QR codes of every version, Data Matrix up to its largest size, PDF417, Code 128 and EAN-13, some with Unicode text. Tagua’s CI renders it and decodes every code with an independent reader, which must read back exactly what was encoded.

Download the PDF.

Page 1 of the barcode test sheet, rendered by Tagua.Page 2 of the barcode test sheet, rendered by Tagua.Page 3 of the barcode test sheet, rendered by Tagua.
  • QR, Data Matrix, PDF417, Code 128 and EAN-13
  • Unicode text in 2D codes
  • Barcodes drawn as vectors
  • Alternative text on every code
barcodes.report.yaml
# yaml-language-server: $schema=../schema/template.schema.json
# A test sheet of every barcode type the renderer draws, one per page. CI renders it, decodes each
# page with zxing-cpp and checks every barcode against the value it was given.
version: 1
title: Barcode test sheet
culture: en-US
page:
size: A4
margins: 20mm
data:
codes:
fields: { Symbology: string, Value: string, Note: string }
styles:
default: { font: Helvetica, fontSize: 12pt }
body:
dataset: codes
detail:
- pageBreak: after
gap: 16pt
content:
- { type: text, value: "{Symbology}: {Note}", tag: h1 }
- { type: barcode, symbology: qr, value: "{Value}", width: 260pt, alt: "{Symbology}: {Note}", visible: "=Symbology == 'QR'" }
- { type: barcode, symbology: dataMatrix, value: "{Value}", width: 300pt, alt: "{Symbology}: {Note}", visible: "=Symbology == 'Data Matrix'" }
- { type: barcode, symbology: pdf417, value: "{Value}", width: 480pt, alt: "{Symbology}: {Note}", visible: "=Symbology == 'PDF417'" }
- { type: barcode, symbology: code128, value: "{Value}", width: 400pt, height: 90pt, alt: "{Symbology}: {Note}", visible: "=Symbology == 'Code 128'" }
- { type: barcode, symbology: ean13, value: "{Value}", width: 250pt, height: 90pt, alt: "{Symbology}: {Note}", visible: "=Symbology == 'EAN-13'" }

Save the template, put the fonts it names next to it (Inter and the Noto fonts are free, under the SIL Open Font License), and run:

Terminal window
tagua render barcodes.report.yaml --open

Without a data file, tagua render makes up sample rows from the field types; see Preview as you edit.