方法简单描述:
1.精确套打,设置以纸张边缘为基点,可避免不同可打区域不同带了的影响。
2.不同客户端打印机位置差异,可通过打印维护调整,结果在客户端本地。
或调整打印机初始位置
(本人使用的金税盘的开票软件,还有以前在用友售后实习的时候见过的用友软件的打印,都有提供调整整体偏移的地方,因此开发打印,需要把打印维护开放给客户端调整,以便适用不同的打印机和客户端。)
3.开发代码里,PRINT_INITA的前两个参数要为0,如果需要整体偏移,要在客户端那里调整。
4.累计偏移,尽量让设置的纸张与实际纸张一致,实在无法做到,可输出一定数量,手动调整。

方法简述:
1、打印机可打印区域的影响,可以设置纸张边缘基点输出
2.打印机挡板不在初始位置,或打印机初始位置有偏移
(1).调整打印机挡板,打印机初始位置,
(2).用打印维护进行本地调整,
3.原始代码不在初始位置,PRINT_INITA的前两个参数应为0,0是打印机的初始位置
4.累计偏移,尽量与实际纸张一致,手动调整

详细解释:

1.不同的打印机打印位置略有偏移:
该问题属于打印机可打印区域的影响,可以设置纸张边缘基点输出;
一般软件没有可打区域,但是打印也都是在可打区域内的,lodop用了显示可打区域,是为了精确套打,设置以纸张边缘为基点,就可以以可打区域为基点造成的不同打印机位置偏移不同问题。
关于可打区域,可查看参考本博客相关博文:LODOOP中的各种边距 打印项、整体偏移、可打区域、内部边距LODOP中预览界面查看打印机的可打区域具体值

关于如何以纸张边缘为基点,可参考查看本博客相关博文:Lodop打印控件打印机可打区域的影响 设置纸张边缘为基点

2.不同客户端的不同打印机位置有偏移
表现为有的客户正常不偏移,有的偏移,客户端不同,链接的打印机不同,挡板位置不同,或打印机初始位置不同,由于打印机千差万别,不可能有程序可以完全符合所有类型的打印机,这种情况,可开放打印维护给客户端进行微调,调整结果可保持在客户端本地。
如果是内容整体偏移,可用PIRNT_INITA的前两个参数进行调整,在打印维护里是纸钉,拖动纸钉,相当于把内容进行了整体移动。
套打的难点在于位置对准,如果你同一个页面程序要应付不同的打印机,完全可以将打印维护功能授权给操作者,打印维护中按钮“应用”结果保存在操作者自己的电脑上,保存时与“打印任务名”相对应,这样任何打印机都可以适应同一个页面程序了。
如何使用打印维护,可查看本博客相关博文:Lodop打印维护PRINT_SETUP本地缓存ini文件

其他相关:Lodop打印设计、维护、预览、直接打印简单介绍LODOP暂存、应用、复原 按钮的区别

此外,有的打印机可能不支持自定义纸张,或打印机可打区域有问题非常小,以及打印机故障,如果打印机不支持自定义纸张,自定义无法生效,会走默认纸张,默认纸张和定义的纸张存在较大差异,也会造成偏差很大,这种是打印机的限制。

(1)打印机挡板不在初始位置,或打印机初始位置有偏移,这种情况,也可以直接调整打印机的挡板或初始位置,可查看相关打印机的说明书或咨询打印机的客服,本人用税务局的金税盘打发票,金税盘也提供了类似打印维护的向上,向下偏移调整的数值,而且本人也配合挡板位置的移动。
可见,直接调整打印机,或开发打印维护给客户应该是普通软件都会有的,很早的时候在用友售后的时候,打印的时候,也有针对客户端在本机调整偏移值。
个人遇到过的两个软件,用友财务软件和金税盘的开票软件,都有调整偏移值的地方,可见由于打印机千差万别,不同打印机都会偏移,这不是只有lodop才出现的问题。
(2).用打印维护时,注意不同模版不同任务要取不同的任务名,否则任务名相同会有影响,此外,某个客户端偏移严重,可能是该客户用了打印维护进行了大量调整,并保存了,可以进入打印设计恢复整体缺省,或置空任务名等方式。
置空任务名就相当于禁用了打印维护的功能,空任务名无法调整后保存到本地。

3.只有自己无偏移,其他客户端都偏移了。
很可能是PRINT_INITA的前两个参数不为0,0,0是打印机的初始位置,自己的打印机不在初始位置,进行了整体偏移,还把整体偏移写到了代码里。
需要把这两个参数设置为0,大多数客户打印机应该是在初始位置的,如果位置有问题,在该客户端本地调整,参考2的打印维护,结果只对该客户端有效。
(开发的源码里要设置为0,0,不要在源代码里进行整体偏移)

4.累计偏移,大量批量打印的时候,偏移逐渐增大。
这种是实际纸张与设置的纸张之间存在差异导致的,尽量让实际纸张与设置的纸张一致。
批量连续打印时,可以测量多张纸,取平均值,这样测量可能准确一点。
由于实际与设置的差异,即使差异一点,大量打印后这点差异也会越来越大。

或者代码里不设置纸张,直接走打印机的默认纸张,把需要的纸张设置为默认纸张,这个打印机自带的是英寸,避免了代码和打印机单位之间的转换导致差异。
相关详细博文:Lodop连续打印内容逐渐偏移怎么办

LODOP不同打印机出现偏移问题的更多相关文章

  1. Lodop连续打印内容逐渐偏移怎么办

    Lodop打印控件中,可以使用打印机自带的纸张名称,也可以自定义纸张.(SET_PRINT_PAGESIZE语句).通常进行打印开发,为了避免浪费纸张,会用虚拟打印机效果作为依据,虚拟打印机连续打印多 ...

  2. LODOP获取打印机状态码和状态码含义测试

    由于打印机千差万别,打印机执行的标准也不一样,LODOP获取的打印状态码也可能不同,安装了个打印机驱动实际测试一下,测试的打印机驱动是Brother Color Type3 Class Driver. ...

  3. LODOP设置打印机不存在不打印

    LODOP中打印机的选择有优先级的存在,如果程序中指定的是错误的打印机,那么会走下一个优先级,这样,就可能存在选择了打印机无效,从默认打印机打印出来了,可以在代码里加判断避免这一点. 打印机优先级简介 ...

  4. LODOP纸张/打印机/份数/打印方向/双面打印 简短问答

    纸张#如何设置纸张纸张设置,参考样例5 http://www.c-lodop.com/demolist/PrintSample5.html纸张的一些优先级 http://www.c-lodop.com ...

  5. LODOP不同电脑打印效果不同排查

    1.位置不同,偏移问题.详细的相关偏移问题的博文:LODOP不同打印机出现偏移问题 2.样式问题. 本机浏览器解析样式不同 ,相关超文本样式博文:Lodop打印控件传入css样式.看是否传入正确样式 ...

  6. [简短问答]LODOP套打问题及相关

    该博文为简短问答,具体详细介绍可查看本博客的相关博文,套打及位置相关详细博文:LODOP中的各种宽高和位置简短问答.LODOP不同打印机出现偏移问题.Lodop打印控件打印机可打区域的影响 设置纸张边 ...

  7. LODOP打印维护适应不同的客户端

    之前的博文:Lodop打印设计.维护.预览.直接打印简单介绍,介绍了打印设计.打印维护.打印预览,直接打印等的区别和使用. 如上面以前博文描述的,打印维护是针对客户端进行调整的,开放打印维护给客户端, ...

  8. LODOP打印项水平居中

    LODOP控制打印项水平居中,可以用如下语句,该语句控制的是打印项本身在纸张中水平居中.LODOP.SET_PRINT_STYLEA(0,"Horient",2);这个根据大的打印 ...

  9. LODOP设置纸张无效问题

    有的打印机不支持自定义纸张,或不支持当前设置的纸张尺寸,会造成纸张尺寸和代码里设置的尺寸不一致的情况.现象:1.代码一样,纸张语句设置正确,有的打印机纸张正常,有的打印机不正常.2.代码一样,纸张语句 ...

随机推荐

  1. 控制台程序读取Excel设置角色权限

    摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复283或者20181118可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...

  2. Linux chmod命令用法

    chmod----改变一个或多个文件的存取模式(mode) Linux/Unix 的文件调用权限分为三级 : 文件拥有者.群组.其他.利用 chmod 可以藉以控制文件如何被他人所调用. 使用权限 : ...

  3. RN开发中的报错以及告警

    报错一: Attempted to transition from state `RESPONDER_INACTIVE_PRESS_IN` to `RESPONDER_ACTIVE_LONG_PRES ...

  4. 微信小程序(三)页面跳转和图片滑动切换

    跳转部分: 在index2.wxml中,添加跳转函数,如下所示:

  5. 测试系统工程师TSE需要具备的四项能力

    文/杨学明 如今,国内所有的研发型的公司都有测试部门,无论测试团队大小,都有测试组长,测试经理,测试工程师等头衔,但随着产品和业务的质量要求越来越高,产品的市场竞争越来越激烈,公司领导对产品测试的要求 ...

  6. FIDDLER的使用方法及技巧总结

    转自: https://www.cnblogs.com/ink-marks/p/6363275.html 一.FIDDLER快速入门及使用场景 Fiddler的官方网站:http://www.fidd ...

  7. Linux内存描述之内存区域zone--Linux内存管理(三)

    1 内存管理域zone 为了支持NUMA模型,也即CPU对不同内存单元的访问时间可能不同,此时系统的物理内存被划分为几个节点(node), 一个node对应一个内存簇bank,即每个内存簇被认为是一个 ...

  8. c/c++ 继承与多态 容器与继承2

    c/c++ 继承与多态 容器与继承1说明了容器里使用继承关系的方法,这里再弄一个练习,巩固一下. 做一个类Basket,它有个multiset成员,key是智能指针std::shared_ptr< ...

  9. c/c++ 基本线程管理 join detach

    基本线程管理 join detach join:主线程等待被join线程结束后,主线程才结束. detach:主线程不等待被detach线程. 问题1:子线程什么时点开始执行? std::thread ...

  10. html+css 制作简易导航栏

    二话不说直接上代码(萌新:实在也没什么好说的) <!DOCTYPE html> <html lang="en" xmlns="http://www.w3 ...