Вы можете его свободно использовать с любой целью.
( Протестируйте ) => { ДЕМО };
- Сохраните файл QRCreator.js
По ссылке страница перенаправляется на содержимое файла.
Нажмите правую кнопку мыши ( или сочетание клавишCtrl
+S
/CMD
+S
) и выберитеСохранить как
- В файле
html
в тег<head>
вставьте тег<script>
с указанием ссылки на файлQRCreator.js
<script src="QRCreator.js" defer><script/>
<html>
<head>
<script src="QRCreator.js"></script>
</head>
<body>
<div id="qrcode"></div>
</body>
<script>
document.getElementById('qrcode').append(QRCreator('Привет, Мир!').result);
</script>
</html>
<html>
<head>
<script src="QRCreator.js" defer></script>
<script src="sample.js" defer></script>
</head>
<body>
<div id="qrcode1"></div>
<div id="qrcode2"></div>
</body>
</html>
sample.js
const qrcode1 = QRCreator('Привет, Мир!',
{ mode: 4,
eccl: 0,
version: 3,
mask: -1,
image: 'html',
modsize: -1,
margin: 0
});
const qrcode2 = QRCreator('Привет, Мир!', { mode: 1});
const content = (qrcode) =>{
return qrcode.error ?
`недопустимые исходные данные ${qrcode.error}`:
qrcode.result;
};
document.getElementById('qrcode1').append( 'QR-код № 1: ', content(qrcode1));
document.getElementById('qrcode2').append( 'QR-код № 2: ', content(qrcode2));
window
.QRCreator( text
[, options
] )
или
QRCreator( text
[, options
] )
text
Кодируемая текстовая строка UTF-8.
options
Объект, содержащий свойства со значениями параметров генерации QR-кода, по умолчанию:{mode: -1, eccl: 0, version: -1, mask: -1, image: 'PNG', modsize: -1, margin: -1}
Объект qrcode
, описывающий результат генерации QR-кода.
свойство | значение | содержание |
---|---|---|
mode | целое число -1, 1, 2, 4 |
метод кодирования 1 - числовой, 2 - буквенно-цифровой, 4 - октетный, если не указан или -1, то выбирается допустимый |
eccl | целое число от -1 до 3 |
уровень коррекции ошибок 1(L), 0(M), 3(Q), 2(H) если не указан или -1, то подбор допустимого, начиная с 3(Q) |
version | целое число -1 или от 1 до 40 |
версия если не указана или -1, то выбирается наименьшая возможная |
mask | целое число -1 или от 0 до 7 |
шаблон маски если не указан или -1, то выбирается лучшая маска |
свойство | значение | содержание |
---|---|---|
image | регистронезависимая строка 'PNG', 'SVG', 'HTML' или 'NONE' |
формат изображения, если не указан, то результат выводится в формате 'PNG', при задании значения 'NONE' - результат не формируется |
modsize | целое число -1 или от 1 |
размер модуляmodsize x modsize если не указан или -1, то 4 |
margin | целое число от 0 |
размер свободной зоны в модулях, если не указан, то 4 модуля |
свойство | значение | содержание |
---|---|---|
text | заданное | исходный текст |
mode ecclversion mask |
заданное или подобранное |
параметры сформированной матрицы QR-кода |
modsize margin |
заданно или по умолчанию |
параметры сформированной матрицы QR-кода и параметры изображения QR-кода |
image | заданное | формат изображения QR-кода или 'NONE' |
matrix | массив [у ][х ]у -индекс колонки, х -индекс строки |
матрица QR-кода где значение элемента матрицы соответствует цвету изображения модуля: 0 - белый, 1 - черный |
result | HTML элемент или '' |
изображение QR-кода в заданом формате или пустая строка в случае ошибки, или когда был задан параметр image === 'NONE' |
error | имя свойства или '' |
имя свойства, значение которого вызвало ошибку или пустая строка при отстутствии ошибок |
errorSubcode | строка с целочисленным цифроовым кодом или '' |
код, поясняющий ошибку или пустая строка при отстутствии ошибок |
qrcode.
image = newImage
newImage
новое значение формата изображения
При изменении текущего формата qrcode.image
на новое значение newImage
происходит переформирование изображения.
Процесс может вызвать ошибку:
qrcode.error === "image"
.
qrcode.
download (filename
, image
)
filename
в формате image
.
filename
Имя файла для скачивания изображения, включая расширение.
Если параметр
filename
не задан илиfilename === ''
, тоfilename
примает значение по умолчанию:
-'qrcode.png'
приqrcode.image === 'PNG'
-'qrcode.svg'
приqrcode.image === 'SVG'
-'qrcode.html'
приqrcode.image === 'HTML'
image
Формат файла изображения QR-кода.
Если параметр
image
не задан, то приниматся текущее значениеqrcode.image
.
Если параметр
image
указан, то до вывода изображение переформируется ( соответствует методуqrcode.image = newImage
).
Если при переформировании изображения произошла ошибка
qrcode.error !== ""
или задан форматqrcode.image === 'NONE'
и, соответственно, отсутствует результатqrcode.result === ''
, то запрос на скачиваение файла не выполняется.
qrcode
.clearError()
qrcode.error
и qrcode.errorSubcode
.
При наличии ошибок формирования изображения, методы:
qrcode.image = newImage
иqrcode.download(filename, image)
не работают, пока сообщение не будет обработано и (или) очищеноqrcode.clearError()
error | errorSubcode | содержание |
---|---|---|
text | 1 | недопустимый формат строки для кодирования |
text | 2 | не указан текст для кодирования |
text | 3 | текст содержит недопустимые символы |
mode | 1 | недопустимый или неподдерживаемый метод кодирования |
version | 1 | слишком длинный текст для кодирования |
version | 2 | недопустимая версия |
version | 3 | текст слишком длинный для выбранной версии |
eccl | 1 | недопустимый уровень коррекции ошибок |
mask | 1 | недопустимый шаблон маски |
image | 1 | недопустимый формат изображения для генерации QR-кода |
image | 2 | для вывода в формате PNG необходима поддержка canvas |
image | 3 | недопустимый формат изображения для генерации QR-кода |
modsize | 1 | недопустимый размер модуля |
margin | 1 | недопустимый размер свободной зоны (в модулях) |
Данная таблица описания ошибок на русском и английском языках приведена в .\docs\db\lang.json свойтво "qrcreator_error_message".
Chrome v.106, Firefox v.105, Яндекс.Браузер v.22, Brave v.1.44, Microsoft Edge v.106
Прообраз от Кана Сонуна qrcode.js
Замечательное пособие QR Code Tutorial
На Хабре Алгоритм генерации QR-кода
От Федерального агентства по техническому регулированию и метрологии Спецификация символики штрихового кода QR Code ISO/IEC 18004:2015