打印相关整理
打印机类别
常见打印机有两种 热敏(Direct Thermal
) 和 热转印(Thermal Transfer
)
例如GK888t 这种就支持热转印和热敏两种方式。
热敏打印机原理:打印头对热敏纸加热,呈现图像。
热转印打印机原理:通过加热碳带描在纸上。
WHAT IS THE DIFFERENCE BETWEEN DIRECT THERMAL AND THERMAL TRANSFER PRINTING?
There are two thermal printing methods: direct thermal and thermal transfer. Each method uses a thermal printhead that applies heat to the surface being marked. Thermal transfer printing uses a heated ribbon to produce durable, long-lasting images on a wide variety of materials. No ribbon is used in direct thermal printing, which creates the image directly on the printed material. Direct thermal media is more sensitive to light, heat and abrasion, which reduces the life of the printed material.参考链接
碰到打印机无法打印内容时候,检查打印纸和配置的打印方式是否一致
另外用指甲在纸上滑一下,也可以有效区分纸张种类,比如超市发票这种,指甲滑动会变灰
打印机配置
打印机常见配置有两个地方,有printer preference 和 printer properties 这两个地方可能都能找到关于纸张大小以及orientation配置。在做静默打印相关功能时候,有时候发现程序无法正常控制纸张大小和方向,需要对这两个地方都做配置。
纸张类型
国内纸张和国外纸张会有差异,没有统一标准。国内纸张很多都是通过cm
设定。
静默打印
- CLodop实现静默打印 -- 这个是目前比较常见的,不过CLodop需要版权
- PdfBox
- 部分品牌打印机自带的云打印功能
- google云打印,原来有测过比较慢
对打印内容模板控制
- C# 里的fastreport,这种报表类工具
- wkhtmltopdf 这种衍生库,来对html 做转换,比较麻烦,而且很多不确定性
- 利用phantomjs 这种打开页面,然后保存pdf。由于phantomjs后续维护力度不够,而且存在问题,打印文件大小很难控制。
-
利用chrome自身网页打印
,然后css属性控制打印page大小以及打印分页。模板比较容易调整和修改。但是在页面节点很多,比如需要打印1000个sku这种情况,google打印会直接卡死。 - 后端比如python利用reportlab生成pdf文件,模板比较难控制和调整
- 前端通过pdf.js生成pdf文件
pdf切割组合
目前pdf切割组合只能通过设置CropBox来控制显示区域,以及通过orientation来控制方向。切割并不是真的把边缘上内容切掉了,而是依然存在,如果拼接方向调整,原来以为被切掉的东西还是会出来。所以pdf切割组合目前看起来只能在有限应用场景下使用。一些特例情况,可能只能先crop,然后弄成图片,最后再拼接!转成图片后比较大的问题,是放大和缩小会有清晰度问题,会影响barcode的识别!