`
Toxic丶kiss
  • 浏览: 5041 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

web套打中内容偏移的成因及一点小小的解决方法

阅读更多

以下摘自某个打印论坛,网友出现了因连续打印出现套打偏移的问题后,与专业技术人员的对话:

 

网友问:“打印的时候第一张单据的打印位置是准确的,到第十张以后的位置就不正确了。这是怎么回事,能不能详细说明一下?”

 

专家答:“有时按测量的纸张尺寸精确设置报表的纸张页面大小后,用打印机进行实际输出多页时会发生位置偏移,一般都是因为打印机走纸不准造成的。要修正这样的走纸误差,可以一次性连续多打印几页(如3-5页),量出最后一页的位置误差值,据此求出每页的平均误差,然后根据这个平均误差值调整报表中的页面高度值。 ”

 

网友再问:“好的,谢谢了。但是现在有一个问题是,我如果将页面的高度设置为7.6149cm时在打印的时候就会出现上偏移的情况。将页面设置为7.6150的时候打印就出现下偏移情况。在7.6149和7.6150之间不能再增加一位小数了,不知道在这种情况下是怎么解决的。”

 

专家:(雷翻!无语)

 

上面网友的问题,看似无厘头,但如果你是套打软件的设计者,或者是套打软件的使用者,遇到这种套打偏移的问题,应该说,还是不少的。如果连续按固定高度打印50张,有可能会出现向下或向上偏移,如下图所示:

 



 

偏移的原因是什么一种原因,正如上面专家分析的那样,是打印纸张高度设置得不对,只要根据误差,调整纸张高度就行了。另一种原因,是打印机走纸不够精准,少打几页还看不出有啥问题,但连续打印后,因为误差累积起来,打印到10几张时,就很明显了,如果打印到100多张,上千张,呵,必须之毫里,差之千里了

 

打印机走纸不准,原因是啥呢?要不就是打印机质量不过关,要不就是打印机老化引起针孔传动机构精度下降,还有啥?我不是打印机的硬件专家,我只知道这些。

 

碰到这种纸张调高一点,向下偏,调矮一点向上偏,因为纸张设置精度有限以致无法再取一个中间高度的情况,我们做程序的,也只能建议用户,换一台精度高一点的打印机,或者建议一次不要打印太多。

 

有没有更好的办法,在走纸不那么精准的打印机上,来解决套打偏移的问题呢?我提一个想法,希望对各位做套打程序的朋友们一点启发:就是在一个打印任务中,当打印完几张正常高度的票据后,打印一张用来纠偏的、特别高度的票据(以下称之为校正页),这样可以降低对打印机走纸精度的要求,也达到了纠偏的目的,此方法可图标如下:

 



 

 

以网上流行的JatoolsPrinter web打印控件为例,它已经引入了这个方法,而且被证明非常有效。下面我简单说说,jatoolsPrinter如何实现这个连续套打的纠偏功能:

1. 先测量出,票据的实际高度,比如120mm()*100mm();

2. 按所得票据大小,设置自定义纸张,jatoolsPrinter可以自动创建自定义纸张类型,不必手动在控制面板/打印机、传真机中设置纸张类型。

3. 按所设纸张,试着连续打印票据,尽量多些,比如50张,假设测得最后一张向下偏移10cm

在打印控件里,加入如下纠偏代码:
settings:{paperWidth:1200,       // 1/10mm为单位,下同
       paperHeight:1000,
       normalOffset:{
                  offsetPages:50,
                  offset:120,
                  normalPages:5
                  }
}

 

以上代码告诉控件,这个打印机,每打印50张票据会产生10mm的向下偏移,请在每打印5张票据后,打印一张校正页,本例中,控件将以98.8 (mm)的纸张高度打印该票据。因为,是向下偏移,所以要插入一个高度略小于正常纸张的校正页。

 

每个校正页的高度计算公式如下:

paperHeight  (normalPages * offset / offsetPages )

= 100.0mm- 5 * 12.0mm/ 50 = 98.8mm

 

 

如果你正在开发web 应用,想解决连续套打偏移的问题或需要更灵活地控制打印机,jatoolsPrinter会是一个比较好的选择。如果你有兴趣自已实现套打纠偏的问题,根据本文提供的思路,也可以做到的。

 


 

  • 大小: 178.5 KB
  • 大小: 128.3 KB
分享到:
评论

相关推荐

    web套打中纸张偏移的具体解析

    总的来说,解决Web套打中的纸张偏移问题需要综合考虑纸张设置、打印机性能和软件策略。通过精确调整、纠偏技术以及选择合适的打印工具,可以显著改善打印效果,确保连续打印的准确性。对于开发者而言,理解这些问题...

    web套打

    通过学习和利用相关的源码和工具,开发者可以构建出高效、灵活的Web套打解决方案。对于“draglayout1.html”和“bg.jpg”这两个文件,它们分别展示了动态布局的实现和视觉设计的元素,是构建Web套打应用的关键组成...

    EXCEL套打中遇到的问题

    套打中只能一行一行读取数据。但是如:同一学生考不同科目的时候。怎么同时读取两行数据。

    2021新中签战法(打新秘籍 小资金照样能打中).pdf

    最后,了解打新过程中可能出现的问题和解决方法也是必不可少的。比如,中签后通常无需额外操作,只要确保账户有足够的资金即可;融资账户可参与新股申购,但需注意维持担保比例和资金准备;即使资金有限,依然有机会...

    java套打样例

    在套打中,我们需要通过Graphics对象来绘制我们的文档内容,确保它们在打印时能准确无误地呈现。 4. **PrintJob类**:`java.awt.print.PrintJob`类是处理打印任务的核心,它允许我们提交要打印的页面并管理打印过程...

    ACCESS套打源程序

    "ACCESS套打源程序"正是为了解决这一问题而设计的,它提供了一种高效、准确的发票打印解决方案,通过ACCESS数据库的强大功能,实现了界面新颖、技术创新的发票套打功能。 ACCESS是微软公司开发的一款关系型数据库...

    Aspose.Word域套打示例

    - `NEXT`和`ENDMERGE`域:在循环套打中,控制域的范围。 - `SEQ`域:用于生成序列号,常用于编号列表。 5. **代码示例** ```csharp using Aspose.Words; // 加载模板 Document doc = new Document("template....

    用友NC套打宝典

    这些文档可能涵盖了如何设置套打模板、导入和导出模板、调整打印位置、设置打印参数、处理套打中的问题等内容。用户可以从中学习到如何利用系统提供的工具,自定义适合自己企业的打印样式,提高工作效率,确保打印的...

    java三大特性之多态与接口

    面向对象三大特征之多态 input可以根据不同的"type"(条件)产生不同形态 生活中的多态 一件事物根据不同的环境条件,产生不同的结果/... 调用子类中都有重写的那个方法,f.有重写的方法(); 多态的弊端

    医疗门诊发票套打程序

    在医疗门诊发票套打中,程序会根据输入的患者信息、就诊项目、费用明细等数据,自动生成符合标准格式的发票,大大提高了打印效率,减少了人为操作错误。 接下来,我们探讨一下程序的工作流程。一般来说,用户在输入...

    K3+Cloud+BOS+业务配置百问百答.doc

    - **解决方法**: 开发者可以利用BOS平台提供的API接口来实现图片的上传、显示及打印功能。 **1.14 K/3Cloud BOS开发平台详细介绍** - **背景**: BOS平台是金蝶K/3 Cloud的核心组件之一。 - **解决方法**: 提供了一...

    EXCEL套打示例

    在套打中,VBA主要用于控制打印过程,例如: - 自动遍历数据源的每一行,加载相应的信息到模板。 - 设置打印区域,确保只打印需要的部分。 - 调整页边距和缩放比例,以适应不同的打印机和纸张大小。 - 控制每份...

    利用屏幕坐标的labview打地鼠文件

    基于labview的简单打地鼠游戏,根据在实际机器中的实物以及设计思路过程,大致需要地鼠、成绩...以布尔作为控件,当运行时地鼠出现,打中的是数字的显示,用数字显示控件实现。“打中”以左下三胖图案的布尔来提示。

    打靶十次打90环有多少情况.(某企业面试题)

    射击问题是一种经典的组合数学问题,通常可以通过排列组合或者动态规划的方法来解决。在这个特定的面试题中,我们被要求计算在十次射击中,总环数达到90环的所有可能情况。由于每次射击的环数可以是1到10之间的整数...

    Appinventor 练习--打地鼠游戏aia文件及说明文档.zip

    “打地鼠游戏”由三个屏幕组成;屏幕1,由两个标签(“欢迎来到打地鼠游戏”...游戏规则:每次游戏30秒,打中地鼠,得一分,没打中,不得分,倒计时结束,自动跳转至最终成绩,在此页面,也可以选择再来一局或者退出;

    C#打地鼠,打中记分,时间限制,可自由出鼠

    打中记分,自由设置时间,通过设置限制游戏时间,自由出鼠,时间可快可慢,都可以修改,代码不长,通过C#window窗体写的,新手上路,请多多照顾,代码不全,请多多指教,有更好的建议可以私信,打地鼠控件不多,只...

    c++打靶,看机器人至少能中多少个十环.cpp

    已知机器人在第 i 次打靶时,如果 i 为素数,那么机器人必能打中十环。请你设 计程序来计算,在 n 次打靶中,机器人至少能中多少个十环。输入:n,输出:共一行,表示 n 次打靶中,打中十环的最少次数。

    JAVA编写飞机大战-千锋实训项目

    构造方法 方法 具体步骤: 1.创建窗口对象 2.创建画板对象 3.类的设计 - 确定类中目前需要的成员变量和成员方法 4.成员方法目前只有一个 - move(), 研究不同类的移动方式 5.创建类需要不同的构造方法 - 初始化成员...

    小学数学四年级下册鸡兔同笼问题.pdf

    - **例5**:将打中和未打中设为鸡兔,得分差视为脚数差异,通过假设全中求解实际打中的次数。 3. **解题步骤**: - **明确问题**:理解题目给出的条件,找出“头”和“脚”的对应关系。 - **选择方法**:根据...

    2011创新设计一轮复习精品课件思想方法与高考能力要求八.PPT

    这种方法在处理如例3中,寻找α粒子打中感光板的区域长度问题时非常有用。 5. **带电粒子在磁场中的运动规律**: - 带电粒子在匀强磁场中运动时,受到的洛伦兹力提供向心力,使得粒子做匀速圆周运动。 - 圆周运动...

Global site tag (gtag.js) - Google Analytics