使用Windows驱动的虚拟打印机,打印Excel表格无表格线问题解决(2)

测试:

经前天的测试,最终还是没有明显的定夺到底是驱动的问题,还是打印机的问题。但是按照可能性来排查,最明显的一点就是其他测试环境不变的情况下增加一张图片,就可以打印出表格线,我始终觉得这里是突破点,但是一时又没了思路。

于是想看一下word中存在表格的时候会不会有同样的问题,遗憾的是没有,为此我暂定为是Office的Bug,上google搜索关键字,office excel can not print gridlines,幸运的似乎看到了相同的问题:http://209.116.186.218/#newwindow=1&q=office+excel+can+not+print+gridlines

前面有部分看的迷迷糊糊,中间有这么一句:In the Excel 2010 document, Print Preview and Print>Printer Properties>Advanced>Document Options>Print Optimizations: change setting to Disable. Save the file.

根据上面的描述我去查看了打印机属性高级设置中的打印优化,默认是启用的,我改成禁用,然后打印测试还是没有表格线。

使用Windows驱动的虚拟打印机,打印Excel表格无表格线问题解决(2)

虽然还是没有表格线,但是这里给了我一个启示:打印机的设置项里存在是否优化的选项,这个选项肯定是驱动里的一些开关,而我前面发现了有图片的时候打印就没有问题,所以很有可能是有图片的时候和没有图片的时候执行渲染的时候走了不同的路线导致的不同结果。那么这里很有可能就是因为这个选项导致的啊,是不是其他选项也需要改改。

于是我又尝试去更改其他选项,主要是下面那个“图形模式”的选项,但是也没有效果啊。

这时候我突然想到,我在看到这个帖子之前,看了微软对表格线打印的描述,里面有介绍如果打印不出表格线,需要关掉页面设置里的“按草稿方式”。使用Windows驱动的虚拟打印机,打印Excel表格无表格线问题解决(2)

我之前做测试的时候不小心把这里勾上了,没有取消掉,于是我取消掉再去打印测试,惊奇的打印出了表格线。赶紧还原之前所更改的无关设置,发现确实就是打印优化这一项引起的没有表格线啊。

解决:

好吧,到了这里基本上算是解决了,稍微总结下整个过程中注意的地方:

1、测试的时候尽量不要一次性有多个变动因子,并且测试没有效果之后要记得还原回默认的设置啊(上面我要是没有想起“按草稿方式”这里,我不知道还要花多长时间去找这个问题了)。

2、不要小看打印驱动的GPD文件啊,这里面那么多设置项,有很多默认的选项参数是很重要的。

3、对于虚拟打印机来说,完全没必要存在这么个“打印优化”选项,去GPD里面去掉这个选项,同时要确保默认的是禁用。

使用Windows驱动的虚拟打印机,打印Excel表格无表格线问题解决(2)

上一篇:WebApi 插件式构建方案:IOC 容器初始化


下一篇:C#的delegate与C的函数指针