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命名规范)等特性,下面是一些常用例子。
 
 
最简单打印 > 直接打印印

<HTML>
<script>
window.onresize = function(){
webPrn.ResizeWindow(document.body.clientWidth,document.body.clientHeight);
}
function init(){
webPrn.LoadUrl = "http://www.google.com";
webPrn.OpenUrl();
webPrn.PrintWebPage();
webPrn.ResizeWindow(document.body.clientWidth,document.body.clientHeight);
}
</script>
<BODY topmargin="0" leftmargin="0" οnlοad="init();">
<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="30"></param>
<param name="lUserEndDate" value="2008-02-09"></param>
<param name="showToolbar" value="true"></param>
<param name="userId" value="登陆用户的id"></param>
</OBJECT>
</BODY>
</HTML>
 

设置打印参数打印 > 直接打印

<HTML>
<script>
window.onresize = function(){
webPrn.ResizeWindow(document.body.clientWidth,document.body.clientHeight);
}}
function init(){
webPrn.LoadUrl = "http://www.google.com";
webPrn.OpenUrl();
webPrn.SetTopMargin("1.0"); //设置顶边距1.0cm
webPrn.SetOrientation(2);   //设置横向打印 1,纵向,2,横向向
//.....等等
webPrn.PrintWebPage();
webPrn.ResizeWindow(document.body.clientWidth,document.body.clientHeight);
}}
</script>
<BODY topmargin="0" leftmargin="0" οnlοad="init();">
<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="30"></param>
<param name="lUserEndDate" value="2008-02-09"></param>
<param name="showToolbar" value="true"></param>
<param name="userId" value="登陆用户的id"></param>

</OBJECT>
</BODY>
</HTML>

批量页面直接打印

<HTML>
<script>
window.onresize = function(){
webPrn.ResizeWindow(document.body.clientWidth,document.body.clientHeight);
}
function init(){
//....可以设置打印机参数
webPrn.LoadBatchUrl = "http://www.baidu.com,http://www.google.com";  //多个url用逗号分开
webPrn.PrintBatchWebPage();
}
</script>
<BODY topmargin="0" leftmargin="0" οnlοad="init();">
<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="30"></param>
<param name="lUserEndDate" value="2008-02-09"></param>
<param name="showToolbar" value="true"></param>
<param name="userId" value="登陆用户的id"></param>

</OBJECT>
</BODY>
</HTML>

指定要打印的页面对象(只能是Table或Div)

<HTML>
<script>
window.onresize = function(){
webPrn.ResizeWindow(document.body.clientWidth,document.body.clientHeight);
}}
function init(){
//....可以设置打印机参数
webPrn.LoadUrl = "c://TestPrintObjects.html";
webPrn.OpenUrl();
webPrn.SetPrintObjects("yesPrint1,yesPrint2");  //指定要打印的对象,id为yesPrint1和yesPrint2的表格或层,将被打印
//....可以直接打印印
}
</script>
<BODY topmargin="0" leftmargin="0" οnlοad="init();">
<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="30"></param>
<param name="lUserEndDate" value="2008-02-09"></param>
<param name="showToolbar" value="true"></param>
<param name="userId" value="登陆用户的id"></param>

</OBJECT>
</BODY>
</HTML>

指定是否打印底图(一般套打用)

<HTML>
<script>
window.onresize = function(){
webPrn.ResizeWindow(document.body.clientWidth,document.body.clientHeight);
}}
function init(){
//....可以设置打印机参数
webPrn.LoadUrl = "c://TestPrintObjects.html";
webPrn.OpenUrl();
webPrn.SetPrintObjects("yesPrint1,yesPrint2",0,0,"yesBodyObj");  //第三个参数0指定只能在预览时看到底图,打印时无底图,如果值为1,则在预览时无底图,打印时有底图,第四个参数指定底图的id名称
//....可以直接打印印
}
</script>
<BODY topmargin="0" leftmargin="0" οnlοad="init();">
<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="30"></param>
<param name="lUserEndDate" value="2008-02-09"></param>
<param name="showToolbar" value="true"></param>
<param name="userId" value="登陆用户的id"></param>
</OBJECT>
</BODY>
</HTML>

 
 
三 使用参考:
程序员开发参考。

页面控件声明:
<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

自己开发基于Web的打印控件,真正免费不是共享相关推荐

  1. ATGrid WEB报表打印控件/MIS报表控件

    ATGrid WEB报表打印控件/MIS报表控件 ATGrid报表控件/WEB插件[专业版],对EtCell进行了进行了全面的改革, 将会彻彻底底的解决你的报表问题,让你开发达到从未有过的轻松和喜悦- ...

  2. 发现了一个好用的WEB项目打印控件--四方打印

    PAZU 与WEB打印  PAZU 组件应用于基于WEB的开发  PAZU 提供以下三大类功能:             1.控制IE窗口的外观和行为 1.1 通过 JavaScript 隐藏IE的地 ...

  3. (转)WEB第三方打印控件[ASP.NET常用工具]

    本文转载自:http://blog.csdn.net/chz_cslg/article/details/25415347 在B/S模式开发中,打印是个很大的困扰.无论是采用页面直接输出或者引用WORD ...

  4. 做了个web应用打印控件,用了4Fang WEB 打印控件,免费

    做了个网页程序,选择了一个web打印控件,在浏览器升级到ie7后,不能打印了. 然后用了4Fang WEB 打印控件,免费的,支持ie6,ie7,ie8,可以自定义纸张大小, 自定义页眉页脚,分页.. ...

  5. 基于Applet的Web在线扫描仪控件

    基于JAVAEE的B/S架构由于java语言的跨平台性 所以操控Window客户端资源能力有限, 目前比较流行是用其他语言如Delphi,VB,C++开发客户端控件 然后再html中用js调用. 但对 ...

  6. PAZU 是4Fang 为配合“四方在线”软件于2004年开发的WEB打印控件,适用于各种WEB软件项目的打印。...

    PAZU 是4Fang 为配合"四方在线"软件于2004年开发的WEB打印控件,适用于各种WEB软件项目的打印. PAZU是客户端软件,使用于IE作为客户端的所有应用,与服务器端开 ...

  7. PAZU WEB打印控件

    PAZU WEB打印控件 PAZU 组件在国内我们提供授权给包括中国电信.移动和银行在内的超过300家大中型企业和IT企业应用于基于WEB的开发 PAZU 支持包括Java, Dot Net, JSP ...

  8. 锐洋java web打印控件_锐洋Java web打印控

    ReYoPrint产品介绍 ReYoPrint (锐洋.打印控件)是一款实现网页套打的专用工具.作为web应用开发者,我们经常会遇到在浏览器中打印报表.票据的需求,这些需求浏览器本身的打印功能一般不能 ...

  9. CAD制图, 机械CAD, 建筑CAD, 电力CAD, CAD设计, 数控与CAM, DXF导入\导出, 打印, 软件开发, VC++源代码,OCX 控件源程序2018

    CAD制图, 机械CAD, 建筑CAD, 电力CAD, CAD设计, 数控与CAM, DXF导入\导出, 打印, 软件开发,VC++源代码,OCX 控件源程序2018 -- 100%源码开放企业级CA ...

最新文章

  1. Paddle网络结构中的层和模型
  2. java时间格式转换_Java中System.currentTimeMillis()计算方式与时间的单位转换
  3. css实现图片虚化_CSS中实现图片自适应的方法
  4. uva 10817——Headmaster's Headache
  5. C#之out和ref区别
  6. 【学习笔记4】Action名称的搜索顺序
  7. python人脸比对算法_Python的人脸识别,欧式距离比对,机器训练,人脸采集,离线识别...
  8. FlashFTP教程
  9. 【python】《多媒体技术与应用》实验报告「数字图像基础」
  10. 第八届山东省ACM大学生程序设计竞赛总结
  11. python打印什么意思,python语句:print(*[1,2,3]),是什么意思?
  12. 机器学习中几种常见的乘积(product)
  13. 华为敏捷/DevOps实践:如何开好站立会议
  14. 尸体火化,世界上再也找不到第二个比我社死的人了
  15. Phonetic symbol 清辅音 -- p
  16. 北斗由“高大上”转为“接地气” 芯片成国内智能手机标配
  17. 灾难拯救——让软件项目重回轨道
  18. CentOS 7.8 (2003) 发布,附下载地址
  19. 如何找到蓝奏云网盘登录后的ylogin、phpdisk_info?
  20. 算法笔记——基数排序

热门文章

  1. 达到英语欧洲语言C2级的书有,剑桥少儿英语二级书
  2. 2023最新猕猴桃影视系统源码/影视APP源码+安卓/苹果双端
  3. 在stm32cubemx的freertos中创总任务跑支线任务
  4. Mac item2 配色,大小写敏感及常用快捷键
  5. 大数据用什么软件python_大数据软件 python
  6. 判断是否是平衡二叉树
  7. 制图大赛计算机二维绘图,第五届“高教杯”全国大学生先进成图技术与产品信息建模创新大赛 机械类 计算机绘图试卷.pdf...
  8. 微光集市-登陆后用户对购物车的操作(版本4.0)
  9. xml与map的相互转换
  10. js中拼接字符串遇到的单引号、双引号以及转义字符问题