@passport-mrz/renderer
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

@passport-mrz/renderer

npm version npm downloads bundle size license

Renders passport MRZ (Machine Readable Zone) strings as images using the OCR-B font.

Installation

# ✨ 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

Usage

Programmatic API

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)

Output Example

Sample MRZ Output

The above image shows the rendered output for the input data in examples/XS1234567.json.

Command Line Interface

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

Features

🖼️ 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

API

renderMRZToPNG(input)

Renders MRZ as a PNG image buffer.

input

Type: Input (from @passport-mrz/builder)

Passport information object containing document details.

Returns

Type: Promise<Buffer>

PNG image data as a Buffer (Node.js only).

renderMRZToCanvas(input)

Renders MRZ to an HTML5 Canvas object.

input

Type: Input (from @passport-mrz/builder)

Returns

Type: Canvas

Canvas object with rendered MRZ text.

CLI Options

  • --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.

Filename Placeholders

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

Related

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i @passport-mrz/renderer

Weekly Downloads

52

Version

1.0.0

License

MIT

Unpacked Size

59.7 kB

Total Files

14

Last publish

Collaborators

  • lollipop-onl