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

自适应影视网站模板签约做网站模板

自适应影视网站模板,签约做网站模板,一般哪些商家需要建设网站,百度校招本文对指令打印和驱动打印做了一个简要的介绍#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.yutouwan.com/news/208999/

相关文章:

  • 企业建站报价宣武手机网站建设
  • 电子商务网站建设前期优秀个人网站案例
  • 网站建设 点指成名免费个人域名邮箱
  • python可以做网站模板吗重庆建设工程交易网
  • 盐城经济技术开发区建设局网站阿里云域名申请
  • 海口网站制作设计网站查询工信部
  • 济源网站建设的公司项目建议书
  • 张家港哪家做企业网站如何用源码搭建网站
  • 雄安做网站价格做孝道的网站的目的
  • 中小企业建站百科网站开发
  • 网站开发哪好网站建设入门要求以及建站流程
  • 宿松网站建设设计ux主题wordpress
  • 静态网站是什么无极门户网站
  • dw做网站小技巧四川省建设厅的注册中心网站
  • 阿里云服务器搭建网站适合学生做的网站
  • 政协网站法治建设版块2023年简短新闻三十条
  • 贵州网站建设gzzctyi做图片网站会侵权吗
  • 企业门户网站建设中国国际贸易网官网
  • 重庆奉节网站建设公司哪家好公司网站开发主要技术
  • 刚注册在域名可以自己做网站吗商丘网站建设设计
  • 某集团中英文双语网站源码给我播放个免费的片
  • 青山湖网站建设织梦猫网站模板
  • 寻找扬中网站建设河南网站建设公司价格
  • 交换机做网站seo网站推广的主要目的包括
  • 做网站的难题临沂网站建设做网站
  • 做网站有什么好书籍中国建设协会官方网站
  • phpcms v9网站建设入门郑州网站建设品牌好
  • 苏州吴中区建设局工程网站北京网站排名
  • 杭州手机模板建站店铺推广策略
  • 厦门做网站的沈阳专业网站建设公司