Renders passport MRZ (Machine Readable Zone) strings as images using the OCR-B font.
# ✨ Auto-detect
npx nypm install @passport-mrz/renderer
# npm
npm install @passport-mrz/renderer
# yarn
yarn add @passport-mrz/renderer
# pnpm
pnpm install @passport-mrz/renderer
# bun
bun install @passport-mrz/renderer
# deno
deno install @passport-mrz/renderer
import type { Input } from '@passport-mrz/builder'
import { renderMRZToPNG } from '@passport-mrz/renderer'
const input: Input = {
documentType: 'PP',
issuingState: 'JPN',
documentNumber: 'XS1234567',
primaryIdentifier: 'GAIMU',
secondaryIdentifier: 'SAKURA',
nationality: 'JPN',
dateOfBirth: '790220',
sex: 'F',
dateOfExpiry: '110101'
}
// Generate PNG buffer
const pngBuffer = await renderMRZToPNG(input)
The above image shows the rendered output for the input data in examples/XS1234567.json
.
Basic usage with command line arguments:
npx @passport-mrz/renderer \
--documentType P \
--issuingState JPN \
--documentNumber XS1234567 \
--primaryIdentifier GAIMU \
--secondaryIdentifier SAKURA \
--nationality JPN \
--dateOfBirth 790220 \
--sex F \
--dateOfExpiry 110101
Load input from JSON file:
npx @passport-mrz/renderer --json input.json
Custom output directory and filename with placeholders:
npx @passport-mrz/renderer \
--json input.json \
--outdir ./output \
--filename passport-{documentNumber}.png
🖼️ OCR-B font rendering - Uses authentic OCR-B font for accurate MRZ appearance
🌐 Cross-platform support - Works in both Node.js and browser environments
🎯 CLI included - Command-line tool with flexible input options
📄 Dynamic filenames - Supports placeholder substitution in output filenames
Renders MRZ as a PNG image buffer.
Type: Input
(from @passport-mrz/builder)
Passport information object containing document details.
Type: Promise<Buffer>
PNG image data as a Buffer (Node.js only).
Renders MRZ to an HTML5 Canvas object.
Type: Input
(from @passport-mrz/builder)
Type: Canvas
Canvas object with rendered MRZ text.
-
--json <file>
- Load input data from JSON file -
--outdir <directory>
- Output directory (default: current directory) -
--filename <name>
- Output filename (default:{documentNumber}-{primaryIdentifier}_{secondaryIdentifier}.png
) - Individual passport fields:
--documentType
,--issuingState
,--documentNumber
, etc.
The output filename supports these placeholders:
-
{documentType}
- Document type -
{issuingState}
- Issuing state code -
{documentNumber}
- Document number -
{primaryIdentifier}
- Primary identifier (surname) -
{secondaryIdentifier}
- Secondary identifier (given names) -
{nationality}
- Nationality code -
{dateOfBirth}
- Date of birth -
{personalNumber}
- Personal number -
{sex}
- Sex -
{dateOfExpiry}
- Date of expiry
- Passport MRZ Simulator - Interactive web app using this library
- @passport-mrz/builder - Generate MRZ strings
MIT