非标链式纸打印位置偏差处理探索

来源 :科学与财富 | 被引量 : 0次 | 上传用户:purpleplain
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  (射阳县人民医院 信息科 224300)
  摘 要:链式打印纸是日常使用的一种纸张类型,通常用于单联或多联的票据。通过针式打印机的链式输纸器的送纸,完成打印任务。但对于非标准格式的链式纸张打印时却存在位置偏差的现象,经过连续多张打印后,位置偏差相当严重,甚至不能忍受。
  关键词:链式;非标准;纸张;偏差
  一、前言
  作者在给某单位开发信息系统时,使用到该单位以前使用的定制的链式票据纸,其规格为宽12CM,高为5.5孔距(计算纸张高度的方法为:连续纸孔数×0.5×2.54CM=高度,5.5×0.5×2.54=6.985CM)。开始测试时没发现纸张打印位置偏差问题,但随着系统的正式使用,打印多张后就发生了明显示的偏移,张数越多偏移越严重,由于该发票是套打格式的,因此该问题是不能忍受的。
  二、过程
  经过咨询打印机厂家工程师,得知此问题是因为连续纸孔数为非整数,根据计算纸张高度的方法为:连续纸孔数×0.5×2.54CM=高度,导致纸张高度为6.985CM(即带三位小数),而操作系统纸张的精度为两位小数,因此要么设为6.98CM,要么设置为6.99CM,随着打印张数的增加,其偏差也在增加。设为6.98CM时,位置逐渐向正常位置的上方偏移,而设为6.98CM时,位置逐渐向正常位置的下方偏移。因此除非修改纸张规格,否则无法正常打印。偏移情况如图示:
  三、处理方法
  通过不断的测试,作者终于找到一种方法来解决非标链式纸打印位置偏差的问题。解决思路:既然无法更改纸张,那么就变通处理,只要在经过一定数量的纸张偏差后,通过修正的消除该偏差,即可使打印位置回归正常位置。
  根据这一思路具体方法是:通过计算多张纸累积偏差和,调用打印机指令集进行误差修正,从而实现正常打印。(打印指令集:控制打印机操作的打印控制语言指令集合。计算机通过打印控制语言,以软件命令的方法来控制打印机操作,解释执行打印数据,获得打印结果的。)
  四、详细步骤
  1、新建VB工程,添加模块,名称为mdlPrintControl。
  2、mdlPrintControl代码如下:
  Option Explicit
  ‘声明对动态链接库?(DLL)?中外部过程的引用
  Public Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
  Public Declare Function EndDocPrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
  Public Declare Function EndPagePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
  Public Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, ByVal pDefault As Long) As Long
  Public Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As DOCINFO) As Long
  Public Declare Function WritePrinter Lib "winspool.drv" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long
  Public Type DOCINFO
  pDocName As String
  pOutputFile As String
  pDatatype As String
  End Type
  Public lReturn As Long
  Public MyDocInfo As DOCINFO
  Public lpcWritten As Long
  Public sWrittenData As String
  Public lhPrinter As Long
  Public Sub PrintRollBack() ‘控制打印機后退
  lReturn = OpenPrinter(Printer.DeviceName, lhPrinter, 0)
  If lReturn = 0 Then
  MsgBox "未找打印机!"
  Exit Sub
  End If
  MyDocInfo.pDocName = ""
  MyDocInfo.pOutputFile = vbNullString
  MyDocInfo.pDatatype = vbNullString
  StartDocPrinter lhPrinter, 1, MyDocInfo
  sWrittenData = Chr(27) + "j" + Chr(30) ‘回退走纸
  WritePrinter lhPrinter, ByVal sWrittenData, Len(sWrittenData), lpcWritten
  EndPagePrinter lhPrinter
  EndDocPrinter lhPrinter
  ClosePrinter lhPrinter
  End Sub
  3、調用方法
  ‘将纸张高度设为6.98CM
  ‘根据实际使用状态调整代码中数字40为合适的数字即可,
  If i Mod 40 = 0 Theni为打印张数计数
  DoPrint (i) ‘打印操作
  Call PrintRollBack ‘调用控制打印机后退
  Else
  DoPrint (i)
  End If
  五、体会与总结
  通过调用打印机指令集,成功修正了因非标链式纸导致的打印位置偏差问题。对于控制打印机后退所需的纸张数可根据发票印刷位置与打印位置能忍受的程度来定,通过可调参数来使用时将更为方便。函数执行后,会产生一行打印任务。本例调试环境为:Window XP(SP3)+Visual Basic 6.0(SP6),运行环境为:Window 10,打印机型号为EPSON LQ-635K。
  参考文献
  [1]王怀彬等,Visual Basic程序设计,机械工业出版社,2008.04.
  [2]北京爱普生软件技术发展有限公司,ESC/P、ESC/P2、ESC/PK、ESC/PK2程序设计指南,1994.08.
其他文献
(黑龙江第二技师学院 150040)  摘 要:软件行业对于“计算机蓝领”、“软件蓝领”的需求日益增加,为整个技工院校计算机专业的发展提供了良好的机遇。本文就如何培养“软件蓝领”人才以及实现“软件蓝领”人才的职业提升,探索出符合技工院校的“以能力为本位,以就业为导向,以培养‘软件蓝领’为目标”的计算机课程体系进行了总结和探索。  关键词:软件蓝领;计算机课程体系;教学改革  随着信息技术的飞速发展
期刊
请下载后查看,本文暂不支持在线获取查看简介。 Please download to view, this article does not support online access to view profile.
目的:检验成人血友病活动能力评估量表(Haemophilia Activities List,HAL)汉化后的信度和效度。  方法:对原始问卷进行翻译、回译、校对后最终形成HAL中文版,将中文版HAL及中
目的:  探究低温等离子体(NTP)联合X射线对人肺腺癌A549细胞以及人宫颈癌Hela细胞的迁移及侵袭能力的影响及其可能的机制。  方法:  划痕实验以及transwell小室法检测X射线
目的:本研究是通过比较垂体腺瘤患者三维适形放疗(3D-CRT)、容积调强放疗(VMAT)、螺旋断层放射治疗(TOMO)以及X刀这四种放疗方案的剂量学差异,为临床治疗方法提供更加精确的优
目的:本实验通过建立颈动脉狭窄模型,研究颈动脉狭窄后兔脑局灶性缺血再灌注损伤对血管内皮生长因子(VEGF)及丝氨酸/苏氨酸蛋白激酶(AKt)表达的影响及意义。   方法:应用70只
(福建省地震局监测中心 福建 福州 350003)  摘 要:地震预警技术是减轻地震灾害、降低地震次生灾害的有效手段。福建省地震局研发地震预警系统,并在福建区域示范运行,文中阐述了地震预警技术的原理,在福建的发展过程、应用效果并对其进一步的发展前景进行展望。  关键词:福建地震预警;预警系统;前景  引言  地震预警技术是能够减轻地震灾害的有效手段之一。目前世界上多个国家和地区,已经研发了不同目标
期刊
请下载后查看,本文暂不支持在线获取查看简介。 Please download to view, this article does not support online access to view profile.
(黑龙江省哈尔滨市 哈尔滨商业大学 150076)  摘 要:犹太民族一直是全世界都不容忽视的存在。聪明的犹太人颠沛流离数千年,却创造出了太多奇迹,所以犹太民族当之无愧是最伟大的民族。犹太人在哈尔滨生活了半个多世纪,为哈尔滨留下了丰富的文化遗产。因此,研究哈爾滨犹太历史文化资源,对建设国际化城市、发展边疆大省有着很好的促进作用。  关键词:哈尔滨;犹太历史文化资源;学术价值  进入21世纪,各国越
期刊
目的:(1)探讨三峡库区老年人心身健康现状及社会人口学影响因素。(2)研究人格特征、社会支持、主观幸福感、日常生活活动能力对三峡库区老年人心身健康的影响。方法:采用多级