|
本帖最后由 consatan 于 2010-1-19 20:22 编辑
要打印的页面如图
用的纸张是A4大小的,被等分成6份的硬卡纸,而且要把四周的页边距控制在5mm
因为客户端都是用IE,所以刚开始的时候简单的以为用IE的内置控件IEWebBrowser进行打印就行了
后来发现用IEWebBrowser控件控制页边距很难实现,主要是这控件要修改页边距的话,如果不人工参与的情况下,就得用JS脚本修改客户端的注册表,我在自己的电脑上测试时倒还好,但部署到服务器上时,IE8死活不让修改客户端的注册表,即使把权限调到最小了也不然修改...
没办法,放弃...
后来又看了ScriptX控件,发现这控件无法分页...放一边...先不去看它
然后又看了几个控件,都不是很理想
最后看到一个LODOP的控件,发现很不错,于是花了2天终于在LODOP控件下实现WEB多页打印了,但...
昨天晚上测试打印18页的内容,发现耗时近20秒,想说可能是我算法不好,所以今天早上又测试了下,就只是使用LODOP控件简单的预览18页的空白页,也花了10几秒,手边有一个别人用PowerBuilder开发的C/S环境的软件,测试了下它预览18页的时间...3秒左右...这差距实在...
想说反正也不是一直在打印,大概2、3天才打印一次,20来秒应该也不算什么...所以继续开发...结果等到这打印模块几乎完成的时候...发现...预览超过52页的话,其余的页数就变白页了...也就是我本来想打印55张,前52张都有正确的内容,但第53张之后就都是空白的...用最简单的Hello World测试,发现也是52页...也不知道是软件有限制还是什么(用的是免费版本,作者说明中说免费版和注册版就只有水印差别而已),而且预览52页的内容时,E5300的CPU占用率保持在55~65%,IE的内存占用也达1.1G左右,预览完如果不把IE关掉的话,内存不释放...用FireFox 3.5.7测试CPU占用率在50%左右,但内存占用达1.5G,也是不关掉就不释放内存
没办法...最后想说用FPDF生成PDF,然后再打印...可是...发现...客户端还是需要手动设置一些打印机的参数什么的,FPDF只能输出PDF,至于打印机的设置什么的,都得靠客户端手动设置了...这样的话...当初直接用IE的控件也行了啊...
唉...谁能介绍个好点的B/S环境下的WEB打印方案呢??
BTW,如果能顺便介绍个B/S环境下访问客户端串口数据的方案就更好了...用VB的MSCOMM控件不知道为什么在IE8下完全没反应...在VB6上已经测试成功读取我本地的串口数据了,但是根据网上的资料将MSCOMM控件添加到网页上却一点反应都没有(只是简单的在网页上打开本地串口,然后再用超级终端访问同一串口,结果超级终端获取数据成功,表明网页上的MSCOMM控件根本没访问串口...)
看到网上有资料说PHP可以使用文件形式访问串口,应该只能访问本地串口吧?? |
|