0

我正在研究 FrappeFramework 'ERPNext' 定制。

我需要在销售发票中显示二维码并在打印发票中显示。

当前有缺陷的解决方案:现在,我从服务器端获取编码字符串。在客户端,我有一个 QR 图像 HTML 字段,如下所示:

HTML 字段截图

然后在 js 中,我使用 js 库 'QRious' 将 HTML 渲染到该字段并显示 QR 码。

function generateQRCode(base64) {
  var qr = new QRious({
    element: document.getElementById("qr_code"),
    size: 200,
    value: "",
  });
  var qrtext = base64;
  qr.set({
    foreground: "black",
    size: 200,
    value: qrtext,
    mime: 'image/png'
  });
}

但是,当尝试打印发票时,二维码没有出现,我无法弄清楚如何连接到打印页面以在那里呈现图像。

我的问题是:

我可以通过 ERPNext 保存渲染图像的方式来执行此操作,而无需每次都从编码字符串重新生成它。

如果没有,我如何连接到打印页面以手动呈现 QR 码。(编码字符串可在打印页面上找到)

PS 如果有帮助,我也可以获取一个 rgb/灰色数组。

4

1 回答 1

0

我能够通过在“打印格式列表”文档类型中制作自定义打印格式来解决这个问题。

我想要一个可打印的 QR 码来放置显示 QR 码、项目代码、SN 的物品

<style>
  .print-format {
    padding: 0px;
  }

  @media screen {
    .print-format {
      padding: 0in;
    }
  }

</style>

<div style="position: relative; top:0.25cm">
  <div style="width:6.35cm;height:3.81cm;">
    <img alt='' src='https://barcode.tec-it.com/barcode.ashx?data={{ doc.item_name }} SN%3A%20{{ doc.name }}&code=QRCode&translate-esc=on' />
    <br>
    Item:{{ doc.item_code  }}
    <br>
    SN:{{ doc.serial_no  }}
  </div>
</div>
于 2021-11-07T16:57:53.140 回答