使用Qz-Tray HTML打印生成CODE_128条码遇问题求助
解决QZ-Tray HTML打印中生成CODE_128条码的问题
方案一:修复Libre Barcode 128字体生效问题
字体未起效的核心原因是HTML字符串未正确引入字体资源,QZ-Tray打印时无法加载外部字体,需将字体嵌入到HTML中。可通过@font-face将字体转为Base64格式嵌入,或指定QZ-Tray能访问的本地字体路径。
修改后的printHTML函数示例:
function printHTML() { var config = getUpdatedConfig(); // 嵌入Libre Barcode 128字体(替换为完整字体Base64内容) var fontStyle = '<style>' + '@font-face {' + ' font-family: "Libre Barcode 128";' + ' src: url(data:font/truetype;base64,[你的字体Base64内容]) format("truetype");' + '}' + '.barcode { font-family: "Libre Barcode 128"; font-size: 48px; }' + '</style>'; var colA = '<h2>* QZ Print Plugin HTML Printing *</h2>' + '<span style="color: #F00;">Version:</span> ' + qzVersion + '<br/>' + '<span style="color: #F00;">Visit:</span> https://qz.io/' + '<br/><br/><span class="barcode">123456789</span>'; // 替换为你的条码内容 var colB = '<img src="' + getPath() + '/assets/img/image_sample.png">'; var printData = [ { type: 'html', format: 'plain', data: '<html>' + fontStyle + ' <table style="font-family: monospace; border: 1px;">' + ' <tr style="height: 6cm;">' + ' <td valign="top">' + colA + '</td>' + ' <td valign="top">' + colB + '</td>' + ' </tr>' + ' </table>' + '</html>' } ]; qz.print(config, printData).catch(displayError); }
方案二:直接插入条码图片(无需依赖字体)
若字体方案仍无法生效,可提前将CODE_128条码生成图片Base64字符串,直接插入到HTML中。核心是通过条码生成逻辑将文本转为图片数据,再嵌入到HTML字符串里。
修改后的printHTML函数示例:
function printHTML() { var config = getUpdatedConfig(); // 替换为你的CODE_128条码图片Base64内容 var barcodeImg = '<img src="data:image/png;base64,[你的条码图片Base64内容]" alt="CODE_128条码">'; var colA = '<h2>* QZ Print Plugin HTML Printing *</h2>' + '<span style="color: #F00;">Version:</span> ' + qzVersion + '<br/>' + '<span style="color: #F00;">Visit:</span> https://qz.io/' + '<br/><br/>' + barcodeImg; var colB = '<img src="' + getPath() + '/assets/img/image_sample.png">'; var printData = [ { type: 'html', format: 'plain', data: '<html>' + ' <table style="font-family: monospace; border: 1px;">' + ' <tr style="height: 6cm;">' + ' <td valign="top">' + colA + '</td>' + ' <td valign="top">' + colB + '</td>' + ' </tr>' + ' </table>' + '</html>' } ]; qz.print(config, printData).catch(displayError); }
注意事项
- 字体Base64可通过在线工具将
.ttf字体文件转换得到 - 条码图片Base64可通过条码生成库提前生成,再将结果嵌入到HTML字符串中
内容的提问来源于stack exchange,提问作者Avian Driyanto
相关产品推荐
相关产品推荐

