
「浏览器静默打印 PDF」是百度里很常见的搜法手里已经有 PDF报表引擎、后端生成、OSS 链接还想一点就出纸、少弹窗、打到指定机。很多人先试浏览器打开 PDF → CtrlP或window.open(pdfUrl)再 print。框还在默认机还是财务那台仓管照样骂。PDF 已经有了缺的是「出纸通道」分清两件事你已有的你还要的PDF 文件 / URL / Base64打到某台物理打印机服务端渲染好的版式不弹预览、可批量浏览器打开 PDF 再打印走的是阅读器/浏览器打印流程不是静默。前端用 jsPDF 再生成一份也解决不了「指定工位打印机」。生产里怎么做出纸电脑装本机打印客户端页面把 PDF 地址或 Base64 推过去由客户端提交系统打印队列。npminstallweb-print-pdfURL 方式报表已落库 / 有可访问链接importwebPrintPdffromweb-print-pdfawaitwebPrintPdf.printPdfByUrl(pdfUrl,{},// pdfOptions 按需要很多场景可空{printerName:仓库-面单机,copies:1},{action:print,requestTimeout:20})Base64 方式接口直接返回文件流awaitwebPrintPdf.printPdfByBase64(pdfBase64,{},{printerName:仓库-面单机,copies:1},{action:print})联调先preview确认页数和方向再改静默。现场最容易挂的点客户端访问不到 PDF 地址登录态、Cookie、内网域名、HTTPS 证书随便一个没通就失败。别假设「浏览器能开客户端也能开」——进程不同。还在用默认打印机名字写进工位配置用getPrinterList()抄真实名称。把静默打印塞进服务器机房里的 Node/K8s 够不着柜台 USB 口。PDF 可以在服务端生成出纸仍在工位客户端。和「浏览器里打印网页」别混要打的是当前页面 HTML用printHtml。要打的是现成 PDF用printPdfByUrl/printPdfByBase64。两条链路参数不同别一套代码硬套。收束浏览器静默打印 PDF关键不是再找一个前端 PDF 库而是PDF 生成归后端/报表静默出纸归本机客户端。页面 JS 只负责把文件交给客户端。包名搜web-print-pdf。本文不放链接。