WEB打印-网页打印功能(带分页、可多页打印)

   
   
Web打印   
   
   
   
 
   
 
   
 
   



第1页
     
 

这样的报表

对一般的要求就够了。

 

第2页
看到分页了吧
 
 

这样的报表

对一般的要求就够了。

 

第1页
     
 

这样的报表

对一般的要求就够了。

 

第2页
看到分页了吧
 
 

这样的报表

对一般的要求就够了。

 

网页打印按钮的源代码:javascript:window.print(); 
 
可以用css控制 
@media print 
.a {display:block} 
.b {display:hidden} 
好像是这样。把你不想打印的部分class设为b 
 
首先在网页中添加: 
 
 
 
然后就可以依次加入功能按钮了: 
  
 
 
 
 
 
将这两块东西放到
就不会打印这些按钮了。当然要定义noprint了: 
 
只要把不想打印的东西的css设置成noprint就可以了。 
 
现在就实现了基本的web打印版权保护,需要注意的情况如下: 
   1. 必须将ie的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行...设置成提示或者启用版权保护,否则会报错版权保护,导致不可用。 
   2. 如果在vs.net编辑环境下编辑该页面版权保护,它经常自动的给object添加多余的参数版权保护,有了这些东西版权保护,打印就会出错版权保护,所以要记得最后保存的时候删除它们。 
 
为了简便并且达到最好的效果版权保护,我们可以在一个页面实现编辑和打印版权保护,这时候会需要很多的textbox版权保护,我们把它的css设置成 
.edittext{ 
overflow-y:visible; 
width: 100%; 
border-top: none; 
border-right: none; 
border-bottom: none; 
border-left: none; 

就可以实现在打印的时候不显示边框和multiline的textbox不显示滚动条了。 
 
还有一些小经验就是在设置标格宽度的时候版权保护,对于A4纸张版权保护,横打用920版权保护,竖打用640版权保护,效果最好。相信用B/S方式做过应用的人都可能会遇到这样一个问题版权保护,如何方便、美观地实现报表打印。如果使用浏览器的打印菜单打印的话版权保护,将把网页上的一些无用的东西打到报表上版权保护,比如应用菜单等。因为选择打印菜单打印网页将会把网页中的所有内容全部打印出来版权保护,如果你的应用有分帧则打印内容将包括各帧中的内容版权保护,而你实际要的内容只是其中一部分。所以有很多应用就只能把打印功能放到后台完成了。 
 
针对这种情况版权保护,我们该怎么办?其实可以有多种方法实现网页打印功能。 
第 一种方法就是使用专业的打印工具版权保护,如Crystal Reports(水晶报表)。用过Visual Studio 5.0的朋友肯定记得这个工具版权保护,不过那时的版本只有4.几。现在的最新版本已达9了版权保护,近几个版本的水晶报表都支持WEB打印。最简单的方法是先用水晶报表制作好模板版权保护,然后使用ASP带参数调用制作好的模板即可。水晶报表在网页上生成报表后版权保护,可以直接打印版权保护,也可以转存为其它的比较通用的文件如Excel文件。使用水晶报表可以制作出非常漂亮的样式版权保护,关键在你对水晶报表的开发能力上版权保护,但由于水晶报表价格较高版权保护,只有当项目很赚钱时才买得起。 
第二种方法是购买第三方的网上打印控件版权保护,费用同水晶报表相比便宜版权保护,但效果性能到底如何则仁者见仁了。 
第三种方法是利用样式表及JavaScript自定义函数实现。通过样式表及JavaScript版权保护,实现网页打印版权保护,效果也还可以。在此有一个实例请大家看看。下面是打印函数实现详解: 
 
<script language="JavaScript" type="text/JavaScript"> 
<!-- 
function DP() { 
  if (window.print){ 
var Div1 = document.all.Div1.innerHTML; 
var Div2 = document.all.Div2.innerHTML; 
// ***************************************************** 
// Div1、Div2即为你在打印的区域 
// 这里根据你要打印的哪些内容版权保护,从原显示页面中用 
// <div id=Div1>Div1....</div><div id=Div2>Div2...</div> 
// 等标示出来,要打印多少项目就标示多少 
// *****************************************************  
    var css = '<style type="text/css" media=all>' +'p { line-height: 120%}'  
  +'.ftitle { line-height: 120%; font-size: 18px; color: #000000}'  
   +'td { font-size: 10px; color: #000000}' +'</style>' ; 
  // ***************************************************** 
// 定义打印用的CSS版权保护,具体你想打印出什么样的格式全看你自己 
// 了版权保护,但要注意:如果此处有什么同网页中不一致的版权保护,可能打印 
// 出来的页面同网页格式、字体可能会有所不同 
// ***************************************************** 
var body ='<table width="640" border="0" cellspacing="0" cellpadding="5">' 
+' <tr> '  
+' <td class="fbody"> '  
+' <div align="center" class=ftitle>' + Div1 + '</div>' + Div2  
+' </td>' +' </tr>'  
+'</table>'; 
// ****************************************************** 
// 在此处重新设置的打印格式版权保护,根据你的打印要求版权保护,将原显示的 
// 网页的DIV内容重新组合版权保护,可以根据你原来的表格内容版权保护,去掉 
// 不要打印的版权保护,你也可以能下面定义的noprint忽略掉你不想打 
// 印的东西版权保护,只调用你要打印的内容版权保护,但这样被忽略掉的地方将 
// 打印出空版权保护,不是很美观。表格宽度要同打印的纸张宽度匹配。 
// ****************************************************** 
document.body.innerHTML = '<center>' + css + body + '</center>'; 
// ****************************************************** 
// 重设document.body版权保护,打印文档准备就绪 
// ****************************************************** 
window.print(); 
window.history.go(0); 
// ****************************************************** 
// 调用打印命令版权保护,打印当前窗口内容。当你打印时其实是一张新 
// 的网页了版权保护,但网页文件还是原先的。紧接着调用 
// window.history.go(0)版权保护,再回到打印前的页面版权保护,效果相当不差 
// ****************************************************** 


--> 
</script> 
 
<style> 
  @media print { 
    .noprint {display:none} 
  } 
</style> 
 
<!--//.noprint 定义了noprint版权保护,在以下不需要打印的地方加入 class="noprint"后版权保护,用window.print()打印就会忽略--> 好了版权保护,一切就绪了版权保护,现在要做的就是调用DP函数版权保护,如果你将实现调用的按钮设计在同一张网页上版权保护,则直接调用即可;如果你用了分帧方法版权保护,实现调用的按钮是在另一张网页上版权保护,则在DP函数的第一行加入window.focus()命令版权保护,否则打印的只是有按钮的网页。 
    第四种方法版权保护,实现是一种取巧的方法。一样还是通过调用window.print()实现版权保护,只是将你要打印的内容专门生成一张网页版权保护,而打印按钮在另一帧上。假设报表网页在mainFrame上版权保护,按钮在topFrame上版权保护,按钮调用PrintReports()函数版权保护,PrintReports()函数如下即可实现打印工作。 
 
function PrintReports(){//topFrame网页中的函数 
  try{ 
    // ******************************************************* 
    // 错误处理版权保护,如果在mainFrame中的网页没有DP函数则不打印 
    // ******************************************************* 
    window.parent.frames("mainFrame").DP(); 
  }catch(e){ 
    alert("no object to print!"); 
  } 

function DP() {// mainFrame网页中函数 
  window.focus(); 
  if (window.print){ 
    window.print(); 
  } 

 
1、控制"纵打"、 横打”和“页面的边距。 
(1) 
(2) 
 
 
 
 
 
 
 
 
------------------------------------------------ 
关于这个组件还有其他的用法版权保护,列举如下: 
WebBrowser.ExecWB(1,1) 打开 
Web.ExecWB(2,1) 关闭现在所有的IE窗口版权保护,并打开一个新窗口 
Web.ExecWB(4,1) 保存网页 
Web.ExecWB(6,1) 打印 
Web.ExecWB(7,1) 打印预览 
Web.ExecWB(8,1) 打印页面设置 
Web.ExecWB(10,1) 查看页面属性 
Web.ExecWB(15,1) 好像是撤销版权保护,有待确认 
Web.ExecWB(17,1) 全选 
Web.ExecWB(22,1) 刷新 
Web.ExecWB(45,1) 关闭窗体无提示 
2、分页打印 
 
 
 
 
 
<%while not rs.eof%> 

<%=rs(0)%>

 
<%rs.movenext%> 
<%wend%> 
 
 
 
3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号 
(1)ie的文件-〉页面设置-〉讲里面的页眉和页脚里面的东西都去掉版权保护,打印就不出来了。 
(2) 
 
New Document  
 
 
 
 
 

 

 

 

 

 

 

 

 
 
 
4、浮动帧打印 
 
 
4、用FileSystem组件实现WEB应用中的本地特定打印 
 
 
 
服务器端脚本: 
 
<%……… 
 
set conn=server.CreateObject ("adodb.connection") 
 
conn.Open "DSN=name;UID=XXXX;PWD=XXXX;" 
 
set rs=server.CreateObject("adodb.recordset") 
 
rs.Open(“select ……”),conn,1,1 
 
……….%> //与数据库进行交互 
 
HTML页面编码: 
 
 
 
……… 
 
 
 
//调用打印函数 
 
> //保存服务器端传来的数据 
 
……… 
 
 
 
 
 
———————————————————————————————— 
 
可以控制打印区域打印代码 
 
先写入以下代码: 
 
 
 
利用
文章正文
实际是通过设置id为article的区域来控制打印区域的大小. 
 
 
 
打印按钮:【打印】 
 
———————————————————————————————————— 
 
WebBrowser是IE内置的浏览器控件版权保护,无需用户下载。本文档所讨论的是有关IE6.0版本的WebBrowser控件技术内容。其他版本的IE应该也支持。与其相关的技术要求有:打印文档的生成、页面设置、打印操作的实现等几个环节。本文以asp为例版权保护,但是他可以容易的移植到其他web技术中。 
 
一、WebBrowser控件 
 
 
 
二、WebBrowder控件的方法 
 
//打印 
 
WebBrowser1.ExecWB(6,1); 
 
//打印设置 
 
WebBrowser1.ExecWB(8,1); 
 
//打印预览 
 
WebBrowser1.ExecWB(7,1); 
 
三、实现打印的设置版权保护,打印数据的生成版权保护,打印的预览版权保护,和打印。 
 
实现打印的设置版权保护,打印数据的生成版权保护,打印的预览版权保护,和打印我一般这样做版权保护,假如查询结果在a.asp中版权保护,那么在a.asp中放置打印设置、打印预览、打印三个按钮。 
 
单击打印设置按钮则在js中执行WebBrowser1.ExecWB(8,1)版权保护,以打开打印设置窗口。 
 
单击打印预览按钮则打开一个b.asp,在b.asp中重新生成打印数据版权保护,然后在b.asp中自动执行WebBrowser1.ExecWB(7,1)版权保护,以打开用户预览界面。 
 
单击打印按钮则也打开b.asp版权保护,在b.asp中重新生成打印数据版权保护,然后在b.asp中自动执行WebBrowser1.ExecWB(6,1)版权保护,以自动打印数据。 
 
四、代码 
 
a.asp调用数据的程序就不给出了。只给出几个按钮的代码: 
 
 
 
 
 
 
 
 
 
 
 
代码中打印设置的代码很简单版权保护,大家很容易理解。打印预览和打印的按钮需要告诉b.asp我们将要执行的是打印还是打印预览。另外版权保护,还要将查询字符串传递过去。当然web高手可以尝试其他方法版权保护,以避免反复重服务器调数据版权保护,当然初学者只能通过多次查询版权保护,以牺牲性能来解决打印了。 
 
假设本例中a.asp通过传递一个查询串打开了b.asp版权保护,则在b.asp中将重新载入数据。在这里载入数据后将数据显示在网页上需要知道每个页要显示多少条(PageSize)。显示的时候 
 
———————————————————————————— 
 
弹出打印窗口版权保护,去掉网址显示. 
 
 
 
 
 
 
 
———————————————————————————————— 
 
WEB打印,去页眉和页脚 
 
作者: 未知 
 
日期: 
 
1. IE浏览器. 文件->页面设置. 
 
把页脚去掉就行了. 
 
2.用代码. 
 
//有提示的.. 
 
 
 
New Document  
 
 
 
 
 
 
 
 
 
 
 

 
 

 
 

 
 

 
 

 
 

 
 
 
="button" value="恢复页眉" οnclick=pagesetup_default()>
 
 

 
 
 
 
 

你可能感兴趣的:(javascript)