当前位置: 首页 > 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://wiki.neutronadmin.com/news/208999/

相关文章:

  • 白城网站开发网站设计网站建站
  • 江西省建设部网站无锡新区企业网站推广
  • 工程建设标准下载网站建应用网站
  • 专门做音乐的网站wordpress怎么装模板
  • 网站设计)七牛云存储wordpress插件
  • 重庆有专业做网站的吗用什么服务器做盗版小说网站吗
  • 山东省建设厅网站地址上海app软件开发
  • php网站服务器怎么来用KEGG网站做通路富集分析
  • 做什网站好柳州市城乡建设局网站
  • 如何做资源论坛网站公司网站主页设计
  • 论网站建设情况中国制造网外贸网站
  • 网站开发主流技术线路介绍百度知道下载
  • 网站收录更新东莞常平镇地图全图
  • 威海建设局网站首页百度网站排名哪家好
  • 宁波网站的优化我的家乡网站建设模板下载
  • 什么是网站建设公司商城建站系统多少钱
  • 深圳市企业网站seo小叮当网站建设
  • 外贸企业网站建设公司友点cms
  • 罗湖营销型网站建设wordpress登录后转到wp首页
  • 海尔公司网站建设现状多媒体教学网站开发的一般步骤
  • 长沙网站建设 网站设计电影采集网站流量
  • 建设网站龙华教育网站解决方案
  • 网站开发工程师职业道德那个网站上有打码的任务做
  • 建筑网址大全网站企业主页的特点
  • 长沙专业外贸网站建设国内最新新闻事件摘抄
  • 那曲网站建设罗斯东莞房价一览表
  • shopify建站费用wordpress 用户 表单
  • 做流量网站要做哪一种网站代备案需要多少钱
  • 网站在线咨询代码常州快速建站模板
  • 做标书网站旅游景区网站建设方案文档