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连续打印内容逐渐偏移怎么办

  • 相关阅读:
    /etc/sysctl.conf 控制内核相关配置文件
    python 并发编程 非阻塞IO模型
    python 并发编程 多路复用IO模型
    python 并发编程 异步IO模型
    python 并发编程 阻塞IO模型
    python 并发编程 基于gevent模块 协程池 实现并发的套接字通信
    python 并发编程 基于gevent模块实现并发的套接字通信
    python 并发编程 io模型 目录
    python 并发编程 socket 服务端 客户端 阻塞io行为
    python 并发编程 IO模型介绍
  • 原文地址:https://www.cnblogs.com/huaxie/p/10564614.html
Copyright © 2011-2022 走看看