js打印问题,急!!!!!

JavaScript08

js打印问题,急!!!!!,第1张

对JS的打印方法总结一下,方便日后查阅。

一.用JS自带函数打印

直接调用

Java代码 复制代码

1. <a href="javascript:window.print()">打印</a>

<a href="javascript:window.print()">打印</a>

二.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/htmlcharset=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/htmlcharset=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

欠你的幸福---陈诗慧<强烈推荐---一首很冷门的歌,却很耐听很伤感哦>

谢谢爱---sister garden <花样少男插曲>

一个人的星光---许静岚 <这首歌似乎苏永康也有唱过,但是这首更好听哦,很伤感>

终点---关心妍 <建议大家听听剧场版,真的很感人>

孤单心事---蓝又时 <蓝又时的声音很耐听,不会那么做作,也是伤感之作哦>

曾经太年轻---蓝又时 <蓝又时又一经典伤感作品,很好听,不用我多介绍>

你的香气---claire <海豚爱上猫的主题曲,节奏轻快又不失忧伤,我很喜欢它的歌词哦>

远行---李慧珍 <这首歌会让人一直静静地听下去,声音很舒服>

我不想忘记你---claire <又一伤感歌曲啊,失恋的人可以听听啊,好听>

说爱我---梁一贞 <战神主题曲,曾经有段时间很迷这首歌,不错>

我们的纪念---李雅薇<放羊的星星主题曲,有一次心情不好听这首歌就哭了>

原谅---张玉华 <一个人静静地听静静地唱,然后静静地流泪>

路人---江美琪 <小美的声音大家都知道,很干净,她的歌我最喜欢这首了>

不哭了---许慧欣 <很轻很静很伤的一首歌>

放不下---龚诗嘉 <节奏相对其他的会较快,但不失特别的伤感味道>

心墙---baefong 〈这首我个人很喜欢〉

洛丽塔---卓亚君 〈友友的推荐,伴奏是献给艾丽丝,很舒服的一首歌〉

你要离开一些时候---阿桑 <龚诗嘉也有唱过,两个人的声音都很有磁性>

远远在一起再一次拥有 - 龚诗嘉 〈她的歌很好听哦〉

流浪地图---萧贺硕 <这首歌好象孙燕姿也有唱,但是还是她唱的好听>

现在才明白---萧贺硕 <喜欢这首歌的歌词,当然旋律也很好听>

雨不停歇---萧贺硕 <真的发现她的歌很好听,强烈推荐啊!>

我爱你---萧贺硕 <不多介绍了,就是好听>

动听---王恩琦 <不是很喜欢她的声音,但是这首歌确实好听>

爱情走过以后---罗美玲 <更喜欢这首歌前面部分,很好听>

一直在找一个人---冯玮君 <就喜欢这样的声音,一听这首歌就很喜欢了>

我可以---蔡旻佑 我想要说---蔡旻佑 城外---蔡旻佑 〈不错的一个新人,好听!〉

迦南美地---刘耕宏 <强烈推荐,很好听!>

用心听 再说 除此之外 piano---范逸臣 〈他的歌都很好听,在这里就推荐几首特别喜欢的〉

我一直都在---林稷安&程于伦 〈不错的歌,听听〉

回旋梯---张简 〈不是伤感的歌,但节奏感很强,很好听〉

紫外线---蔡诗芸 〈一样不伤感,但是很好听〉

有你很快乐---蔡诗芸 〈声音很有磁性,不错的歌〉

想你,零点零一分---张靓颖 〈很有实力的歌手,很有难度的一首歌,好听〉

我们说好的——张靓颖 〈推荐,好听!〉

错过---蔡诗芸 〈听听啊,不错不错〉

交叉口---林凡 〈大家应该听过林凡的一个人生活,这首歌也不错哦〉

陌生人 双栖动物 ture love---蔡健雅 〈实力是很强的,歌很好听〉

你叫什么名字---李慧珍 张靓颖 〈两个高手合唱的,不会让你失望的〉

中间---王蓝茵 陈威全 〈不错的一首情歌对唱,特别是歌词,很多人会喜欢〉

黑白配 没那么爱她 到不了---范玮琪 〈范范的歌很多人都听过,真的值得一听〉

爱一直闪亮---罗美玲 〈挺早的歌,但是很好听啊〉

寻找李慧珍---李慧珍 <很好听啊,虽然歌词不喜欢,不过真的很好听>

涂鸦---纪敏佳 〈没啥人气的超女,这首歌却很棒!〉

施文斌---忘不了 〈特别喜欢副歌啊,很好听,一直很喜欢这首歌〉

爱笑的眼睛---徐若瑄 〈虽然不是很喜欢她,但这首歌确实很好听〉

你的风衣---张语倢 <很特别的声音,好听啊!>

张智成—末日之恋 伤心换日线 爱情树 〈很有才啊他,很喜欢他的歌〉

缺席 缓冲 无缘---周旭风 <挺好听的,不过不是很耐听,也没什么特别的地方>

盒子里的猫---袁耀发 <更喜欢他的”再见萤火虫”和”亲爱的你在哪里”,不过比较老了>

你不懂---路嘉欣 <这首歌挺耐听的,越听越有感觉>

一个人的抒情歌---韩雪 <挺抒情的一首歌,之前挺喜欢的>

靠岸 主题曲---林宇中 <挺有实力的一个歌手啊,歌也很好听啊,有自己的特色!>

我谁也不怪---sweety <她们其他好歌大家可能都有听过,推荐这首,比较冷门点>

微笑眼泪---梁一贞 <声音挺舒服的,很干净,这首歌也挺有味道的>

大声说爱我---amini <她很多歌都不错,只是风格都一样,最喜欢这首!>

静静的---庾澄庆 <这首歌大家应该挺熟悉的,>

说你爱我---SHE <这首歌挺好听的>

何润东--黑色翅膀 <很久没出唱片的他,这首歌没让我们失望>

深呼吸---宇恒 <听这首歌很有感触>

白色羽毛---芮恩 <周杰伦写的歌,再加上她很R&B的声音,不错哦>

夏天的风 离不开他 - 温岚 <前者是R&B风格的,后者伤感哈>

遇到 听见---方雅贤 <还不错还不错,某某电视原声带>

只要你快乐---汪佩蓉 <很有实力的歌手啊>

不说---丁文琪 <我们还要当多久的朋友,你不说我也不能说...>

错了再错---张栋梁 <很普通的旋律,却很伤感>

感情线---tension <很好听的声音,很好听的旋律>

回到慢歌---金莎 <适合静静聆听>

我比想象中爱你---JS

我会好好过---李玖哲 <声音很棒哦.我会好好过,等你再爱我...>

恋之风景---林嘉欣 <一般吧,没啥高潮,不过整体还行>

地狱天使---温岚 <挺伤感的,不过不耐听就是>

幸福---许慧欣 <不错不错,以前听的,再听一样有感觉>

拥抱的问号---袁泉 <反正就是挺好听的>

断了爱情的念头——段千寻

爱忧伤——胡佳琛

拾起的布偶——胡佳琛

两个世界——胡清蓝

ANGELLA——蓝雨

凤与叶子——李维

真实——张惠妹

如果你娶了她——徐子淳

下次下次——薛凯琪

没有童话——叶文辉

一个人的旅行——易欣

请你说爱我——易欣

stand by me-4 the cause

一直在找一个人---冯玮君

李玖哲的失物招领和围墙

张智成 重返寂寞...很想你...不夜城..在KTV过夜

看透——邓丽欣(stephy)

日久生情——邓丽欣(stephy)

不速之约——邓丽欣(stephy)

吴雨霏&小肥——逼得宠物太紧

男人KTV——侧田

伤心情歌——TWINS

难关——侧田

眼泪知道——温岚

雪在飘--安涛

我们之间--满江

我等候你--人间四月天原声音乐

张智成—末日之恋

夏天的风——温岚

我离不开他——温岚

无双谱——方力申

有无——方力申

好心好报——方力申

大细心——方力申

爱十分——方力申

abc君——方力申

如果爱下去——张靓颖

想你,零点零一分---张靓颖

我们说好的——张靓颖

心墙---baefong

洛丽塔---卓亚君

你叫什么名字---李慧珍 张靓颖

很傻——王恩琦

123木头人——黑涩会美眉

遇——AIMINI

PIECES——SUM 41

想着你——邓妙华

DON'T CRY——mini and 顾儿

爱我好吗——平底鞋女生

漂白的心——容祖儿

蔷蔷---ella

疼痛——高耀太

不做你的朋友——高耀太

此时彼刻——金海心

消失——南拳妈妈

破晓——南拳妈妈

袁泉--那件疯狂的小事叫爱情

原来我爱你——sara

哭了——范晓萱

氧气——范晓萱

甜蜜的折磨——徐若瑄

幸福的轮廓——徐若瑄

戒不掉——哈林

活该——苏见信

朋友的朋友——江美琪

我又想起你——江美琪

张震岳的小宇,秋天冬天

不配——萧亚轩

失去你——萧亚轩

1.躺在你的衣柜里这首歌是绮贞的。绮贞对「躺在你的衣柜」的创作概念是希望用意象的画面来呈现爱情,所以歌词里用毛衣代表爱情,用送毛衣代表身体的接触或性。绮贞不想太局限每个人的想象空间,所以很多人听完这首歌有人觉得悲伤,有人觉的有失恋的感觉,有人喜欢歌曲中强烈节奏的部份,任何的感觉都是真实的,因为爱情的狂喜不见得是甜蜜的色彩,也有可能是深沉的、黑暗的,因为爱情是由许多的伤痛组合成的。

2.静静的生活 还是绮贞。旋转以后静静生活,垫起脚尖静静生活。这个就是我现在用的状态了。我们的音乐正被爱情充斥着,谁会真正思考生活呢?静静的生活 仍然是白痴生活,四个字的生活...始终还是要生活的。

3.填字游戏 喜欢郭敬明的孩子们应该都是知道的。这是音乐小说《迷藏》里的一首歌。我们不断的从孤独中走出,投入人群,却无助的发现,寂寞仍在背后,它从未远离 。

4.dying in the sun 来自The Cranberries (小红莓)庸懒而无助,压抑而颓废,似乎在向我们诉说,仿佛在向世界救助,却又是那样的无能为力,那样的绝望,飘渺虚无,犹如来自另一个世界的声音……

5.Zombie 还是The Cranberries (小红莓)的

主唱Dolores O'Riordan那具有力量和忧伤的双重性格的嗓音在之上两首歌里得到了完全的体现。

话外:

说到小红莓,可能有朋友会喜欢never grow old,恩恩,那首歌,个人觉得还是比不上我推荐的这两首的。有一点点欠扁了,那就先说表扁我哈!

6.as i moved on 来自丹麦乐队blue foundation。不一样的trip hop。这是一首充满迷幻色彩的歌曲,缓缓地吟唱引发出一种迷离的氛围,时躁时缓的饶舌,正是乐队的魅力所在。曲调不一定会为大家所喜欢,但是意境却很奇特,极具穿透力。之前一段时间狂喜欢,老哥说的,女主唱的声音和我的声音有得一比,都是有点懒懒地,然后很是任性。恩呢,其实本人唱那个唱得很不错的哦。

7.i cry 来自有理知花,不用解释,一听名字就知道是个日本女人。但是,很难以想象的是,那个日本女人,可以把一首英文歌唱得如此纯粹。

8.天空说到这首歌应该大家都是比较熟悉的了。不管是jolin的版本还是元未觉醒,都是有点伤伤的,恩,这首歌,朋友们都知道,一直是我的k歌的保留曲目的。

9.倒带 说了天空就不得不说说jolin的倒带了。不算特别喜欢,但是绝得值得一提。之前一个朋友和他的女朋友分手之前他的女朋友就说你去听倒带吧,听了就会明白我的意思了。然后,在那之后,我和某人吵架那一段时间,他对我说,你是不是也想叫我去听倒带了?

10.never understand

11.唤醒沉睡的你

以上两首歌都是来自成都地下摇滚乐队——阿修罗的。相信我们川大的孩子们对这个乐队的名字都不会陌生。因为阿修罗么,首任主唱是我们艺术学院一个老师的哦!这两首歌,说实话,算是轻摇滚的了,恩呢,歌词还是蛮有意思的。尤其适合在电子乐器的狂轰下怒吼。