zoukankan
html css js c++ java
WEB打印大全(转)
导出excel打印
private
void
ImageButton1_Click(
object
sender, System.Web.UI.ImageClickEventArgs e)
{
Response.Clear();
Response.Buffer
=
true
;
Response.AppendHeader(
"
Content-Disposition
"
,
"
attachment;filename=
Borrow.xls
"
);
Response.ContentEncoding
=
System.Text.Encoding.GetEncoding(
"
gb2312
"
);
Response.ContentType
=
"
application/ms-excel
"
;
this
.EnableViewState
=
false
;
System.Globalization.CultureInfo myCItrad
=
new
System.Globalization.CultureInfo(
"
ZH-CN
"
,
true
);
System.IO.StringWriter oStringWriter
=
new
System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter
=
new
System.Web.UI.HtmlTextWriter(oStringWriter);
Table3.
RenderControl(oHtmlTextWriter);
Response.Charset
=
"
gb2312
"
;
Response.Write(oStringWriter.ToString());
Response.End();
}
红色为导出文件名和要导出页面中的table
首先在网页中添加:
<
OBJECT
id
="WebBrowser"
height
="0"
width
="0"
classid
="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"
VIEWASTEXT
>
</
OBJECT
>
然后就可以依次加入功能按钮了:
<
input
onclick
="document.all.WebBrowser.ExecWB(6,1)"
type
="button"
value
="打印"
>
<
input
onclick
="document.all.WebBrowser.ExecWB(6,6)"
type
="button"
value
="直接打印"
>
<
input
onclick
="document.all.WebBrowser.ExecWB(8,1)"
type
="button"
value
="页面设置"
>
<
input
onclick
="document.all.WebBrowser.ExecWB(7,1)"
type
="button"
value
="打印预览"
>
<
INPUT
type
="button"
value
="关闭窗口"
onclick
="javascript:window.close()"
>
将这两块东西放到
<
center
class
=noprint
></
center
>
就不会打印这些按钮了。当然要定义noprint了:
<
style
media
="print"
>
.Noprint
{
}
{
DISPLAY
:
none
}
</
style
>
只要把不想打印的东西的css设置成noprint就可以了。
现在就实现了基本的web打印,需要注意的情况如下:
必须将ie的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行
设置成提示或者启用,否则会报错,导致不可用。
如果在vs.net编辑环境下编辑该页面,它经常自动的给object添加多余的参数,有了这些东西,打印就会出错,所以要记得最后保存的时候删除它们。
为了简便并且达到最好的效果,我们可以在一个页面实现编辑和打印,这时候会需要很多的textbox,我们把它的css设置成.edittext
{
overflow-y:visible;
100%;
border-top: none;
border-right: none;
border-bottom: none;
border-left: none;
}就可以实现在打印的时候不显示边框和multiline的textbox不显示滚动条了。
还有一些小经验就是在设置标格宽度的时候,对于A4纸张,横打用920,竖打用640,效果最好。
1、控制"纵打"、 横打”和“页面的边距。
(1)
<
script
defer
>
function
SetPrintSettings()
{
//
-- 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
"
//
-- basic features
factory.printing.header
=
"
This is MeadCo
"
factory.printing.footer
=
"
Advanced Printing by scriptX
"
factory.printing.portrait
=
false
factory.printing.leftMargin
=
1.0
factory.printing.topMargin
=
1.0
factory.printing.rightMargin
=
1.0
factory.printing.bottomMargin
=
1.0
}
</
script
>
(2)
<
script
language
="javascript"
>
function
printsetup()
{
//
打印页面设置
wb.execwb(
8
,
1
);
}
function
printpreview()
{
//
打印页面预览
wb.execwb(
7
,
1
);
}
function
printit()
{
if
(confirm(''确定打印吗?''))
{
wb.execwb(
6
,
6
)
}
}
</
script
>
</
head
>
<
body
>
<
OBJECT
classid
="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"
height
=0
id
=wb
name
=wb
width
=0
></
OBJECT
>
<
input
type
=button
name
=button_print
value
="打印"
onclick
="javascript:printit()"
>
<
input
type
=button name=button_setup
value
="打印页面设置"
onclick
="javascript:printsetup();"
>
<
input
type
=button name=button_show
value
="打印预览"
onclick
="javascript:printpreview();"
>
<
input
type
=button
name
=button_fh
value
="关闭"
onclick
="javascript:window.close();"
>
------------------------------------------------
关于这个组件还有其他的用法,列举如下:
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、分页打印
<
HTML
>
<
HEAD
>
<
STYLE
>
P
{
}
{
page-break-after
:
always
}
</
STYLE
>
</
HEAD
>
<
BODY
>
<%
while
not
rs.eof
%>
<
P
>
<%
=
rs(
0
)
%>
</
P
>
<%
rs.movenext
%>
<%
wend
%>
</
BODY
>
</
HTML
>
3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号
(1)ie的文件-〉页面设置-〉讲里面的页眉和页脚里面的东西都去掉,打印就不出来了。
(2)
<
HTML
>
<
HEAD
>
<
TITLE
>
New Document
</
TITLE
>
<
META
NAME
="Generator"
CONTENT
="EditPlus"
>
<
META
NAME
="Author"
CONTENT
="YC"
>
<
script
language
="VBscript"
>
dim
hkey_root,hkey_path,hkey_key
hkey_root
=
"
HKEY_CURRENT_USER
"
hkey_path
=
"
\Software\Microsoft\Internet Explorer\PageSetup
"
'
'//设置网页打印的页眉页脚为空
function
pagesetup_null()
on
error
resume
next
Set
RegWsh
=
CreateObject
(
"
Wscript.Shell
"
)
hkey_key
=
"
\header
"
RegWsh.RegWrite hkey_root
+
hkey_path
+
hkey_key,
""
hkey_key
=
"
\footer
"
RegWsh.RegWrite hkey_root
+
hkey_path
+
hkey_key,
""
end function
'
'//设置网页打印的页眉页脚为默认值
function
pagesetup_default()
on
error
resume
next
Set
RegWsh
=
CreateObject
(
"
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,
"
&u&b&d
"
end function
</
script
>
</
HEAD
>
<
BODY
>
<
br
/>
<
br
/>
<
br
/>
<
br
/>
<
br
/>
<
br
/><
p
align
=center
>
<
input
type
="button"
value
="清空页码"
onclick
=pagesetup_null()
>
<
input
type
="button"
value
="恢复页吗"
onclick
=pagesetup_default()
><
br
/>
</
p
>
</
BODY
>
</
HTML
>
4、浮动帧打印
<
script
LANGUAGE
=javascript
>
function
button1_onclick()
{
var
odoc
=
window.iframe1.document;
var
r
=
odoc.body.createTextRange();
var
stxt
=
r.htmlText;
alert(stxt)
var
pwin
=
window.open(
""
,
"
print
"
);
pwin.document.write(stxt);
pwin.print();
}
</
script
>
4、用FileSystem组件实现WEB应用中的本地特定打印
<
script
Language
=VBscript
>
function
print_onclick
//
打印函数
dim label
label
=
document.printinfo.label.value
//
获得HTML页面的数据
set objfs
=
CreateObject(
"
scripting.FileSystemObject
"
)
//
创建FileSystem组件对象的实例
set objprinter
=
objfs.CreateTextFile (
"
LPT1:
"
,
true
)
//
建立与打印机的连接
objprinter.Writeline(
"
__________________________________
"
)
//
输出打印的内容
objprinter.Writeline(
"
| |
"
)
objprinter.Writeline(
"
| 您打印的数据是:
"
&
label
&
"
|”)
objprinter.Writeline(
"
|
|
"
)
objprinter.Writeline(
"
|
_________________________________
|
"
)
objprinter.close //断开与打印机的连接
set objprinter=nothing
set objfs=nothing // 关闭FileSystem组件对象
end function
</script>
服务器端脚本:
<%………
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页面编码:
<HTML>
………
<FORM ID=printinfo NAME=
"
printinfo
"
>
<INPUT type=
"
button
"
value=
"
打印
>>
"
id=print name=print > //调用打印函数
<INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服务器端传来的数据
………
</HTML>
//打印分页
<
p
style
="page-break-after:always"
>
page1
</
p
>
<
p
style
="page-break-after:always"
>
page2
</
p
>
//设置打印
<
br
/>
<
object
id
="factory"
style
="display:none"
viewastext <br
/>
classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
<
br
/>
codebase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=5,60,0,360"
<
br
/>
>
</
object
>
<
br
/>
<
input
type
=button
value
=页面设置
onclick
="factory.printing.PageSetup()"
>
<
br
/>
<
input
type
=button
value
=打印预览
onclick
="factory.printing.Preview()"
>
<
br
/>
<
br
/>
<
script
language
=javascript
>
<
br
/>
function
window.onload()
<
br
/>
{
<
br
/>
//
-- advanced features <br />
factory.printing.SetMarginMeasure(
2
)
//
measure margins in inches <br />
factory.printing.SetPageRange(
false
,
1
,
3
)
//
need pages from 1 to 3 <br />
factory.printing.printer
=
"
HP DeskJet 870C
"
<
br
/>
factory.printing.copies
=
2
<
br
/>
factory.printing.collate
=
true
<
br
/>
factory.printing.paperSize
=
"
A4
"
<
br
/>
factory.printing.paperSource
=
"
Manual feed
"
<
br
/>
//
-- basic features <br />
factory.printing.header
=
"
居左显示&b居中显示&b居右显示页码,第&p页/共&P页
"
<
br
/>
factory.printing.footer
=
"
(自定义页脚)
"
<
br
/>
factory.printing.portrait
=
false
<
br
/>
factory.printing.leftMargin
=
0.75
<
br
/>
factory.printing.topMargin
=
1.5
<
br
/>
factory.printing.rightMargin
=
0.75
<
br
/>
factory.printing.bottomMargin
=
1.5
<
br
/>
}
<
br
/>
function
Print(frame)
{
<
br
/>
factory.printing.Print(
true
, frame)
//
print with prompt <br />
}
<
br
/>
</
script
>
<
br
/>
<
input
type
=button
value
="打印本页"
onclick
="factory.printing.Print(false)"
>
<
br
/>
<
input
type
=button
value
="页面设置"
onclick
="factory.printing.PageSetup()"
>
<
br
/>
<
input
type
=button
value
="打印预览"
onclick
="factory.printing.Preview()"
><
br
>
<
br
/>
<
a
href
="http://www.meadroid.com/scriptx/docs/printdoc.htm?static"
target
=_blank
>
具体使用手册,更多信息,点这里
</
a
>
<
br
/>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
//自带的打印预览
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) 关闭窗体无提示
<
style
media
=print
>
.Noprint
{
}
{
display
:
none
;
}
<!--用本样式在打印时隐藏非打印项目-->
.PageNext
{
}
{
page-break-after
:
always
;
}
<!--控制分页-->
</
style
>
<
object
id
="WebBrowser"
width
=0
height
=0
classid
="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"
>
</
object
>
<
center
class
="Noprint"
>
<
input
type
=button
value
=打印
onclick
=document.all.WebBrowser.ExecWB(6,1)
>
<
input
type
=button
value
=直接打印
onclick
=document.all.WebBrowser.ExecWB(6,6)
>
<
input
type
=button
value
=页面设置
onclick
=document.all.WebBrowser.ExecWB(8,1)
>
</
p
>
<
p
>
<
input
type
=button
value
=打印预览
onclick
=document.all.WebBrowser.ExecWB(7,1)
>
</
center
>
//去掉打印时的页眉页脚
<
br
/>
<
script
language
="JavaScript"
>
<
br
/>
var
HKEY_Root,HKEY_Path,HKEY_Key;
<
br
/>
HKEY_Root
=
"
HKEY_CURRENT_USER
"
;
<
br
/>
HKEY_Path
=
"
\\Software\\Microsoft\\Internet Explorer\\PageSetup\\
"
;
<
br
/>
//
设置网页打印的页眉页脚为空 <br />
function
PageSetup_Null()
<
br
/>
{
<
br
/>
try
<
br
/>
{
<
br
/>
var
Wsh
=
new
ActiveXObject(
"
WScript.Shell
"
);
<
br
/>
HKEY_Key
=
"
header
"
;
<
br
/>
Wsh.RegWrite(HKEY_Root
+
HKEY_Path
+
HKEY_Key,
""
);
<
br
/>
HKEY_Key
=
"
footer
"
;
<
br
/>
Wsh.RegWrite(HKEY_Root
+
HKEY_Path
+
HKEY_Key,
""
);
<
br
/>
}
<
br
/>
catch
(e)
{}
<
br
/>
}
<
br
/>
//
设置网页打印的页眉页脚为默认值 <br />
function
PageSetup_Default()
<
br
/>
{
<
br
/>
try
<
br
/>
{
<
br
/>
var
Wsh
=
new
ActiveXObject(
"
WScript.Shell
"
);
<
br
/>
HKEY_Key
=
"
header
"
;
<
br
/>
Wsh.RegWrite(HKEY_Root
+
HKEY_Path
+
HKEY_Key,
"
&w&b页码,&p/&P
"
);
<
br
/>
HKEY_Key
=
"
footer
"
;
<
br
/>
Wsh.RegWrite(HKEY_Root
+
HKEY_Path
+
HKEY_Key,
"
&u&b&d
"
);
<
br
/>
}
<
br
/>
catch
(e)
{}
<
br
/>
}
<
br
/>
</
script
>
<
br
/>
<
input
type
="button"
value
="清空页码"
onclick
=PageSetup_Null()
>
<
br
/>
<
input
type
="button"
value
="恢复页码"
onclick
=PageSetup_Default()
>
<
br
/>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
//无模式的提示框
function modelessAlert(Msg)
{
window.showModelessDialog("javascript:alert(\""+escape(Msg)+"\");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;");
}
查看全文
相关阅读:
Uri编码,包括javascript前端与C#服务器端
HttpWebResponse类
HTTP报文
HTTP权威指南阅读记录
XMPP通讯开发-1
开源安卓播放器:Dolphin Player 简单分析
Spring MVC框架
Median of Two Sorted Arrays (找两个序列的中位数,O(log (m+n))限制) 【面试算法leetcode】
C语言指针5分钟教程
2013中国互联网安全大会---关于季昕华老师的分享(不喜请勿入!)
原文地址:https://www.cnblogs.com/OSoft/p/1664244.html
最新文章
WorldWind源码剖析系列:四元数类Quaternion
WorldWind源码剖析系列:视景体类Frustum
WorldWind源码剖析系列:外包围盒类BoundingBox和外包围球类BoundingSphere
WorldWind源码剖析系列:角度类Angle
VUE 计算属性
VUE 指令
VUE 数据绑定
VUE 介绍
ES6 编程风格
ES6 Module
热门文章
ES6 Class
ES6 Iterator
JavaScript 数组去重并统计重复元素出现的次数
ES6 Reflect
缓存概述
ServiceStack.Redis常用操作
ServiceStack.Redis 之 IRedisTypedClient<第四篇>
ServiceStack.Redis之IRedisClient<第三篇>
Redis常用命令速查 <第二篇>
Redis 安装与简单示例 <第一篇>
Copyright © 2011-2022 走看看