问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

asp+JS如何实现页面加载就自动打印

发布网友 发布时间:2022-04-24 18:06

我来回答

3个回答

热心网友 时间:2022-04-22 13:30

直接用JS的PRINT是不行的,因为它是在点击链接才可以,<a href="javascript:window.print();">打印</a>。直接PRINT会被认为不安全。

所以用另一个方法。
具体是也没试过,你可以试试。

IEWebBrowser组件

介绍

http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3BQ267240#top
http://support.microsoft.com/kb/q247671/#appliesto

Java代码 复制代码

1. <OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>
2. <input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开>
3. <input name=Button onClick=document.all.WebBrowser.ExecWB(2,1) type=button value=关闭所有>
4. <input name=Button onClick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为>
5. <input name=Button onClick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印>
6. <input name=Button onClick=document.all.WebBrowser.ExecWB(6,6) type=button value=直接打印>
7. <input name=Button onClick=document.all.WebBrowser.ExecWB(7,1) type=button value=打印预览>
8. <input name=Button onClick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置>
9. <input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性>
10. <input name=Button onClick=document.all.WebBrowser.ExecWB(17,1) type=button value=全选>
11. <input name=Button onClick=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新>
12. <input name=Button onClick=document.all.WebBrowser.ExecWB(45,1) type=button value=关闭>

<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>
<input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开>
<input name=Button onClick=document.all.WebBrowser.ExecWB(2,1) type=button value=关闭所有>
<input name=Button onClick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为>
<input name=Button onClick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印>
<input name=Button onClick=document.all.WebBrowser.ExecWB(6,6) type=button value=直接打印>
<input name=Button onClick=document.all.WebBrowser.ExecWB(7,1) type=button value=打印预览>
<input name=Button onClick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置>
<input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性>
<input name=Button onClick=document.all.WebBrowser.ExecWB(17,1) type=button value=全选>
<input name=Button onClick=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新>
<input name=Button onClick=document.all.WebBrowser.ExecWB(45,1) type=button value=关闭>

三.使用ScriptX.cab控件

1.下载ScriptX.cab控件

官网http://www.meadroid.com/scriptx/index.asp

2.使用object元素,修改codebase,classid的值

这里调用控件ScriptX.cab
Java代码 复制代码

1. <OBJECT id="factory" style="DISPLAY: none" codeBase="${rootUrl}js/smsx.cab#VVersion=6,3,435,20" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext></OBJECT>

<OBJECT id="factory" style="DISPLAY: none" codeBase="${rootUrl}js/smsx.cab#VVersion=6,3,435,20" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext></OBJECT>

这段代码用来加载cab文件,clsid和codebase必须要和你下载的cab中的信息对应,否则组件会加载错误,这两项其实不难找,只要你用winrar打开你下载的cab文件,然后找到扩展名是.inf的文件,然后打开之,就能看到了。

3.调用控件脚本

Print.js文件
Java代码 复制代码

1. function setPrintBase(headerText,footerText,rootUrl) {
2.
3. // -- advanced features ,未曾使用过,有待确认。
4.
5. //factory.printing.SetMarginMeasure(2); // measure margins in inches
6.
7. //factory.SetPageRange(false, 1, 3);// need pages from 1 to 3
8.
9. //factory.printing.printer = "HP DeskJet 870C";
10.
11. //factory.printing.copies = 2;
12.
13. //factory.printing.collate = true;
14.
15. //factory.printing.paperSize = "A4";
16.
17. //factory.printing.paperSource = "Manual feed"
18.
19. var header = (headerText==null||headerText=="")?'默认页眉':headerText;
20.
21. var footer = (footerText==null||footerText=="")?'默认页角':footerText;
22.
23. factory.printing.header = "&b"+header+"&b" ;
24.
25. factory.printing.footer = "&b"+footer;
26.
27. factory.printing.portrait = true;
28.
29. factory.printing.leftMargin =10.00;
30.
31. factory.printing.topMargin =10.00;
32.
33. factory.printing.rightMargin =10.00;
34.
35. factory.printing.bottomMargin =10.00;
36.
37. }

function setPrintBase(headerText,footerText,rootUrl) {

// -- advanced features ,未曾使用过,有待确认。

//factory.printing.SetMarginMeasure(2); // measure margins in inches

//factory.SetPageRange(false, 1, 3);// need pages from 1 to 3

//factory.printing.printer = "HP DeskJet 870C";

//factory.printing.copies = 2;

//factory.printing.collate = true;

//factory.printing.paperSize = "A4";

//factory.printing.paperSource = "Manual feed"

var header = (headerText==null||headerText=="")?'默认页眉':headerText;

var footer = (footerText==null||footerText=="")?'默认页角':footerText;

factory.printing.header = "&b"+header+"&b" ;

factory.printing.footer = "&b"+footer;

factory.printing.portrait = true;

factory.printing.leftMargin =10.00;

factory.printing.topMargin =10.00;

factory.printing.rightMargin =10.00;

factory.printing.bottomMargin =10.00;

}

例子
Java代码 复制代码

1. <%@ page contentType="text/html;charset=GBK"%>
2.
3. <html>
4. <head>
5. <meta http-equiv="imagetoolbar" content="no">
6. <script language="javascript" src="print.js"></script>
7. <style media="print">
8. .Noprint {DISPLAY: none;}
9. </style>
10. <title>打印测试</title>
11. </head>
12. <OBJECT id="factory" style="DISPLAY: none" codeBase="smsx.cab#VVersion=6,3,435,20" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext></OBJECT>
13.
14. <script defer>
15. function window.onload() {
16. setPrintBase('页眉','页脚');
17. }
18. </script>
19. <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
20. <center class="Noprint">
21. <input type=button value="打印" onclick="factory.printing.Print(true)">
22. <input type=button value="页面设置" onclick="factory.printing.PageSetup()">
23. <input type=button value="打印预览" onclick="factory.printing.Preview()">
24. <input type="button" value="关闭" onclick="window.close();">
25. </center>
26. <center>
27. <table width="100%" border="0" cellpadding="0" cellspacing="0">
28. <tr><td align="center"><b>内容</b></td></tr>
29. </table>
30. </center>
31. </body>
32. </html>

<%@ page contentType="text/html;charset=GBK"%>

<html>
<head>
<meta http-equiv="imagetoolbar" content="no">
<script language="javascript" src="print.js"></script>
<style media="print">
.Noprint {DISPLAY: none;}
</style>
<title>打印测试</title>
</head>
<OBJECT id="factory" style="DISPLAY: none" codeBase="smsx.cab#VVersion=6,3,435,20" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext></OBJECT>

<script defer>
function window.onload() {
setPrintBase('页眉','页脚');
}
</script>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
<center class="Noprint">
<input type=button value="打印" onclick="factory.printing.Print(true)">
<input type=button value="页面设置" onclick="factory.printing.PageSetup()">
<input type=button value="打印预览" onclick="factory.printing.Preview()">
<input type="button" value="关闭" onclick="window.close();">
</center>
<center>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td align="center"><b>内容</b></td></tr>
</table>
</center>
</body>
</html>

四.对比

1.Window.print调用方便,但功能简单

2.功能更强大,但使用IEWebBrowser有时会报JS没有权限的错误。

3.ScriptX控件功能也比较强大,目前在使用这种方式。

这里的也不错啊,有打印到 word的和excel

http://hi.baidu.com/afei0211/blog/item/20523955ca8bebc2b745ae98.html

http://hi.baidu.com/hongz1125/blog/item/0152bcfd84ce1e1008244d5c.html

.NET环境下的
http://blog.csdn.net/flygoldfish/archive/2004/08/17/77208.aspx

热心网友 时间:2022-04-22 14:48

<script>
window.onload = function() //这个函数页面加载完的时候会执行
{
window.print(); //打印当前页面
window.location = ".....";//你下一个页面
}
</script>
但是这样有个问题,你必须去点那个打印按钮
另外你把这个页面加到可信页面里的话,可以用fso控制并口,但是有个很大的问题,你用并口只能打字符

要实现你的目的,用js是没办法的,放弃吧
可以用别的办法:

建立一个vb程序,vb程序上加载浏览器控件,然后控制那个浏览器控件打印,打印完控制浏览器控件加载下一页,这样是可行的

热心网友 时间:2022-04-22 16:23

不可能实现的,换思路吧。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
民族扎染工艺简介 最大理:白族扎染 白族扎染技艺主要工艺 高通骁龙s4系列包含哪些不同型号的处理器? 本田CRV机油增多的解决方案是什么 本田CRV机油增多 王者荣耀 王者荣耀马超神威多少钱? 王者荣耀 王者荣耀五虎上将是哪五个皮肤? 王者荣耀神威2022年还会返场吗 什么时候返场 王者荣耀马超神威什么时候返场 具体时间介绍 王者荣耀六周年庆返场几个皮肤 2021分别是哪几款返场 糯米粉的相关问题 糯米粉打粗了能做汤圆吗 梦见去世的父亲挖冬笋回来 烈士陵园纪念设施建设项目可行性研究报告 如何用js实现打印当前页面隐藏的内容?(注:只显示打印按钮,不显示打印内 ... 有点粗的纯糯米粉做什么吃? 干磨糯米粉太粗了怎么办 福特探险者中规版与美版有区别么? js 如何让火狐浏览器打印时不弹出 打印设置页面 直接打印,类似IE的wb... 探险者如何区分美规和中规 糯米粉磨粗了怎么办? php或者js 或者jquery 能不能做自动打印 打开页面就开始自动打印 打印... 福特探险者美规版与中规版有什么区别 怎样用JS 实现直接打印 而不弹出提示对话框?!!急!!! 为什么有好多人去天津去买探险者 有什么区别 还有探险者什么是美规版什么是中规版有什么区别 怎样用JS 实现直接打印 而不弹出提示对话框 有没有哪款适合女孩子的蓝牙耳机?比较接受半入耳式的,入耳式戴着很不舒服 品存头戴式蓝牙耳机那么多型号都怎么选购? 蓝牙耳机买黑色还是白色的好看? 西安亿迈网络系统工程有限公司怎么样? 江米面做出的汤圆没糯米粉好,感觉好粗糙啊!为什么? 福特探险者买中规好还是进口的好哪个配置高 壁挂炉燃烧时嗡嗡声音特别大? js打印问题,急!!! 为什麽在超市买的糯米粉粗只能蒸年糕,但作不了汤圆 福特探险者平行进口车中规有什么区别嘛哪里提车最便宜 js 自动 打印完后自动关闭页面 _百度问一问 如何区分大米粉和糯米粉? 如何利用JS控制打印某页面内某些内容 平行进口福特探险者跟国内卖的探险者有何不同 探险者美规202A相当于中规哪一款 买了一个闪迪16G优盘,为什么实际可用容量不足16G?会不会是假货? js,点a页面的打印按钮,打印的是b页面的全部内容,要求a页面不跳转,请问有方法解决吗? 壁挂炉燃气全开炉内嗡嗡响 壁挂炉关闭以后老是嗡嗡的响有时候还上升9度怎么回事 新买的闪迪16GU盘,放进去大点的文件提示文件过大 进口车和中规车配置有什么区别,进口车是不是二手车,进口车贵吗 闪迪16g内存卡u里面写个1 什么意思 js如何在本页面div中输出内容而不跳转?