|
|
<!--
|
|
|
- QR Code generator library (C++)
|
|
|
-
|
|
|
- Copyright (c) Project Nayuki. (MIT License)
|
|
|
- https://www.nayuki.io/page/qr-code-generator-library
|
|
|
-
|
|
|
- Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
|
- this software and associated documentation files (the "Software"), to deal in
|
|
|
- the Software without restriction, including without limitation the rights to
|
|
|
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
|
- the Software, and to permit persons to whom the Software is furnished to do so,
|
|
|
- subject to the following conditions:
|
|
|
- * The above copyright notice and this permission notice shall be included in
|
|
|
- all copies or substantial portions of the Software.
|
|
|
- * The Software is provided "as is", without warranty of any kind, express or
|
|
|
- implied, including but not limited to the warranties of merchantability,
|
|
|
- fitness for a particular purpose and noninfringement. In no event shall the
|
|
|
- authors or copyright holders be liable for any claim, damages or other
|
|
|
- liability, whether in an action of contract, tort or otherwise, arising from,
|
|
|
- out of or in connection with the Software or the use or other dealings in the
|
|
|
- Software.
|
|
|
-->
|
|
|
<!DOCTYPE html>
|
|
|
<html>
|
|
|
<head>
|
|
|
<meta charset="UTF-8">
|
|
|
<title>QR Code generator library demo (JavaScript)</title>
|
|
|
<style type="text/css">
|
|
|
html {
|
|
|
font-family: sans-serif;
|
|
|
}
|
|
|
td {
|
|
|
vertical-align: top;
|
|
|
padding-top: 0.2em;
|
|
|
padding-bottom: 0.2em;
|
|
|
}
|
|
|
input[type=radio] + label, input[type=checkbox] + label {
|
|
|
margin-left: 0.1em;
|
|
|
margin-right: 0.7em;
|
|
|
}
|
|
|
</style>
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
<h1>QR Code generator demo library (JavaScript)</h1>
|
|
|
<form action="#" method="get" onsubmit="return false;">
|
|
|
<table class="noborder" style="width:100%">
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
<td><strong>Text string:</strong></td>
|
|
|
<td style="width:100%"><textarea placeholder="Enter your text to be put into the QR Code" id="text-input" style="width:100%; max-width:30em; height:5em; font-family:inherit" oninput="redrawQrCode();"></textarea></td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td><strong>QR Code:</strong></td>
|
|
|
<td>
|
|
|
<canvas id="qrcode-canvas" style="padding:1em; background-color:#E8E8E8"></canvas>
|
|
|
<svg id="qrcode-svg" style="width:30em; height:30em; padding:1em; background-color:#E8E8E8">
|
|
|
<rect width="100%" height="100%" fill="#FFFFFF" stroke-width="0"></rect>
|
|
|
<path d="" fill="#000000" stroke-width="0"></path>
|
|
|
</svg>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td><strong>Error correction:</strong></td>
|
|
|
<td>
|
|
|
<input type="radio" name="errcorlvl" id="errcorlvl-low" onchange="redrawQrCode();" checked="checked"><label for="errcorlvl-low">Low</label>
|
|
|
<input type="radio" name="errcorlvl" id="errcorlvl-medium" onchange="redrawQrCode();"><label for="errcorlvl-medium">Medium</label>
|
|
|
<input type="radio" name="errcorlvl" id="errcorlvl-quartile" onchange="redrawQrCode();"><label for="errcorlvl-quartile">Quartile</label>
|
|
|
<input type="radio" name="errcorlvl" id="errcorlvl-high" onchange="redrawQrCode();"><label for="errcorlvl-high">High</label>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Output format:</td>
|
|
|
<td>
|
|
|
<input type="radio" name="output-format" id="output-format-bitmap" onchange="redrawQrCode();" checked="checked"><label for="output-format-bitmap">Bitmap</label>
|
|
|
<input type="radio" name="output-format" id="output-format-vector" onchange="redrawQrCode();"><label for="output-format-vector">Vector</label>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Border:</td>
|
|
|
<td><input type="number" value="4" min="0" max="100" step="1" id="border-input" style="width:4em" oninput="redrawQrCode();"> modules</td>
|
|
|
</tr>
|
|
|
<tr id="scale-row">
|
|
|
<td>Scale:</td>
|
|
|
<td><input type="number" value="8" min="1" max="30" step="1" id="scale-input" style="width:4em" oninput="redrawQrCode();"> pixels per module</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Version range:</td>
|
|
|
<td>Minimum = <input type="number" value="1" min="1" max="40" step="1" id="version-min-input" style="width:4em" oninput="handleVersionMinMax('min');">, maximum = <input type="number" value="40" min="1" max="40" step="1" id="version-max-input" style="width:4em" oninput="handleVersionMinMax('max');"></td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Mask pattern:</td>
|
|
|
<td><input type="number" value="-1" min="-1" max="7" step="1" id="mask-input" style="width:4em" oninput="redrawQrCode();"> (−1 for automatic, 0 to 7 for manual)</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Boost ECC:</td>
|
|
|
<td><input type="checkbox" checked="checked" id="boost-ecc-input" onchange="redrawQrCode();"><label for="boost-ecc-input">Increase <abbr title="error-correcting code">ECC</abbr> level within same version</label></td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>Statistics:</td>
|
|
|
<td id="statistics-output" style="white-space:pre"></td>
|
|
|
</tr>
|
|
|
<tr id="svg-xml-row">
|
|
|
<td>SVG XML code:</td>
|
|
|
<td>
|
|
|
<textarea id="svg-xml-output" readonly="readonly" style="width:100%; max-width:50em; height:15em; font-family:monospace"></textarea>
|
|
|
</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
</form>
|
|
|
<script type="application/javascript" src="qrcodegen.js"></script>
|
|
|
<script type="application/javascript" src="qrcodegen-demo.js"></script>
|
|
|
|
|
|
<hr>
|
|
|
<p>Copyright © Project Nayuki – <a href="https://www.nayuki.io/page/qr-code-generator-library">https://www.nayuki.io/page/qr-code-generator-library</a></p>
|
|
|
</body>
|
|
|
</html>
|