Package Exports
- easygenqr
- easygenqr/dist/easygenqr.esm.js
- easygenqr/dist/easygenqr.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (easygenqr) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
easygenqr
This is a library for generating QR codes. Use encodeData to implement data parsing for qrcode, and then use generateSVGQRCode to generate svg for qrcode
generate svg for qrcode
custom styles
add brand logo
Installation
$ npm install easygenqr
or
$ yarn add easygenqr
or
$ pnpm add easygenqrUsage
Vanilla js demo
const qr = encodeData({
text: "Hello World!",
errorCorrectionLevel: 3
});
const svg = generateSVGQRCode(qr,{
bgColor: "#ffffff",
dotColor: "#000000",
dotMode: 0,
markerColor: "#000000",
markerMode: 0
});
// add to html
const div = document.createElement("div");
div.style.width = "300px";
div.style.height = "300px";
div.innerHTML = svg;Vue.js demo
<script setup lang="ts">
import {
encodeData,
ErrorCorrectLevel,
generateSVGQRCode,
MarkerModes,
} from "easygenqr";
interface Props {
text: string;
width?: number;
height?: number;
ecc?: ErrorCorrectLevel;
bgColor?: string;
dotColor?: string;
dotMode?: number;
markerMode?: MarkerModes;
markerColor?: string;
}
const props = defineProps<Props>();
const qrSVGString = ref<string>();
const qrData = ref<any>();
function render() {
const qr = encodeData({
text: props.text,
errorCorrectionLevel: props.ecc || 1,
});
qrData.value = qr;
qrSVGString.value = generateSVGQRCode(qr, {
bgColor: props.bgColor || "#ffffff",
dotColor: props.dotColor || "#000000",
dotMode: props.dotMode || 0,
markerMode: props.markerMode || 0,
markerColor: props.markerColor || "#000000",
});
}
watch(
props,
() => {
render();
},
{ immediate: true }
);
</script>
<template>
<div
:style="{
width: props.width ? props.width + 'px' : '150px',
height: props.height ? props.height + 'px' : '150px',
}"
v-html="qrSVGString"
></div>
</template>React.js demo
import { encodeData, generateSVGQRCode } from 'easygenqr'
export default function QRCode(){
const qr = encodeData({
text: "Hello easygenqr!",
errorCorrectionLevel: 1,
});
const svgString = generateSVGQRCode(qr, {
bgColor: "#ffffff",
dotColor: "#000000",
dotMode: 0,
markerMode: 0,
markerColor: "#000000",
})
return <div dangerouslySetInnerHTML={{ __html: svgString }} />;
}API
encodeData
| Parameters | Type | Default | Description |
|---|---|---|---|
| text | string | qr code text | |
| errorCorrectionLevel | ErrorCorrectLevel | 3 | error correction level: 0=>LOW 1=>MEDIUM 2=>QUARTILE 3=>HIGH |
generateSVGQRCode
| Parameters | Type | Default | Description |
|---|---|---|---|
| qr | qrcodegen.QrCode | The data returned by encodeData() refrence: QR Code generator library |
|
| options | QRCodeOptions | { bgColor: "#ffffff", dotColor: "#000000", markerColor: "#000000", dotMode: 0, markerMode: 0, withLogo:true } |
qr code options for render svg |
QRCodeOptions:
QRCodeOptions {
bgColor?: string; // qr code background color
dotColor?: string; // qr code dot color
markerColor?: string; // marker color
dotMode?: DotModes; // dot style 0=>SQUARE 1=>CIRCLE
markerMode?: MarkerModes; // marker style
logo?: string; // logo url
withLogoBg?: boolean; // logo background is transparent or not
}DotModes
| Value | Description |
|---|---|
| 0 | Square |
| 1 | Circle |
| 2 | Rounded |
| 3 | LineCircle |
MarkerModes
| Value | Description |
|---|---|
| 0 | Base: border square and center square |
| 1 | border rounded corner and center rounded corner |
| 2 | border circle and center circle |
| 3 | border square and center circle |
| 4 | border circle and center square |
logo
Support Base64 or picture url.
withLogoBg
| Value | Description |
|---|---|
| true (default) | logo background is white. |
| false | logo background is transparent. |
Developer
Using tsup to build easygenqr.
Generating data for qrcode based on https://www.nayuki.io/page/qr-code-generator-library
run locally
npm run devopen example
open example/index.html in browser
debug in index.html file
Reference
QR Code generator: https://www.nayuki.io/page/qr-code-generator-library