34 lines
972 B
TypeScript
34 lines
972 B
TypeScript
import jsbarcode from 'jsbarcode'
|
|
import type { QRCodeRenderersOptions } from 'qrcode'
|
|
import { toCanvas } from 'qrcode'
|
|
|
|
// const canvas = new OffscreenCanvas(0, 0);
|
|
const canvas = document.createElement('canvas')
|
|
const canvasCtx = canvas.getContext('2d')
|
|
|
|
export async function genBarcode(text: string, options: jsbarcode.Options)
|
|
{
|
|
canvas.width = options.width
|
|
canvas.height = options.height
|
|
canvasCtx.clearRect(0, 0, options.width, options.height)
|
|
try
|
|
{
|
|
jsbarcode(canvas, text, options)
|
|
// return await canvas.transferToImageBitmap();
|
|
return await createImageBitmap(canvas)
|
|
} catch
|
|
{
|
|
return null
|
|
}
|
|
}
|
|
export async function genQrcode(text: string, options: QRCodeRenderersOptions)
|
|
{
|
|
canvas.width = options.width
|
|
canvas.height = options.width
|
|
canvasCtx.clearRect(0, 0, options.width, options.width)
|
|
await toCanvas(canvas, text, options)
|
|
|
|
// return await canvas.transferToImageBitmap();
|
|
return await createImageBitmap(canvas)
|
|
}
|