Estoy trabajando en la personalización de FrappeFramework 'ERPNext'.
Necesito mostrar el código QR en la factura de venta y también mostrarlo en la factura impresa.
Solución defectuosa actual: en este momento, busco una cadena codificada del lado del servidor. En el lado del cliente, tengo un campo HTML de imagen QR como tal:
Luego, en js, uso una biblioteca js 'QRious' para representar HTML en ese campo y se muestra el código 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' }); }Sin embargo, cuando intento imprimir la factura, el código QR no aparece y no puedo encontrar la manera de conectarme a la página de impresión para mostrar la imagen allí.
Mi pregunta es:
¿Puedo hacer esto de manera que ERPNext guarde la imagen renderizada sin tener que regenerarla cada vez desde una cadena codificada?
Si no, ¿cómo me conecto a la página de impresión para mostrar manualmente el código QR allí? (la cadena codificada está disponible en la página de impresión)
PD: también puedo obtener una matriz rgb/gray si eso ayuda.
Pude resolver este problema creando un formato de impresión personalizado en el tipo de documento "Lista de formatos de impresión".
Quería un código QR imprimible para poner en artículos que mostraran Código QR, Código de artículo, 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>