欢迎光临
我们一直在努力

仓库打快递面单、前台打热敏小票,网页端怎么搞才不挨骂

仓管最烦两件事:打单弹窗、打到错的打印机。
你跟他解释「这是浏览器安全策略」,他只会说:「上家系统一点就出纸。」

百度相关搜索里,「快递面单打印」「热敏小票」「电商打单」基本都和网页打印绑在一起。需求其实很土:58/80 热敏、三层面单、一次几十上百单,别让我每次点确定。

别用 window.print 去仓库逞能

弹窗、默认 A4、默认激光机——这三样在仓库里随便中一样,你就等着被叫去现场。热敏纸宽跟 CSS 对不上,还会打出一长串空白,纸浪费得心疼。

这类场景行业做法就一种:电脑上挂个本地打印服务,网页把内容推过去。Lodop、各种打单助手,都是这思路。

我现在前端怎么接

包名 web-print-pdf,npm 上一搜就有:

https://www.npmjs.com/package/web-print-pdf

npm install web-print-pdf

小票示意(宽度按你们驱动改,别照抄当真理):

import webPrintPdf from 'web-print-pdf'

const html = `
<div style="width:72mm;font-family:monospace;font-size:12px;">
<div style="text-align:center;font-weight:bold;">鲜果便利</div>
<div style="text-align:center;">#202603120088</div>
<hr/>
<div>苹果 x2  ¥12.00</div>
<div>牛奶 x1  ¥6.50</div>
<hr/>
<div style="font-weight:bold;">合计  ¥18.50</div>
</div>
`

await webPrintPdf.printHtml(
html,
{
width: '80mm',
margin: { top: '2mm', bottom: '2mm', left: '2mm', right: '2mm' },
printBackground: true,
},
{ printerName: 'POS-80', copies: 1 },
{ action: 'print' }
)

printerName 我建议写进门店配置。别依赖 Windows 默认打印机,前台谁装过驱动谁知道有多玄学。

面单连打别 for 循环硬刚

单条 printHtml 调试没问题。真上百单,自己 for + await 容易把现场打成「有的出有的卡」。先去 npm 文档里看 batchPrint,把任务打包给客户端排队。字段以文档为准,我这边版本迭代过,不在文章里写死一份假参数表。

面单如果是快递公司返回的 PDF/图片链接,也别强行转 HTML,包本身支持按 URL/PDF 打(同样看文档)。自己拼 HTML 面单的,条码打完一定拿扫码枪抽检,屏幕上看着清楚不代表热敏上清晰。

上线前我一般盯这几句

  • 客户端开机自启没有
  • 面单机名字对不对
  • 先 preview 一张,再放手让仓管连打
  • 失败单号要能重打,别整批发完才发现错模板

Lodop、hiprint 百度也能搜到一堆。老项目有资产就继续用。我们这种「页面模板已经是 Vue 组件,只差静默」的,塞个 npm 往往更快。你选哪种都行,别在仓库里还弹 Chrome 打印框就行。

赞(0)
未经允许不得转载:171主机测评 » 仓库打快递面单、前台打热敏小票,网页端怎么搞才不挨骂
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址