当前位置: 首页 > news >正文

备案 增加网站深圳市住建局官网平台

备案 增加网站,深圳市住建局官网平台,wordpress 获取某个分类的文章,应届生简历模板本文对指令打印和驱动打印做了一个简要的介绍#xff0c;分享了在开发客户端打印组件时的一些过程并提出了一个新轮子用于解决老的问题并引出更多的新问题。全文大概 3500 字无图#xff0c;阅读大概需要 7 分钟。驱动打印是指#xff1a;使用 PrintDocument 进行打印。通过… 本文对指令打印和驱动打印做了一个简要的介绍分享了在开发客户端打印组件时的一些过程并提出了一个新轮子用于解决老的问题并引出更多的新问题。全文大概 3500 字无图阅读大概需要 7 分钟。驱动打印是指使用 PrintDocument 进行打印。通过注册其 PrintPage 方法拿到 Graphics 对象使用 GDI 画图打印。指令打印是指利用打印机厂商提供的指令协议控制打印机直接打印。驱动打印和 Windows 平台关联紧密所以不能做到跨平台。驱动打印大部分情况不能即插即用在第一次将某打印机链接到电脑时可能需要安装对应的驱动程序系统才能正确的识别到该打印机。绝大部分小票打印机都支持 ESC 指令除了 ESC 外常见的还有 TSC、TSPLPPLA等这与打印机厂商和型号相关。指令打印可以跨平台且在不同的平台要向硬件发出的指令是相同的无论链接方式是 USB、串口还是蓝牙。从开发的角度来说如果我们想兼容市面上大多数打印机并且想支持跨平台那么这就会是一件需要仔细斟酌和权衡的事情1、仅采用驱动打印。那么我们不得不放弃对跨平台的支持。如果遇到过老的设备它很可能没有提供对最新的操作系统比如 Windows 10的支持所以单纯的驱动打印是玩儿不赢的。2、仅采用指令打印。我们可以做到跨平台无惧系统升级但仍有无解的情况如果客户的打印机没有指令打印或者指令协议很小众没必要做支持怎么办这是真实发生的事情有客户需要用传统的办公用打印机打印小票真·谜一般的操作。3、驱动打印和指令打印并行。这当然会解决上述问题但同时会引入新的问题你不得不写出多套不同的代码去完成一件相同的事情更可怕的是在修改一个问题时很可能会改了这一套忘了那一套。在项目起初因为对各种打印方案并不熟悉所以带你部分经过了上述三个阶段的演变。当支持的打印机和打印格式越来越多维护这部分代码就成为一件苦力活儿而且非常容易出错。接手这部分代码的人会被怀疑是否能力有问题毕竟开始的时候时那么的简单。大概 2019 年 7 月份时项目组对驱动打印进行了封装该封装参考了网上的开源组件构建出了一个名为 TicketDocument 的类型并添加了一些基础操作TicketDocument 可以序列化为 JSON 字符串用于在网络间传输。所以可以将 TicketDocument 的生成放置在服务端这样对打印格式进行微调时不需要更新客户端。项目中对 TicketDocument 的调用类似如下其中 doc 变量即 TicketDocument 实例doc.AddText($来源:{g.SName}); doc.AddNewRow(); doc.AddText($出厂时间{g.CommandDate:yyyy/MM/dd}); doc.AddNewRow(); doc.AddText($产品:{g.Items.Count(i i.FXashId 0)}件, width: 0.4f); doc.AddText($附件:{g.Items.Count(i i.FXashId ! 0)}件, width: 0.3f, offset: 0.4f, alignment: StringAlignment.Center); doc.AddText($共计:{g.Items.Count}件, width: 0.3f, offset: 0.7f, alignment: StringAlignment.Far);当项目不得不支持指令打印时 TicketDocument 的抽象定义就不能满足需求了因为指令打印并不能提供类似于 GDI 这种强大的控制力。驱动打印和指令打印并行的事情必须上马。因为指令各不相同所以就编写了不同的代码对应不同的打印机业务应用调用打印宿主时也采用多种不同的协议格式因项目不同没有使用 TicketDocument 。这对驱动打印部分造成了影响满天飞的硬编码写死的数组下标接着在对打印格式进行调整时驱动打印罢工了。于是我们需要一个新的轮子它应该满足跨平台打印的需求在 Windows、Android、iOS 中有相同的行为表现。它应该同时支持驱动打印和指令打印。在满足前两条的同时它应该尽量减少新增格式时的工作量。All problems in computer science can be solved by another level of indirection .计算机科学中的所有问题都可以通过间接的另一个层次来解决。出自David Wheeler这是软件工程学中的一个真理我们可以引入一种新的自定义指令来决绝上述的问题这种指令是一种高级指令它对驱动打印和大部分目前受支持的指令打印行为进行了封装。这种高级指令最终会被翻译成对 Graphics 的操作或打印机指令。这种高级指令由业务系统生成并可以在网络中进行传播。这种高级指令可以使用目前的主流编程语言生成比如 C#、Java、Python、PHP、JavaScript 等。这种高级指令应该易于识别并尽量减少在网络传输中的流量消耗。TicketDocument 似乎是一个不错的先驱者目前为止它满足了 3、4、5 这三个条件。但设计一种高级指令并不是唯一需要的事情仍有许多工作要做比如这种高级指令的解析和转换等。目前为止我并没有完成对这个轮子的全部设计以上是对这个轮子的设想。这个轮子在设计上还不完整有许多空白的部分需要填上。如果您对这个轮子感兴趣可以收藏本站在文章下留言或打赏作者谢谢支持
http://www.zqtcl.cn/news/816659/

相关文章:

  • ps制作网站产品图片ps平面设计主要做什么
  • 怎样更新网站泉州网站开发公司
  • 蕲春县住房和城乡建设局网站广东建设局网站首页
  • 网站优化工作室共享经济型网站开发
  • 自己做网站好还是购买网站好网站建设平台报价
  • 设计师配色网站太原建站模板源码
  • 学计算机的做网站的叫什么工作wordpress商用收费不
  • 青岛网站建设谁家好一些网页微信怎么登陆
  • 企业网站seo优做网站的旅行社
  • 十大免费自助建站上传网站到空间
  • 深圳企业做网站简约个人网站
  • 茂名放心营销网站开发网站怎么做app
  • php语言 网站建设专业的外贸网站建设公司价格
  • 看英语做游戏的网站wordpress与微信对接
  • 企业网站打不开了看守所加强自身网站建设工作
  • 长汀网站建设做电池的有哪些网站
  • 做软件常用的网站厦门建设局地址
  • 沭阳三剑客做网站科技 公司 响应式 网站
  • 深圳网站建设培训哪家好曲阜网架公司
  • wordpress建立网站实例贵阳网站开发谁家做的好
  • 百度网站推广怎么收费中国科技成果
  • 枣庄企业网站建设wordpress 评论群发
  • 网站视觉设计方案视频制作素材
  • 哪个网站专做民宿wordpress 主题教程
  • 网站后台 设计北京海淀区官网
  • 公司官网网站建设想法wordpress oss
  • 如何自己创建网站招聘网站代理
  • 手机网页视频提取工具seo网站是什么
  • seo网站优化公司龙岩网站设计一般要多久
  • 江苏自助建站系统哪家好go语言网站开发