1.1.0.121 版的控件,更新如下
SetPrintBackground 已被取消
SetMediaHeader 去掉了两个参数,见被划掉的文字部分
在做项目中发现要用到Web方面的打印,于是从网上搜索了一些相关的web打印控件,有scriptx,jatoolsPrinter等,不过都不是免费的,想想还是自己做的好,毕竟这不是太难的事情。
下载地址:
http://download.csdn.net/source/1625752(不要在这下)
注意:由于csdn上传的资源我自己无法删除,导致后续的控件更新无法及时更新,大家不要去csdn的下载频道下载了,已经有新的版本下载,这次是全开发,真正免费的。以下是链接
如果之前装有旧版的控件,请先卸载再安装新版控件。
用的话可以先装个虚拟打印机smartprint或其它的虚拟打印机
最新下载,以后的更新都在这了,csdn下载资源的停止更新
最新版下载地址,最新版本ver 1.1.0.121
http://www.vdisk.cn/down/index/4478770A2930
如果不能自动安装,请在ie->internet安全设置里设置"下载未签名的activex控件",选择"提示",如图
vWebPrint功能简单介绍如下
控件主要的特点是支持打印方案的保存和读取,批量url直接打印,所有方法属性可以混合组合使用,报表的设计就交给使用者自己了,网上关于css控制的资料不少,在这里我要说下如何设定每页打印固定的表头和表尾。
<TABLE width="100%" border="0">
<THEAD style="display:table-header-group;font-weight:bold">
<TR><TD colspan="5" align="center" >这是每页必打的表头</TD>
</TR>
<TR>
<TD>ID</TD>
<TD>学校</TD>
<TD>地址</TD>
<TD>创建时间</TD>
<TD>操作</TD>
</TR>
</THEAD>
<TR>
<TD>23111</TD>
<TD>南宁二中</TD>
<TD>新民路</TD>
<TD>2009-8-8</TD>
<TD>编辑</TD>
</TR>
<TR>
<TD>23111</TD>
<TD>南宁二中</TD>
<TD>新民路</TD>
<TD>2009-8-8</TD>
<TD>编辑</TD>
</TR>
<TFOOT style="display:table-footer-group;font-weight:bold">
<TR>
<TD colspan="5" align="left" >这里是每页必打的表尾</TD>
</TR>
</TFOOT>
</TABLE>
红色是固定表头,兰色是固定表尾。
有什么BUG及建议请留言。
vWebPrint控件使用手册 ver1.0.0 | ||||||||||||
一 控件安装: | vWebPrint是Activex控件, 服务端无运行环境要求,客户端运行环境要求浏览器最好是IE内核的。 由于采用了安全方式编码,IE的高级选项->安全标签中所有的安全级别设置不用变更,使用原来默认即可。 | |||||||||||
| ||||||||||||
二 使用示例: | 其他种类的Web打印控件大多都有一个共同问题,就是如果有十张要打印的表单,就得做十个不同的打印页面,如果是30张呢,劳动强度还是蛮大。 本控件集成在Web页面中,通过指定要打印的URL进行打印,因此避免了其他web打印控件的所存在的共同问题,即打印页面只用写一个,URL可以作为参数进行传递到打印页面。。 同时用户可以保存多个打印方案,用户可以随意加载指定的打印方案,而不用每次打印时重新设定。 批量URL打印,用于大量数据打印,比如要打印1000页,可以分解成 http://www.test.com/print_action.do?start_num=1&end_num=100, http://www.test.com/print_action.do?start_num=101&end_num=200 .......等。 支持HTML格式的页眉(需要使用者指定每页打印数据的ID命名规范)等特性,下面是一些常用例子。 | |||||||||||
| ||||||||||||
三 使用参考: | 程序员开发参考。 页面控件声明: <OBJECT id="webPrn" width="100%" height="100%" classid="clsid:C204BA3C-EBEA-454B-BD4E-4F6A73E79CFD" CODEBASE="vWebPrint.CAB#version=1,1,0,31"> <param name="lUser" value="注册人名称"></param> <param name="lUserNumer" value="授权数,未用"></param> <param name="lUserEndDate" value="授权结束日期,未用"></param> <param name="showToolbar" value="是否显示工具条,true或false"></param> <param name="userId" value="当前登陆者的ID,由业务系统指定"></param> </OBJECT> userId可以以以下方式加载,示例 <param name="userId" value="<%=userbean.getId()%>"></param> 以下例子,将以对象webPrn作为示例。 | |||||||||||
属性: | 名称 | 描述 | Js脚本设置例子 | 备注 | ||||||||
LoadUrl | 指定要打开的Url链接。 | webPrn.LoadUrl = "http://www.google.com"; | ||||||||||
ShowToolbar | 指定是否显示工具条,设置值为true或false。 | webPrn.ShowToolbar = true; | ||||||||||
LoadBatchUrl | 指定要打批量打印的页面,多个页面要以逗号分隔。 | webPrn.LoadBatchUrl = "http://www.baidu.com,http://www.google.com" | ||||||||||
方法: | 名称 | 参数 | 描述 | Js脚本设置例子 | 备注 | |||||||
OpenDocumentHTML | pHTML, cssFilePath, jsFilePath | 打印指定的HTML代码 cssFilePath 指定要加载的css文件,要全路径 如 http://192.168.0.22:8088/abc/style.css jsFilePath 指定要加载的js文件,同上要全路径 因为这个方法只是对指定的页面打印innerHTML,一般没有附带css样式,所以增加css文件加载的参数。
| webPrn.OpenDocumentHTML(document.body.innerHTML); | 提供了更为灵活的打印方式,可以打印页面任意对象的HTML源。 打印HTML源的另一种方式,不得与LoadUrl混用,LoadUrl属性不要设置,OpenUrl方法不要执行。 | ||||||||
SetTopMargin | pTop | 指定纸张上边距,单位cm | webPrn.SetTopMargin("1.0"); | |||||||||
SetLeftMargin | pLeft | 指定纸张左边距,单位cm | webPrn.SetLeftMargin("1.0"); | |||||||||
SetRightMargin | pRight | 指定纸张右边距,单位cm | webPrn.SetRightMargin("1.0"); | |||||||||
SetBottomMargin | pBottom | 指定纸张下边距,单位cm | webPrn.SetBottomMargin("1.0") | |||||||||
SetOrientation | pOrientation | 指定打印方向,1纵向,2横向 | webPrn.SetOrientation(1); | |||||||||
SetPaperSize | pPaperSize, [pW], [pH] | 指定纸张类型 当pPaperSize=256时,表明是自定义纸张,需要同时指定pW(纸张宽度cm),pH(纸张高度cm),如果不指定,自定义纸张的宽度默认为22cm,高度14cm。 当pPaperSize<>256时,表明是系统保留纸张,不用指定pW和pH参数。 pPaperSize的值如[附表一]。 | webPrn.SetPaperSize(9); //9是A4 或 webPrn.SetPaperSize(256,15,18); //自定义纸张,宽15cm,高18cm,一般用于套张纸张定义 | |||||||||
SetCopies | pCopies | 指定打印份数。 | webPrn.SetCopies(3); //打印三份 | |||||||||
SetPaperInfo | 无 | 使所有的打印机设置生效,只有执行本方法,打印机的设置才会生效。 | webPrn.SetPaperInfo(); | |||||||||
SetHeader | pHeaderText | 指定打印页眉,见[附表二] | webPrn.SetHeader("我的页眉"); //设置打印页眉 | |||||||||
SetFooter | pFooterText | 指定打印页脚,见[附表二] | webPrn.SetFooter("我的页脚"); //设置打印页脚 | |||||||||
ResetDefaultPaperInfo | 无 | 恢复打印机设定,A4纸,纵向,系统默认页眉页脚,份数1张,但不恢复上下左右边距 | webPrn.ResetDefaultPaperInfo(); | |||||||||
OpenUrl | 无 | 在设定了LoadUrl属性后,执行本方法,打开一个待打印的页面 | webPrn.OpenUrl(); | |||||||||
SetMediaHeader | pHeaderText, pHeaderAlign, pPageId, pPageType, pHeaderHeight | 指定带格式的页眉 pHeaderText,页眉文本 pHeaderAlign,页眉位置(left,center,right) pPageId,打印页中,每页的ID命名规则,如 <div id='page_0'>第一页...</div><p 分页> <div id='page_1'>第二页...</div><p 分页> .... 这里,pPageId="page",支持模糊匹配,最好命名特别一点,以和其他对象有所区分。 pPageType,打印页中,每页数据的容器对象类型,只能为"TABLE"或"DIV" 本例的 pPageType = "DIV"; pHeaderHeight,页眉的高度,单位px(像素) | webPrn.SetMediaHeader("<font color=red>红色页眉</font>","left","page","DIV","28px");
webPrn.SetMediaHeader("<font color=red>红色页眉</font>","left","28px"); | |||||||||
SaveUserPrinterSertup | schemeName 返回true或false | 以schemeName为名称保存当前用户的打印方案 | webPrn.SaveUserPrinterSertup("增值票打印方案A3"); 或 webPrn.SaveUserPrinterSertup("一般票打印方案A5"); | |||||||||
LoadUserPrinterSetup | [schemeName] 返回true或false | 以schemeName为名称读取当前用户的打印方案 | webPrn.LoadUserPrinterSetup("增值票打印方案A3"); 或 webPrn.LoadUserPrinterSetup("一般票打印方案A5"); 方案名称可以直接指定也可以由控件界面选择 | |||||||||
PrintBatchWebPage | 无 | 在设定了LoadBatchUrl属行后,执行本方法,批量直接打印N个待打印的页面。 | webPrn.PrintBatchWebPage(); | |||||||||
PrintWebPage | 无 | 直接打印当前页面 | webPrn.PrintWebPage(); | |||||||||
PrintSetupWebPage | 无 | 打印前进行打印机设置,当然可以取消打印 | webPrn.PrintSetupWebPage(); | |||||||||
PrintView | 无 | 打印预览 | webPrn.PrintView(); | |||||||||
PrintSetup | 无 | 打印设置 | webPrn.PrintSetup(); | |||||||||
PrintStatus | 无 | 检测打印机是否安装 | webPrn.PrintStatus(); | |||||||||
SetPrintObjects | pObjs, [pQueryType], | 指定打印的页面对象,只影响TABLE和DIV两种对象 pObjs,要打印对象的ID命名,多个对象用逗号分隔 pQueryType,对象查找方式,0模糊匹配,1精确匹配 | webPrn.SetPrintObjects("page_0,page_2",1); //精确匹配,只打印第一页和第三页的table或Div对象 或 webPrn.SetPrintObjects("page,tab",0); //模糊匹配,只打印ID名称含有page和tab的table或Div对象 | |||||||||
SetPrintBackground | pBgobject, [pShowType] | 套打时,指定页面的底图对象 对象的对应属性要为 background="images/abc.jpg",不能为css样式类,可以设置在body pBgobject,底图对象ID命名 pShowType,0预览时保留底图,打印时去掉底图 1预览时去掉底图,打印时保留底图(要在IE设置打印时保留底图) | webPrn.SetPrintBackground("bodyObj",0); //底图容器对象ID为,bodyObj,预览时可见底图,打印时去掉底图 或 webPrn.SetPrintBackground("bodyObj",1); //底图容器对象ID为,bodyObj,预览时可见底图,打印时去掉底图 如 <body id="bodyObj" background="abc.jpg"> 或 <div id="bodyObj" background="abc.jpg"> 或 <table id="bodyObj" background="abc.jpg"> | |||||||||
附表一: | 纸张类型定义,具体支持类型根据当时打印机。 注意 对象此属性的效果依赖于打印机厂家提供的驱动程序。某些属性设置值可能不起作用,或者一些不同的属性设置值可能有相同的效果。接受范围之外的设置值可能产生也可能不产生错误。详细信息,请参阅厂家具体驱动程序的文档 | |||||||||||
1 信笺, 8 1/2 x 11 英寸。 2 +A611 小型信笺, 8 1/2 x 11 英寸。 3 小型报, 11 x 17 英寸。 4 分类帐, 17 x 11 英寸。 5 法律文件, 8 1/2 x 14 英寸。 6 声明书,5 1/2 x 8 1/2 英寸。 7 行政文件,7 1/2 x 10 1/2 英寸。 8 A3, 297 x 420 毫米 9 A4, 210 x 297 毫米 10 A4小号, 210 x 297 毫米 11 A5, 148 x 210 毫米 12 B4, 250 x 354 毫米 13 B5, 182 x 257 毫米 14 对开本, 8 1/2 x 13 英寸。 15 四开本, 215 x 275 毫米。 16 10 x 14 英寸。 17 11 x 17 英寸。 18 便条,8 1/2 x 11 英寸。 19 #9 信封, 3 7/8 x 8 7/8 英寸。 20 #10 信封, 4 1/8 x 9 1/2 英寸。 21 #11 信封, 4 1/2 x 10 3/8 英寸。 22 #12 信封, 4 1/2 x 11 英寸。 23 #14 信封, 5 x 11 1/2 英寸。 24 C 尺寸工作单 25 D 尺寸工作单 26 E 尺寸工作单 27 DL 型信封, 110 x 220 毫米 29 C3 型信封, 324 x 458 毫米 30 C4 型信封, 229 x 324 毫米 28 C5 型信封, 162 x 229 毫米 31 C6 型信封, 114 x 162 毫米 32 C65 型信封,114 x 229 毫米 33 B4 型信封, 250 x 353 毫米 34 B5 型信封,176 x 250 毫米 35 B6 型信封, 176 x 125 毫米 36 信封, 110 x 230 毫米 37 信封大王, 3 7/8 x 7 1/2 英寸。 38 信封, 3 5/8 x 6 1/2 英寸。 39 U.S. 标准复写簿, 14 7/8 x 11 英寸。 40 德国标准复写簿, 8 1/2 x 12 英寸。 41 德国法律复写簿, 8 1/2 x 13 英寸。 256 用户定义 | ||||||||||||
附表二: | 页眉页脚系统保留定义及说明 | |||||||||||
&w 窗口标题 &u 网页地址 (URL) &d 短日期格式(由“控制面板”中的“区域设置”指定) &D 长日期格式(由“控制面板”中的“区域设置”指定) &t 由“控制面板”中的“区域设置”指定的时间格式 &T 24 小时时间格式 &p 当前页号 &P 网页总数 && 单个 & 号 (&) &b 紧跟在这些字符之后的文本居中打印。 &b&b 紧跟在第一个 "&b" 之后的文本居中打印,跟在第二个 "&b" 之后的文本按右对齐方式打印。 | ||||||||||||
说明:所有方法和属性都可以混合使用,可以直接打印Url,也可以通过控件打印,使用时注意先后顺序就可以了:1打开文档,2设置打印机参数,3使打印机设置生效,4设置其他页面属性,5打印 | ||||||||||||
vWebPrint打印控件 Pengwei拥有版权,联系QQ:121310959 |