多平台统一管理软件接口,如何实现多平台统一管理软件接口
316
2022-06-23
仓储物流的过程中往往少不了一些使用热敏打印机或者碳带打印机打印一些条码、信息贴在实物或者包裹上
最好的实现方式不过于直接使用热敏代码形成文本直接输出到打印机做打印
但是热敏代码也是一门需要特殊的语言,需要学习
故为了更快更方便的实现,就用到了画布绘制后形成image输出到打印机
而image也是有要求的,比如输出的格式、大小直接影响打印的质量
这里介绍下使用微软的报表布局绑定数据转image输出到打印机的方式
1、nuget上搜索Microsoft.ReportViewer.Common、Microsoft.ReportViewer.WebForms安装
2、创建rdlc报表,绘制指定打印输出的模板大小,对rdlc添加数据集,可以为对象,这里使用对象绑定(后台查询数据映射给对象)
可以为界面每个项的属性进行设置:字体、大小、数据绑定、对齐等,也可以动态使用表达式(数据源传入指定值)
3、打印入口,为报表绑定数据
DeviceInfo的详细说明见:
https://docs.microsoft.com/zh-cn/sql/reporting-services/image-device-information-settings?redirectedfrom=MSDN&view=sql-server-ver15
LocalReport.Render使用见
https://docs.microsoft.com/zh-cn/previous-versions/dd468075(v=vs.140)
注意:OutputFormat为EMF
PageWidth、PageHeight为rdlc的大小
如果需要使用到条码信息,则需要声明byte[] 接收使用BarcodeLib.Barcode相关条码类生成条码图片
rdlc模板上添加图像控件字段指向byte[]字段,mime选择image/png,大小显示为:调整为合适大小
测试时可以保存为图片,预览效果图
4、生成的图片输出到打印机打印:
将生成的image在打印机端
可使用PrinterSettings.StringCollection listPrint = PrinterSettings.InstalledPrinters;获取所有打印机名称
以上cs结构下不需要特殊权限
如果为bs结构下或者需要ajax调取打印机的(电子称重同理可借鉴):
1、可以将打印图片的方法作为接口宿主到windowsservice上开放端口,安装在需要打印的电脑上。
接收的不是image改为图片的url,得到url后进行download后输出到打印机
可以增加接口判断打印服务是否可用
在app.config增加
2、形成图片的方法作为服务端接口可得到图片,接口url可匿名给打印服务获取图片
在网页的按钮上实现ajax跨域请求:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~