很简单 直接看代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PrintPage.aspx.cs" Inherits="Demo.Web.PrintPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>打印单</title> <link href="../CSS/css-main.css" mce_href="CSS/css-main.css" type="text/css" rel="stylesheet" media="all" /> <mce:script type="text/javascript"><!-- //注册表的网页打印路径 var hkey_root="HKEY_CURRENT_USER" ; var hkey_path="//Software//Microsoft//Internet Explorer//PageSetup//"; var hkey_key; //打印指定区域 function DoPrint() { //直接调用WebBrowser的打印,要打印预览的话是ExecWB(7,1) document.all.WebBrowser.ExecWB(6,1); } //设置纸张方向 function SetupLandscape() { try{ var wsShell= new ActiveXObject("WScript.Shell"); //打印页面的Menubar必须可见,此操作类似按键盘上的Alt+F+U也就是 调出页面设置对话框 wsShell.sendKeys('%fu'); //此操作类似按键盘上的Alt+A也就是 设置横向打印 wsShell.sendKeys('%a'); //此操作类似按键盘上的回车 页面设置对话框的默认焦点在 确定上 所以直接确定 wsShell.sendKeys('{ENTER}'); } catch(e){} } //设置默认的页眉页脚 function SetupPage() { try{ var RegWsh = new ActiveXObject("WScript.Shell"); hkey_key="header" RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P") hkey_key="footer" RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&b&d") //去掉了&u 因为我不想显示当前打印页的网址 hkey_key="margin_bottom"; RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0.39"); //0.39相当于把页面设置里面的边距设置为10 hkey_key="margin_left"; RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0.39"); hkey_key="margin_right"; RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0.39"); hkey_key="margin_top"; RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"0.39"); } catch(e){} } setTimeout("SetupLandscape()",1000); setTimeout("SetupPage()",2000); setTimeout("DoPrint()",3000); // --></mce:script> </head> <body> <form id="form1" runat="server" enctype="multipart/form-data"> <OBJECT id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" VIEWASTEXT ></OBJECT > <table width="100%"> <tr><td>要打印的内容</td></tr> </table> </form> </body> </html>