web打印技巧一则.用到了WEBBROWSE

博客介绍了一种思路,即使用JavaScript提取<div id='print'>标签内要打印的内容,并将其显示到新的页面,还给出了代码所在的webform1.aspx页及转载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:<div id="print">要打印的内容</div>用JS把<DIV>的内容取出来,显示到新的一个页面.
代码:webform1.aspx页

None.gif<INPUT type="button" value="Button" onclick='javascript:window.open("../lib/PrintShow.aspx?id=lay","","dialogWidth:screen.availWidth; dialogHeight:screen.availHeight; dialogLeft:0px; dialogTop:0px; status:no; directories:yes;scrollbars:no;Resizable=no;scroll:no");'>
None.gif
None.gif
<div id="lay">要打印的内容</div>
代码:printshow.aspx页

ExpandedBlockStart.gifContractedBlock.gif<%dot.gif@ Page language="c#" Codebehind="printshow.aspx.cs" AutoEventWireup="false" Inherits="qkoa.lib.printshow" %>
None.gif
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
None.gif
<HTML>
None.gif    
<HEAD>
None.gif        
<title>printshow</title>
None.gif        
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
None.gif        
<meta name="CODE_LANGUAGE" Content="C#">
None.gif        
<meta name="vs_defaultClientScript" content="JavaScript">
None.gif        
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
None.gif        
<LINK href="../css/Style.css" type="text/css" rel="stylesheet">
None.gif        
<LINK href="../css/text.css" type="text/css" rel="stylesheet">
None.gif        
<LINK href="../css/link.css" type="text/css" rel="stylesheet">
ExpandedBlockStart.gifContractedBlock.gif        
<script language="javascript">dot.gif
InBlock.gif        
function printshow()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//document.write(opener.document.lay.innerHTML);
InBlock.gif
            show.innerHTML=window.opener.parent.parent.main.document.all.<% =printdiv%>.innerHTML;
InBlock.gif            
ExpandedSubBlockEnd.gif        }

InBlock.gif        
function printview()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            wb.execwb(
7,1);
ExpandedSubBlockEnd.gif        }

InBlock.gif        
function printset()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            wb.execwb(
8,1);
ExpandedSubBlockEnd.gif        }

InBlock.gif        
function printsetdefault()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
// -- advanced features 
InBlock.gif
            factory.printing.SetMarginMeasure(2// measure margins in inches 
InBlock.gif
            factory.SetPageRange(false13// need pages from 1 to 3 
InBlock.gif
            factory.printing.printer = "HP DeskJet 870C" 
InBlock.gif            factory.printing.copies 
= 2 
InBlock.gif            factory.printing.collate 
= true 
InBlock.gif            factory.printing.paperSize 
= "A4" 
InBlock.gif            factory.printing.paperSource 
= "Manual feed" 
InBlock.gif
InBlock.gif            
// -- basic features 
InBlock.gif
            factory.printing.header = "This is MeadCo" 
InBlock.gif            factory.printing.footer 
= "Advanced Printing by ScriptX" 
InBlock.gif            factory.printing.portrait 
= false 
InBlock.gif            factory.printing.leftMargin 
= 1.0 
InBlock.gif            factory.printing.topMargin 
= 1.0 
InBlock.gif            factory.printing.rightMargin 
= 1.0 
InBlock.gif            factory.printing.bottomMargin 
= 1.0 
ExpandedSubBlockEnd.gif        }

ExpandedBlockEnd.gif        
</script>
ExpandedBlockStart.gifContractedBlock.gif        
<script language="VBScript">dot.gif 
InBlock.gif            
dim hkey_root,hkey_path,hkey_key 
InBlock.gif            hkey_root
="HKEY_CURRENT_USER" 
InBlock.gif            hkey_path
="\Software\Microsoft\Internet Explorer\PageSetup" 
InBlock.gif            
'//设置网页打印的页眉页脚为空 
InBlock.gif
            function pagesetup_null() 
InBlock.gif              
on error resume next 
InBlock.gif              
Set RegWsh = CreateObject("WScript.Shell"
InBlock.gif              hkey_key
="\header"   
InBlock.gif              RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"" 
InBlock.gif              hkey_key
="\footer" 
InBlock.gif              RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"" 
InBlock.gif            
end function 
InBlock.gif            
'//设置网页打印的页眉页脚为默认值 
InBlock.gif
            function pagesetup_default() 
InBlock.gif              
on error resume next 
InBlock.gif              
Set RegWsh = CreateObject("WScript.Shell"
InBlock.gif              hkey_key
="\header"   
InBlock.gif              RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"&w&b页码,&p/&P" 
InBlock.gif              hkey_key
="\footer" 
InBlock.gif              RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"&u&b&d" 
InBlock.gif            
end function 
ExpandedBlockEnd.gif        
</script>
None.gif    
</HEAD>
None.gif    
<body onload="javascript:printshow();" onload="vbscript:pagesetup_null()">
None.gif    
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 
None.gif
id=wb name=wb width=0 ></OBJECT>
None.gif        
<form id="Form1" method="post" runat="server">
None.gif        
<input type="button" value="打印设置" onclick="javascript:printset();">
None.gif        
<input type="button" value="打印预览" onclick="javascript:printview();">
None.gif            
<FONT face="宋体"><div id="show"></div></FONT>
None.gif        
</form>
None.gif    
</body>
None.gif
</HTML>
None.gif
上面的代码很多不需要,可以自己过滤掉.
printshow.aspx.cs
None.gifusing System;
None.gif
using System.Collections;
None.gif
using System.ComponentModel;
None.gif
using System.Data;
None.gif
using System.Drawing;
None.gif
using System.Web;
None.gif
using System.Web.SessionState;
None.gif
using System.Web.UI;
None.gif
using System.Web.UI.WebControls;
None.gif
using System.Web.UI.HtmlControls;
None.gif
None.gif
namespace qkoa.lib
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//// <summary>
InBlock.gif    
/// printshow 的摘要说明。
ExpandedSubBlockEnd.gif    
/// </summary>

InBlock.gif    public class printshow : System.Web.UI.Page
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
public string printdiv;
InBlock.gif        
private void Page_Load(object sender, System.EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
// 在此处放置用户代码以初始化页面
InBlock.gif
            if(!Page.IsPostBack)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                printdiv
=(Request.QueryString["id"]!=null)?Request.QueryString["id"].ToString():"0";
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif        
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
InBlock.gif        
override protected void OnInit(EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//
InBlock.gif            
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
InBlock.gif            
//
InBlock.gif
            InitializeComponent();
InBlock.gif            
base.OnInit(e);
ExpandedSubBlockEnd.gif        }

InBlock.gif        
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
InBlock.gif        
/// 此方法的内容。
ExpandedSubBlockEnd.gif        
/// </summary>

InBlock.gif        private void InitializeComponent()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{    
InBlock.gif            
this.Load += new System.EventHandler(this.Page_Load);
InBlock.gif
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif
hi一下.....
相关资料
None.gif、控制"纵打"、 横打”和“页面的边距。 
ExpandedBlockStart.gifContractedBlock.gif(1)
<script defer>dot.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif
function SetPrintSettings() dot.gif
InBlock.gif 
// -- advanced features 
InBlock.gif
 factory.printing.SetMarginMeasure(2// measure margins in inches 
InBlock.gif
 factory.SetPageRange(false13// need pages from 1 to 3 
InBlock.gif
 factory.printing.printer = "HP DeskJet 870C" 
InBlock.gif factory.printing.copies 
= 2 
InBlock.gif factory.printing.collate 
= true 
InBlock.gif factory.printing.paperSize 
= "A4" 
InBlock.gif factory.printing.paperSource 
= "Manual feed" 
InBlock.gif
InBlock.gif 
// -- basic features 
InBlock.gif
 factory.printing.header = "This is MeadCo" 
InBlock.gif factory.printing.footer 
= "Advanced Printing by ScriptX" 
InBlock.gif factory.printing.portrait 
= false 
InBlock.gif factory.printing.leftMargin 
= 1.0 
InBlock.gif factory.printing.topMargin 
= 1.0 
InBlock.gif factory.printing.rightMargin 
= 1.0 
InBlock.gif factory.printing.bottomMargin 
= 1.0 
ExpandedBlockEnd.gif}
 
None.gif
</script> 
None.gif
None.gif(2) 
ExpandedBlockStart.gifContractedBlock.gif
<script language="javascript">dot.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif  
function printsetup()dot.gif
InBlock.gif  
// 打印页面设置 
InBlock.gif
  wb.execwb(8,1); 
ExpandedSubBlockEnd.gif  }
 
ExpandedSubBlockStart.gifContractedSubBlock.gif  
function printpreview()dot.gif
InBlock.gif  
// 打印页面预览 
InBlock.gif
     
InBlock.gif  wb.execwb(
7,1); 
InBlock.gif      
InBlock.gif     
ExpandedSubBlockEnd.gif  }
 
InBlock.gif
InBlock.gif  
function printit() 
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif  
if (confirm('确定打印吗?')) dot.gif
InBlock.gif  wb.execwb(
6,6
ExpandedSubBlockEnd.gif  }
 
ExpandedSubBlockEnd.gif  }
 
ExpandedBlockEnd.gif  
</script> 
None.gif
</head> 
None.gif
<body> 
None.gif
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" 
None.gif
None.gifheight
=0 id=wb name=wb width=0></OBJECT> 
None.gif
<input type=button name=button_print value="打印" 
None.gif
None.gifonclick
="javascript:printit()"> 
None.gif
<input type=button name=button_setup value="打印页面设置" 
None.gif
None.gifonclick
="javascript:printsetup();"> 
None.gif
<input type=button name=button_show value="打印预览" 
None.gif
None.gifonclick
="javascript:printpreview();"> 
None.gif
<input type=button name=button_fh value="关闭" 
None.gif
None.gifonclick
="javascript:window.close();"> 
None.gif
None.gif------------------------------------------------ 
None.gif关于这个组件还有其他的用法,列举如下: 
None.gifWebBrowser.ExecWB(1,1) 打开 
None.gifWeb.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 
None.gifWeb.ExecWB(4,1) 保存网页 
None.gifWeb.ExecWB(6,1) 打印 
None.gifWeb.ExecWB(7,1) 打印预览 
None.gifWeb.ExecWB(8,1) 打印页面设置 
None.gifWeb.ExecWB(10,1) 查看页面属性 
None.gifWeb.ExecWB(15,1) 好像是撤销,有待确认 
None.gifWeb.ExecWB(17,1) 全选 
None.gifWeb.ExecWB(22,1) 刷新 
None.gifWeb.ExecWB(45,1) 关闭窗体无提示 
None.gif
None.gif2、分页打印 
None.gif
<HTML> 
None.gif
<HEAD> 
ExpandedBlockStart.gifContractedBlock.gif
<STYLE>dot.gif   
ExpandedSubBlockStart.gifContractedSubBlock.gif  P 
{dot.gif}{page-break-after: always} 
None.gif
</STYLE> 
None.gif
</HEAD> 
None.gif
<BODY> 
ExpandedBlockStart.gifContractedBlock.gif
<%dot.gifwhile not rs.eof%> 
None.gif
<P><%=rs(0)%></P> 
ExpandedBlockStart.gifContractedBlock.gif
<%dot.gifrs.movenext%> 
None.gif
<%wend%> 
None.gif
</BODY> 
None.gif
</HTML> 
None.gif
None.gif3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号 
None.gif(1)ie的文件-〉页面设置-〉讲里面的页眉和页脚里面的东西都去掉,打印就不出来了。 
None.gif(2)
<HTML> 
None.gif
<HEAD> 
None.gif
<TITLE> New Document </TITLE> 
None.gif
<META NAME="Generator" CONTENT="EditPlus"> 
None.gif
<META NAME="Author" CONTENT="YC"> 
ExpandedBlockStart.gifContractedBlock.gif
<script language="VBScript">dot.gif 
InBlock.gif
dim hkey_root,hkey_path,hkey_key 
InBlock.gifhkey_root
="HKEY_CURRENT_USER" 
InBlock.gifhkey_path
="\Software\Microsoft\Internet Explorer\PageSetup" 
InBlock.gif
'//设置网页打印的页眉页脚为空 
InBlock.gif
function pagesetup_null() 
InBlock.gif  
on error resume next 
InBlock.gif  
Set RegWsh = CreateObject("WScript.Shell"
InBlock.gif  hkey_key
="\header"   
InBlock.gif  RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"" 
InBlock.gif  hkey_key
="\footer" 
InBlock.gif  RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"" 
InBlock.gif
end function 
InBlock.gif
'//设置网页打印的页眉页脚为默认值 
InBlock.gif
function pagesetup_default() 
InBlock.gif  
on error resume next 
InBlock.gif  
Set RegWsh = CreateObject("WScript.Shell"
InBlock.gif  hkey_key
="\header"   
InBlock.gif  RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"&w&b页码,&p/&P" 
InBlock.gif  hkey_key
="\footer" 
InBlock.gif  RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"&u&b&d" 
ExpandedBlockEnd.gif
end function 
None.gif
</script> 
None.gif
</HEAD> 
None.gif
None.gif
<BODY> 
None.gif
<br/> 
None.gif
<br/> 
None.gif
<br/> 
None.gif
<br/> 
None.gif
<br/> 
None.gif
<br/><align=center> 
None.gif
<input type="button" value="清空页码" onclick=pagesetup_null()> <input type="button" value="恢复页吗" onclick=pagesetup_default()><br/> 
None.gif
None.gif
</p> 
None.gif
</BODY> 
None.gif
</HTML> 
None.gif4、浮动帧打印 
ExpandedBlockStart.gifContractedBlock.gif
<SCRIPT LANGUAGE=javascript>dot.gif 
ExpandedSubBlockStart.gifContractedSubBlock.gif
function button1_onclick() dot.gif
InBlock.gif  
var odoc=window.iframe1.document; 
InBlock.gif  
var r=odoc.body.createTextRange(); 
InBlock.gif  
var stxt=r.htmlText; 
InBlock.gif  alert(stxt) 
InBlock.gif  
var pwin=window.open("","print"); 
InBlock.gif  pwin.document.write(stxt); 
InBlock.gif  pwin.print(); 
ExpandedBlockEnd.gif}
 
None.gif
</SCRIPT> 
None.gif4、用FileSystem组件实现WEB应用中的本地特定打印 
ExpandedBlockStart.gifContractedBlock.gif
<script Language=VBScript>dot.gif 
InBlock.gif
function print_onclick //打印函数 
InBlock.gif
dim label 
InBlock.giflabel
=document.printinfo.label.value //获得HTML页面的数据 
InBlock.gif
set objfs=CreateObject("Scripting.FileSystemObject"//创建FileSystem组件对象的实例 
InBlock.gif
set objprinter=objfs.CreateTextFile ("LPT1:",true//建立与打印机的连接 
InBlock.gif
objprinter.Writeline("__________________________________"//输出打印的内容 
InBlock.gif
objprinter.Writeline("| |"
InBlock.gifobjprinter.Writeline(
"| 您打印的数据是:"&label& " |”) 
InBlock.gifobjprinter.Writeline(
"| |"
InBlock.gifobjprinter.Writeline(
"|_________________________________|"
InBlock.gifobjprinter.close //断开与打印机的连接 
InBlock.gifset objprinter=nothing 
InBlock.gifset objfs=nothing // 关闭FileSystem组件对象 
InBlock.gifend function 
InBlock.gif</script> 
InBlock.gif服务器端脚本: 
InBlock.gif<%……… 
InBlock.gifset conn=server.CreateObject (
"adodb.connection"
InBlock.gifconn.Open 
"DSN=name;UID=XXXX;PWD=XXXX;" 
InBlock.gifset rs=server.CreateObject(
"adodb.recordset"
InBlock.gifrs.Open(“select ……”),conn,1,1 
InBlock.gif……….%> //与数据库进行交互 
InBlock.gifHTML页面编码: 
InBlock.gif<HTML> 
InBlock.gif……… 
InBlock.gif<FORM ID=printinfo NAME=
"printinfo" > 
InBlock.gif<INPUT type=
"button" value="打印>>" id=print name=print > //调用打印函数 
InBlock.gif<INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服务器端传来的数据 
InBlock.gif……… 
InBlock.gif</HTML>

转载于:https://www.cnblogs.com/Blackie/archive/2005/10/21/259230.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值