
群里一聊网页打印两条线老被揉成一团服务器挂个 Puppeteerpage.pdf()很爽仓库又说要「静默打到那台热敏机」。前者产物是文件后者产物是纸。机房里的无头浏览器够不着柜台 USB 口——这不是框架缺陷是空间问题。我怎么分要电子底稿、邮件附件、统一字体归档 → 继续 Puppeteer / 别的 PDF 管线别为了「打印」两个字硬上桌面客户端。要指定门店打印机、少弹窗、人还在工位旁边 → 本机打印客户端。页面用web-print-pdf触发Web打印专家出纸。两个都要也很常见服务端先出 PDF 归档工位再拿 URL 打npminstallweb-print-pdfimportwebPrintPdffromweb-print-pdf// 浏览器里把已签发的 PDF 送到本机打印机awaitwebPrintPdf.printPdfByUrl(pdfUrl,{},{printerName:仓内面单机,copies:1},{action:print})HTML 直打也行适合小票这种本来就网页排版的东西awaitwebPrintPdf.printHtml(html,{paperFormat:A4},{printerName:仓内面单机})别把web-print-pdf丢进 Node 服务里跑——它认的是用户桌面上的客户端不是你的 K8s Pod。我见过的委屈架构只在服务器堆 PDF业务同学下载再手动打能交差高峰等于没有自动化。以为 npm 包装上服务器就能「云直打门店」门店机器不在链路里直打不成立。只追求静默、不留底稿纸丢了、纠纷来了库里什么都没有更难受。出纸成功顺便留 PDF或先 PDF 再打看你们合规要求。成本直觉Puppeteer 贵在服务器 CPU 内存和队列本地静默把麻烦摊到工位安装与自启。上千门店若要云端直达每台设备那是另一类云打印产品多数业务系统用「工位客户端」更现实。收束Puppeteer 解决「生成文档」工位静默解决「这台柜出台纸」。可以串不要并成一个 API 幻想。选型时先问自己要的是文件还是纸答案清楚了工具就清楚了。包名web-print-pdf。不放外链。