要打印的页面如图用的纸张是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可以使用文件形式访问串口,应该只能访问本地串口吧??

解决方案 »

  1.   

    打印的方案暂时算解决了...就是预览的时候用HTML来展示,然后打印的时候再分一次3、4页这样打印...
    但这得调用到LODOP的直接打印功能,会加水印(试用版才会有)...
    还发现了个4方在线的,功能上和LODOP差不多,但预览速度快很多,昨晚试了下预览100来页,速度比LODOP快上不是一个数量级的(至少不会在50几页后就都是白页),但方法的封装就比较差了,说是完全免费的(需要申请)
    现在赶项目,等赶完了再来研究4方的那个