
这篇文章给出一条“开箱即用、稳定、跨浏览器”的 Web 打印最简路线:使用 web-print-pdf(npm 包)。不需要安装浏览器插件、无需控件注册表操作,也不用学习繁琐的打印脚本,只需几行代码即可把 HTML、PDF、图片精准送到打印机。
相比传统方案:
npm i web-print-pdf确保运行时已部署本地打印服务(项目提供 Electron 打包与一键安装能力);前端仅调用 API 即可。
import { printPdfByUrl } from 'web-print-pdf';
async function quickPrint() {
await printPdfByUrl({
url: 'https://example.com/order.pdf',
printer: 'HP-LaserJet',
copies: 1,
duplex: false,
paper: 'A4',
silent: true,
});
}import { printHtmlByUrl, printHtmlByBase64 } from 'web-print-pdf';
// 远程 URL
await printHtmlByUrl({ url: 'https://example.com/preview.html', silent: true });
// Base64 字符串(适合前端动态生成的 DOM + 样式)
await printHtmlByBase64({ base64: btoa('<html>...</html>'), silent: true });import { printImageByUrl, printImageByBase64 } from 'web-print-pdf';
await printImageByUrl({ url: 'https://example.com/ticket.png', silent: true });小贴士:实际可用参数会因驱动与机型差异有所不同,建议先通过打印机列表与纸型查询接口进行校验。
Q:支持哪些浏览器? 只要能调用前端接口即可,核心能力由本地服务/Electron 内核承担,规避浏览器差异。
Q:如何静默打印? 设置 silent: true,以及在部署时开启本地服务对应权限配置即可。
Q:如何指定纸张和边距? 通过 paper、margin、orientation 等参数,并结合打印机驱动能力。
Q:能否批量任务并发? 内置队列与并发控制,避免阻塞;也可按业务维度分组串行。
如果你的目标是“最短时间把内容稳定打印出来”,web-print-pdf(npm 包)就是当前最简单、最有效的路径:
现在就为你的项目加入可靠的打印能力吧。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。