ePrint作名称,在WebPrint的产品包中还是清楚地分为:一个实现html
table的直接打印功能(即原来的WebPrint3.1),一个实现web套打功能(即原来的ePrint3.0)。WebPrint是一个全面强大的web打印的解决方案。它可以直接在IE浏览器中可视化的设计各种复杂的打印模版, 轻松解决Web套打问题。也可以直接打印用ASP,JSP等动态程序生成的HTML页面。
常见使用方法如下:
1、增加打印url的属性
描述:当设置这个属性的值为一个url链接,然后再调用Print()函数做打印,就可以将url链接到的网页打印出来。
语法: webprint.printURL=[StringValue]
Webprint.Print()或 webprint.preview()
应用于:webprint对象
使用举例:
Webprint.InitPrint()
Webprint.printURL=””
Webprint.Preview() //会查看到链接到的页面
注意:webprint是打印小插件的id.
2、增加打印完成的状态属性
描述:当调用dll控件做打印文档的时候,文档处理完成,成功发送给打印机处理的时候,这个时候,此状态值会变成”over”;即用户在做打印文档的时候,可以通过回调判断这个属性的值来判断文档是否打印完成。
语法:webprint.state
使用举例:
Webprint.InitPrint()
Webprint.Print()
……此处需要使用回调来判断是否打印完成。
If (webprint.state==”over”){
Alert(“打印完成!”)
}
注意:webprint是打印小插件的id
一、浏览器的打印功能菜单这种方案的优势是不需要对浏览器作任何扩充,是最简单的办法,但问题也最多,如:
不能精确分页。浏览器一般是根据用户设置的页面大小,web页面的内容多少,来自行决定分页位置,程序员很难控制。会有页脚页眉干扰。
不能准确对齐边边距及打印文字。
不能解决连续打印。比如,不是仅打印一张票据,而是连续一次打印若干个票据。
二、使用webbrowser控件+ javascript
这实际上,是浏览器打印功能菜单的一种程序调用,与打印功能菜单没什么两样。分页的问题仍然存在,只不过,可以让用户不用去点菜单,直接在网页中的一个按钮,或一个链接里面调用罢了。
三 、使用print css
这是一种最理想的实现web套打的方法。这种方法通过在html文档中,嵌入打印相关的css样式,来实现对html文档输出打印的控制,比 如设置纸张大小,纸张纵横方向,打印边距,分页等。显而易见,这种方式成本小,不需要下载任何插件,而且跨平台性非常好。print css推出已经有些时日,但遗憾的是,至今没有一个厂商的浏览器很好地实现了这些标准,这使得程序员目前还不能利用print css进行实际的开发。关于打印css,参见http://css-discuss.incutio.com /?page=PrintStylesheets
四 、使用PDF文件
用这种方式,就是从服务器端下载一个pdf文件流,在IE中用adobe插件打开,然后用adobe的打印菜单进行打印,虽然这种方案,也能 实现精确套打,但需要下载adobe插件。这是国外报表工具经常推荐的一种打印方法,但在pdf不那么普及的中国,这种方案不是最好选择。
现在有两种解决方案,(1).第一种是需要安装插件,网上下载ScriptX.cab文件
下载成功后将文件放在项目某个目录下,然后在页面body中写上:
<object id="factory" name="factory" style="display: none" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="ScriptX.cab" viewastext></object>(记得codebase属性为ScriptX.cab文件的放置路径,是绝对路径)
把window.print()改成:factory.printing.Print(false)即可
远程访问时需要在IE浏览器设置:
1.安全 ->受信任的站点 ->站点 ->添加受信任访问站点(如果是访问远程那么是对方IP地址,如果是本地则是本机IP.例如http://192.168.172.1)
(2).第二种是无需要安装插件
首先需要在页面body中写上:
<OBJECT ID='WebBrowser' NAME="WebBrowser" WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></OBJECT>
把window.print()改成:document.getElementById("WebBrowser").ExecWB(6,2)即可
最后记住一定需要在IE浏览器设置:
1.安全 ->本地Intranet ->自定义级别 - 找到ActiveX控件和插件项,选择对未标记为可安全执行的ActiveX控件初始化并执行脚本,再选择启用
2.安全 ->受信任的站点 ->自定义级别 - 找到ActiveX控件和插件项,选择对未标记为可安全执行的ActiveX控件初始化并执行脚本,再选择启用
3.安全 ->受信任的站点 ->站点 ->添加受信任访问站点(如果是访问远程那么是对方IP地址,如果是本地则是本机IP.例如http://192.168.172.1)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)