工作之余弄了 Web 打印解决方案

2021-02-07 19:41:55 +08:00
 xiangbohua

工作之余写了个小玩意,目前仅满足需求,还不能定制化扩展。 发出来大家提提意见啦

Web 打印解决方案

当前 WEB 应用开发非常流行,主要原因是 WEB 应用客户端的规则很简单,容易学习,容易维护,容易发布,降低了开发难度。但是,WEB 应用的打印一直以来却是一个难题,特别是在应用中完成标签打印(如包裹面单、货运标签等)、票据打印(如零售小票)难度较大,其难度在于如何将需要打印的内容,精确套打到标签、票据中,精确控制分页,并实现高速连续打印,可以说需求还是很多的。

目前打印主要有下面几种方案:

各有各的优缺点吧。

我这边采用的方案结合了 PDF 和打印精灵相结合的方案(纯属偶然,后面才发现的),用 C#写的目前只能在 Win 下面跑。目前,这(you)个(bu)东(shi)西(bu)还(neng)很(yong)菜。

使用步骤:

软硬件支持:

实现过程:

当前这个程序在我司用了几年了。 由于使用 PDF 作为数据源,所以支持的打印机很多,基本没有限制。

缺点:

后面考虑没事再完善一下,目前考虑这几个地方:

后面再看看,顺便说一句真有需要的朋友我可以免费帮忙设计模版,直接 run 起来==

下面是 GIT 地址 https://github.com/xiangbohua/PrintServer2

3692 次点击
所在节点    分享创造
12 条回复
zzk1989
2021-02-07 23:20:48 +08:00
以前买过 Lodop,后来还是换成网页打印了
mhycy
2021-02-08 01:45:00 +08:00
对于标签票据打印
基于某些可视化标签设计软件导出 ZPL 之类的打印指令(提取文本框坐标用于后续渲染)
并写一个打印指令框架进行渲染,并在此基础上进行程序化设计
是开发与使用上最简单快捷的( PDF 直接打标签机可能会打歪,或者走纸异常)

数据直接发送文本到打印机打印

Word 之类的文档,可考虑 Office API 做渲染服务器输出 PDF
(虽然超级重,而且很容易因为各种原因挂掉,例如弹窗)
SenLief
2021-02-08 09:18:36 +08:00
公司还用 clodop
coosir
2021-02-08 09:32:56 +08:00
希望可以通过网页自由设计模板,跨 Windows, macOS, Linux 的解决方案,最好也能支持移动端打印。
哦,太贪心了……
xmml
2021-02-08 12:52:07 +08:00
我做过的项目用 Freemarker 生成好 word 模版,然后把数据填充进去进行服务端渲染,再下载 word 文件到电脑进行打印。Freemarker 是 Java 的,自带跨平台。
kangyan
2021-02-08 21:56:00 +08:00
公司用的 clodop 和自研 c#插件...window 下跑完全没问题.
唯一痛点就是公司电脑都是 mac, 自己一般也用 macbook,为了开发打印公司还要特地背一个 window 笔记本上班...就很累.
要是能支持 mac 打印就好了
xiangbohua
2021-02-19 11:57:05 +08:00
@kangyan 我都是装虚拟机。
@xmml 感觉 word 还是有点重,适合数据量比较大的少量任务,数据量比较少的打印次数多的不知道速度如何

@coosir 目前来看只能使用钞能力了。
@mhycy 标签打印用 ZPL 打印确实比较灵活,而且有标准的指令协议,但是目前还不知道有没有什么比较好的模板编辑器
@zzk1989 LODOP 是商业版的么
mhycy
2021-02-19 16:48:20 +08:00
@xiangbohua
ZPL 写模板用他们官方的 ZebraDesinger for developers 就好了
导出 ZPL 文本后自行替换掉图片数据段,写个渲染器把文本渲染成对应的图片就好
xiangbohua
2021-02-20 13:16:08 +08:00
@mhycy 在研究研究
jikoya
2023-10-09 10:13:22 +08:00
web 端怎么调打印方法呢
lipengxs
96 天前
https://zplpreview.com ,也可以试试这个网站,功能更强的,包含 zpl 预览、以及下载为图片、pdf ,同时还支持 pdf 、图片、html 转 zpl
xiangbohua
95 天前
@jikoya 就发送一个 POST 请求就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/752183

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX