qrcode-generator

QR Code Generator implementation in JavaScript.

MIT 24 个版本
安装
npm install qrcode-generator
yarn add qrcode-generator
pnpm add qrcode-generator
bun add qrcode-generator
README

QR Code Generator

Getting Started

  1. Include qrcode.js in your html.
  2. Prepare a place holder.
  3. Generate QR and render it.
<script type="text/javascript" src="qrcode.js"></script>
<div id="placeHolder"></div>
var typeNumber = 4;
var errorCorrectionLevel = 'L';
var qr = qrcode(typeNumber, errorCorrectionLevel);
qr.addData('Hi!');
qr.make();
document.getElementById('placeHolder').innerHTML = qr.createImgTag();

API Documentation

QRCodeFactory

qrcode(typeNumber, errorCorrectionLevel) => QRCode

Create a QRCode Object.

Param Type Description
typeNumber number Type number (1 ~ 40), or 0 for auto detection.
errorCorrectionLevel string Error correction level ('L', 'M', 'Q', 'H')

qrcode.stringToBytes(s) : number[]

Encodes a string into an array of number(byte) using any charset. This function is used by internal. Overwrite this function to encode using a multibyte charset.

Param Type Description
s string string to encode

QRCode

addData(data, mode) => void

Add a data to encode.

Param Type Description
data string string to encode
mode string Mode ('Numeric', 'Alphanumeric', 'Byte'(default), 'Kanji')

make() => void

Make a QR Code.

getModuleCount() => number

The number of modules(cells) for each orientation. [Note] call make() before this function.

isDark(row, col) => boolean

The module at row and col is dark or not. [Note] call make() before this function.

Param Type Description
row number 0 ~ moduleCount - 1
col number 0 ~ moduleCount - 1

createDataURL(cellSize, margin) => string

createImgTag(cellSize, margin, alt) => string

createSvgTag(cellSize, margin) => string

createTableTag(cellSize, margin) => string

createASCII(cellSize, margin) => string

Helper functions for HTML. [Note] call make() before these functions.

Param Type Description
cellSize number default: 2
margin number default: cellSize * 4
alt string (optional)

createSvgTag(opts) => string

Param Type Description
opts object default: {}
opts.cellSize number default: 2
opts.margin number default: cellSize * 4
opts.scalable boolean default: false

renderTo2dContext(context, cellSize) => void

--

This implementation is based on JIS X 0510:1999.

The word 'QR Code' is registered trademark of DENSO WAVE INCORPORATED
http://www.denso-wave.com/qrcode/faqpatent-e.html

版本列表
2.0.4 2025-08-07
2.0.2 2025-06-27
2.0.1 2025-06-27
2.0.0 2025-06-26
1.5.2 2025-06-26
1.5.1 2025-06-24
1.5.0 2025-06-08
1.4.4 2019-09-18
1.4.3 2019-02-15
1.4.2 2019-02-14
1.4.1 2018-09-01
1.4.0 2018-04-25
1.3.1 2017-07-24
1.3.0 2017-07-18
1.2.0 2017-03-29
1.1.0 2017-01-04
1.0.7 2016-10-14
1.0.6 2016-10-13
1.0.5 2016-08-26
1.0.4 2016-08-25
1.0.3 2016-08-16
1.0.2 2016-08-16
1.0.1 2016-08-16
1.0.0 2014-11-26