- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用 qz 托盘打印标签,我的技术规范是:
问题是,标签输出有 CODE128 条形码,当我尝试扫描它时,它不可读。我尝试扫描pdf文件,效果很好。尝试调整 html、html2pdf.js 配置和 qz,但看起来输出从未以高分辨率输出。
我的 qz 托盘代码:
const qzPrinter = qz.printers.find("Wincode C342 (Copy 3)");
const funcUpdateLoading = this.updateLoading;
qzPrinter().then(function(printer) {
let objPrinter = printer;
var config = qz.configs.create(objPrinter, {
margins: { left: 0.1, bottom: 0.1 }
});
var source = window.document.getElementById("dummyAwb").innerHTML;
var opt = {
margin: [0,0],
filename: "myfile.pdf",
image: { type: "jpeg", quality: 1 },
html2canvas: { dpi: 192, letterRendering: true },
jsPDF: { unit: "mm", format: [365, 305], orientation: "portrait" },
pagebreak: { mode: "avoid-all", before: ".akhirTable" }
};
html2pdf()
.set(opt)
.from(source)
.toPdf()
.output("datauristring")
.then(function(pdfAsString) {
let arrStr = pdfAsString.split(",");
var data = [
{
type: "pdf",
format: "base64",
data: arrStr[1]
}
];
qz.print(config, data).then(function() {
funcUpdateLoading();
});
});
});
请问有人可以指出,如何调整qz托盘中的质量吗? TIA
最佳答案
[...] how to adjust the quality in qz tray?
影响质量的三个主要因素。
根据html2pdf的页面,它使用html2canvas来渲染其内容:
html2pdf
converts any webpage or element into a printable PDF entirely client-side using html2canvas and jsPDF.
这种方法的缺点是您将内容作为光栅图形来获取,从而删除了任何矢量打印数据。更糟糕的是,它的网络分辨率为 generally 96 dpi .
幸运的是,html2pdf 使用 html2canvas
进行渲染,因此使用自定义 {scale: ...}
选项可以获得更好的分辨率:
var opt = {
...
html2canvas: { scale: 6 },
...
};
可以通过将目标 DPI 除以 96 来计算比例。例如,大多数打印机为 600 dpi
,因此比例因子为 6
或 7
会非常好。
最终应该考虑的另一个因素是选择jpeg
进行图像压缩。然而 png
通常会产生更高质量的结果,may require a shim .
QZ Tray可打印PDF, Images, HTML以及"raw"文件。
这里选择使用 PDF 很有趣,因为 QZ Tray 可以直接打印 HTML 内容,但假设您确定使用 PDF,强烈建议提供配置选项 { rasterize: false }
.
var config = qz.configs.create("Printer Name", { rasterize: "false" }); // use vector rendering
此选项将阻止 QZ Tray 在打印时创建另一个光栅图形。请注意,自 QZ Tray 2.1 起,此选项已默认关闭。
<小时/>标题提出以下主张:
barcode low quality
为了使条形码以与上述相同的质量呈现,条形码还必须以可缩放的分辨率呈现。这意味着,条形码图像的大小应与相同比例因子(例如 6x)相当。
您可以通过利用矢量条形码来避免使用大条形码。大多数条形码库提供各种选项(例如 PNG、SVG 等)。 Vector 将使用 SVG 或自定义 HTML(例如具有背景颜色的 div),它们将通过上述实用程序正确缩放。例如,JsBarcode将 SVG 元素渲染到页面,该元素将无限缩放,无需特殊的大小乘数。
<小时/>结合起来,上述这些技术应该会产生良好的打印质量。值得注意的是,有多种方法可以呈现 HTML 以供打印机使用,并且您可能会喜欢使用其他技术,例如:
FPDF
、mPDF
、DOMPDF
、wkhtmltopdf
, TCPDF
)关于javascript - QZ 托盘输出打印条码质量低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59498104/
我尝试使用 qz 托盘打印标签,我的技术规范是: React 网络应用 从API获取数据,然后将其渲染为html元素,使用html2pdf.js将其转换为pdf 将 pdf 转换为 base64 字符
我正在使用 jZerba 打印插件进行 POS 发票打印,我创建了一个 ftl 并将其发送到 jZebra HTML 打印,一切都按预期工作,但是当涉及多个页面时,它只打印第一页,其他页面得到 tri
我一直在寻找一种在客户端从 Web 打印的解决方案(https://medium.com/@yehandjoe/angular-2-raw-printing-service-56614d358754)
我正在尝试使用 QZ-Tray 打印条码但是我似乎找不到一个很好的例子,我试过这里的代码 https://groups.google.com/forum/#!topic/qz-print/5ybFBj
我正在尝试使用 QZtray 2.0 打印 HTML 文件。文件正在页面左侧打印。我也设置了高度和宽度,但同样的问题。 function printHTML() { var printData
我正在尝试将 sql.qz 文件上传到 phpmyadmin 上,但我不断收到此错误。我使用 Xampp 创建了一个离线网站,但现在当我上传它时却不允许我上传。我拥有所有特权,我的房东甚至与我核实。任
测验的代码位于名为 tview 的 javasource 包中 package tview.quiz; import java.awt.*; import java.awt.event.*; impo
我正在尝试使用 Java 插件从浏览器打印到票据打印机的原始打印。我已经用 HTML 和 Javascript 编写了一个测试程序,该程序运行正常,但现在我正在尝试将代码传输到 php 脚本,以便在更
我有一个带有 html 标签的 php 页面 Invoice Print body {font-
我尝试使用 qz-print 和 EPSON - TM-T20II 打印文件夹中的多个 html 文件,但似乎不起作用。 这是我使用的脚本示例: function printPages() {
如何正确抑制 localhost wants to access connected printers Untrusted Website 访问打印机时的模态? 我已尝试通过此 OpenSSL 命令创
我们都知道 NPAPI 将在几个月内从 Chrome 中完全删除。 有什么可以替代 Jzebra/QZ Java 插件将原始打印(发送原始 ESC/P 命令)到 POS 打印机? 是否有 Chrome
过去几天我在谷歌上搜索,但在网络上的任何地方都找不到相关的解决方案。 我想使用安装在我的 win7 32 位桌面上的 qz 托盘通过 Google 脚本编辑器中的代码从 google 电子表格打印到通
我是一名优秀的程序员,十分优秀!