zoukankan      html  css  js  c++  java
  • LODOP不同打印机出现偏移问题

    方法简单描述:
    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连续打印内容逐渐偏移怎么办

  • 相关阅读:
    当 LAST_INSERT_ID() 带有参数时# 清空重来
    同时多次插入时
    插入失败时
    编译生成动态库
    编译生成可执行文件
    添加一个静态JAVA库
    添加一个预编译应用程序
    编译一个需要用特定key前面的应用程序
    自定义ItemDecoration设置分割线
    linux常见命令
  • 原文地址:https://www.cnblogs.com/huaxie/p/10564614.html
Copyright © 2011-2022 走看看