[求助]有关页面数据打印问题,高手请进!

shuichong 2003-05-29 10:07:35
页面上的数据是一张(如凭证)的缩小,现在想放一个打印按钮,点击使表单中的数据打印在凭证中需要填数据的地方,也就是实现套打功能,请各位高手赐教!!!
...全文
77 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tigerwen01 2003-05-30
  • 打赏
  • 举报
回复
利用FileSystem组件:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>打印表单数据</title>

</head>

<body>
<%
'''''''''''''''''''''''''''''''''''''''
if request.form("print")="打印" then
dim label
label=Request.Form("label")
response.write label
set objfs=CreateObject("Scripting.FileSystemObject")
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
end if
'''''''''''''''''''''''''''''''''''''''
%>
<FORM ID=printinfo NAME="printinfo" action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
<textarea name="label" cols="40" rows="5"></textarea>
<INPUT type="submit" name="print" value="打印">
</FORM>
</body>

</html>
kyc 2003-05-29
  • 打赏
  • 举报
回复
这样很难控制的,你去找一个数据控件吧.

把控件存放控件里面,然后在打印.

如华表.还有一个叫什么的.你搜索一下帖子,

还有你把生成的数据存到excel,或word中,然后在打印.

这样就比较完美了呀.
cpio 2003-05-29
  • 打赏
  • 举报
回复
把凭证图片作为背景

再用表格控制数据的位置,使得在相应地方,再打印就可以了
shuichong 2003-05-29
  • 打赏
  • 举报
回复
我需要打印的具体页面如下:
http://www.9846.net/print.htm
右边的数据是一张申请书数据,现在就需要把这些数据打印到真正的申请书中!
申请书格式已固定。
我也觉得是先应该把数据发送到excel或word中,再调用这个文件打印,具体的还需要大家指点指点,上面的二位发的代码正在研究之中......
luckapple 2003-05-29
  • 打赏
  • 举报
回复
你的模板可以作成txt/excel/word,等等,我建议是excel,然后存放在你的web目录里,具体:
set objApp = CreateObject("Excel.Application")
set objApp1 = CreateObject("Excel.Application")
set objBook1 = objApp1.Workbooks.Add()
strPath="c:/webroot/doc/templete.xls" '模板路径
set objBook = objApp.Workbooks.Open(strPath)

set objSheet = objBook.Worksheets(1)
if iSheetCounts > 3 then 'Excel中1个Workbook默认有三个工作表
set objSheet1 = objBook1.Worksheets.Add()
else
set objSheet1 = objBook1.Worksheets(iSheetCounts)
iSheetCounts = iSheetCounts+1
end if
for x = 1 to 45
for y = 1 to 15
if trim(objSheet.Cells(x,y)) <> "" then
strText = objSheet.Cells(x,y)
if instr(1,strText,"<Date>") > 0 then
strText = replace(strText,"<Date>",arr(13)) 'Date())
end if
end if
objSheet1.Cells(x,y) = strText
next
next
set objApp =nothing
set objApp1 =nothing
set objBook1 =nothing
set objSheet = nothing
set objSheet1 = nothing
jcjks杨 2003-05-29
  • 打赏
  • 举报
回复
这些可能对你有用:

web打印的大全:

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>
shuichong 2003-05-29
  • 打赏
  • 举报
回复
分我一定会给的,如果不够,可以再加,只要能解决问题!

上面这个能实现票据这样固定格式的打印吗?
andy2001p 2003-05-29
  • 打赏
  • 举报
回复
上面说了,给点分吧!
gq 2003-05-29
  • 打赏
  • 举报
回复
<head>
<title>打印确认</title>
<style media="print">
.noprint { display: none }
</style>
</head>
<body>
<object id="factory" style="display:none" viewastext classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=5,60,0,360"></object>
<script defer>
function window.onload() {
//factory.printing.paperSize = "A3"
factory.printing.header = ""
factory.printing.footer = ""
factory.printing.portrait = false
idPrint1.disabled = false; // enable UI button
idPrint2.disabled = false;
idPrint3.disabled = false;
idPrint4.disabled = false;
factory.printing.leftMargin = 0.75
factory.printing.topMargin = 1.5
factory.printing.rightMargin = 0.75
factory.printing.bottomMargin = 1.5
}
</script>
<div class=noprint>
<input id="idPrint1" type="button" value="打印本页"
onclick="factory.printing.Print(false)">
<input id="idPrint2" type="button" value="页面设置"
onclick="factory.printing.PageSetup()">
<input id="idPrint3" type="button" value="打印预览"
onclick="factory.printing.Preview()">
<input id="idPrint4" type="button"
onclick="window.close()" value="关闭窗口">
</div>
<br/>
<table width="720" border="0" cellspacing="0" cellpadding="0" align="center" >
<tr>
<td bgcolor="#0099ff">
这里是你要打印的内容,上面的按钮不会被打印出来<br/>
factory.printing.paperSize = "A3"
</td>
</tr></table></body>
shuichong 2003-05-29
  • 打赏
  • 举报
回复
TO:cpio(chen)
这种方法不可取。
TO:kyc(风往天吹)
能否写出些代码,我从来没有用过在ASP里写打印的代码。
To: tracy_qd()
VB里我也试过,是啊,如果版本变了,程序也得改变,不过这个不在考虑之中。
To:luckapple()
具体怎么实现?
luckapple 2003-05-29
  • 打赏
  • 举报
回复
可以把凭证做成模板,把要填写数据的地方用替换符标识,然后在在程序中把替换符给替换成数据不就行了
tracy_qd 2003-05-29
  • 打赏
  • 举报
回复
这种打印也不是很难,就是一个定点的问题(VB里实现过)
有个缺陷,当你的凭证版本变了,它就得再改设置
我这里只有VB的

28,402

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧