zoukankan      html  css  js  c++  java
  • 使用Windows驱动的虚拟打印机,打印Excel表格无表格线问题解决(1)

    问题:

    通过自定义打印处理器,使用Windows无用户接口、渲染插件的通用打印驱动制定的虚拟打印机,在打印Excel表格文件时,会出现不绘制表格线的情况,其他正常。

    分析:

    客户那边实际使用环境中每次打印任务后面可以追加一张通过Excel生成的模板回执单,这个回执单打印出来是正常的,说明并不是所有情况下都会没有表格线(不然也不会现在才发现这个问题)。

    于是就以回执单模板Excel文件作为起始测试文件。

    1、确保不是Excel文件本身的设置问题,比如没有设置表格线啊之类的,最简单的方式就是直接打印预览,发现预览的时候都是有表格线的,因此排除掉设置上的问题

    2、经过和出问题的表格文件对比,首先最明显的区别就是回执单上存在图片,于是将回执单上的图片去掉进行打印,发现也是有表格线的,于是干脆将回执单表格内容直接复制粘贴到有问题的文件上去打印,竟然没有表格线了,难道跟文件本身有关?尝试将回执单去除图片后保存,并关闭文件,执行打印,这时候却没有表格线了。然后我再粘贴一张图片进来,执行打印又有了,即时这张图片是在打印区域之外。

    3、然后我再次把图片撤销,发现回执单这个文件仍然还能打印出表格线,但是另外那个测试的文件通过同样的方式,在图片撤销之后打印就没有表格线了,这里能反映出什么呢?

    4、特地安装的WPS进行测试,同样的文件,使用Office(不同版本都是)和WPS进行完全相同的打印操作,WPS从没有出现过没有表格的情况。这样的话是不是基本可以排除跟我的虚拟打印机本身有关系了呢?

    5、使用别人的虚拟打印机以及Windows打印机示例中的打印机能打印出表格线,于是我替换掉我的虚拟打印机的打印处理器为windows默认的,发现还是没有表格线。于是我使用WDK示例打印机C:WinDDK7600.16385.1srcprintoemdlluniuirep进行测试,发现打印出来的spl文件也没有表格线。综合第四条测试,是不是可以断定跟打印驱动没有关联了呢?

    总结:

    1、存在图片的Excel表格,打印正常,没有问题。

    2、没有图片的Excel表格,打印不一定不正常,取决于之前是否有没有表格,而且结果不一定完全一样,这个从上面第三条测试可以看出。

    3、综合上面测试第四条和第五条可以看出应该是和打印驱动没有关系的,如果windows通用驱动本身存在这个问题的话,为什么WPS可以打出表格,Office不可以。再加上跟有没有图片有关系,是不是跟Office和Wps本身的渲染机制有关呢,但是如果是这样为什么选择其他的一些打印机又没有问题。难道是因为其他打印机自己的渲染驱动对Office渲染方式进行了补充,所以能正常?那意思就是Office和WPS本身执行打印的时候上下文设置的不一样,比如绘制方式等,所以使用相同的打印机会出现不同的效果。而Office使用不同的打印机(主要是驱动不同)会有不同的效果,是因为打印渲染驱动不同?

    未完待续…

  • 相关阅读:
    Java开发系列-电子邮箱
    Java开发系列-文件上传
    iOS开发系列-常见离线存储方式
    Java开发系列-注解
    Java开发系列-JSP
    Java开发系列-Cookie与Session会话技术
    Java开发系列-JDBC
    Java开发系列-MySQL
    Java开发系列-时间转换
    java开发系列-服务器tomcat
  • 原文地址:https://www.cnblogs.com/monotone/p/4148087.html
Copyright © 2011-2022 走看看