2024-12-02

如何用QRCodeJS2生成二维码并将其与文字说明一起下载为单张PNG图片?

如何用qrcodejs2生成二维码并将其与文字说明一起下载为单张png图片?

二维码与文字图片同时下载

问题描述:
在使用 qrcodejs2 生成二维码时,如何将二维码与对应的文字说明一同下载为 png 图片?

解决方案:

使用 html2canvas 插件将 html 元素转换成图片。具体步骤如下:

  1. 生成二维码和文字元素:

    • 将二维码和文字说明分别放在不同的 html 元素中。
  2. 使用 html2canvas 转换图片:

    • 安装 html2canvas 插件。
    • 使用 html2canvas 函数将包含二维码和文字说明的 html 元素转换成图片。
  3. 保存图片:

    • 使用 filesaver.js 插件将图片保存为 png 文件。

代码示例:

<!DOCTYPE html>
<html>
<head>
  <title>工位信息填报</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="../css/QRcode.css">
  <script src="../node_modules/qrcodejs2/qrcode.min.js"></script>
  <script src="../js/FileSaver.js-master/dist/FileSaver.min.js"></script>
  <script src="../js/html2canvas.min.js"></script>
</head>
<body>
  <div class="qrcode-container">
    <div id="qrcode"></div>
    <div class="qrcode-label">工位号</div>
  </div>
  <script>
    // 生成二维码
    var qrcode = new QRCode("qrcode", {
      text: "http://example.com/",
      width: 256,
      height: 256,
      colorDark : "#000000",
      colorLight : "#ffffff",
      correctLevel : QRCode.CorrectLevel.H
    });

    // 绘制文字
    var canvas = document.getElementById("qrcode").getElementsByTagName("canvas")[0];
    var ctx = canvas.getContext("2d");
    ctx.font = "14px Arial";
    ctx.fillStyle = "#FF0000";
    ctx.textAlign = "center";
    ctx.fillText("工位号:", 256/2, 256);

    // 同时保存
    html2canvas(document.querySelector('.qrcode-container')).then(function(canvas) {
      var dataURL = canvas.toDataURL('image/png');
      saveAs(dataURL, 'test.png');
    });
  </script>
</body>
</html>
登录后复制

注意:

  • 调整 html2canvas 的范围以确保包含所有要保存的元素。
  • 根据需要调整文字的大小和位置,以确保其与二维码对齐。

以上就是如何用QRCodeJS2生成二维码并将其与文字说明一起下载为单张PNG图片?的详细内容,更多请关注php中文网其它相关文章!

https://www.php.cn/faq/1123882.html

发表回复

Your email address will not be published. Required fields are marked *