JS调用打印机打印Web页面

2024-05-28 06:38:22

第一种方法:指定不打印区域

使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内。

详细如下:

<style media=print type="text/css"> 
.noprint{visibility:hidden} 
</style> 
要打印的内容。哈哈!
<p class="noprint">将不打印的代码放在这里。</p>
<a href="javascrīpt:window.print()" target="_self">打印</a>

第二种方法:指定打印区域

把要打印的内容放入一个 span或div,然后通过一个函数打印。

<span id='div1'>把要打印的内容放这里</span>
<p>所有内容</p>
<div id="div2">div2的内容</div>
<a href="javascrīpt:printme()" target="_self">打印</a>
<scrīpt language="javascrīpt">
function printme()
{
document.body.innerHTML=document.getElementById('div1').innerHTML+'<br/>'+document.getElementById('div2').innerHTML;
window.print();
}
</scrīpt>

如果要打印的只是整个页面中的一小部分,就最好采用第二种方法。

第三种方法:如果要打印的页面排版和原web页面相差很大,采用此种方法。

点打印按钮弹出新窗口,把需要打印的内容显示到新窗口中,在新窗口中调用window.print()方法,然后自动关闭新窗口。

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="打印" οnclick="printit()">
<input type=button name=button_setup value="打印页面设置" οnclick="printsetup();">
<input type=button name=button_show value="打印预览" οnclick="printpreview();">
<input type=button name=button_fh value="关闭" οnclick="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="清空页码" <input type="button" value="恢复页吗"

οnclick=pagesetup_default()><br/>
</p>
</BODY>
</HTML>

4、浮动帧打印

<SCRIPT LANGUAGE=javascript>
function button1_ {
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>

5、用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>

第四种方法:去除页眉页脚

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>PcyearSeo</title>
<head>
<!--关键代码部分-->
<script language="javascript" type="text/javascript"> 
function doPrint() { 
bdhtml=window.document.body.innerHTML; 
sprnstr="<!--startprint-->"; 
eprnstr="<!--endprint-->"; 
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); 
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr)); 
window.document.body.innerHTML=prnhtml; 
window.print(); 

var hkey_root,hkey_path,hkey_key 
hkey_root="HKEY_CURRENT_USER" 
hkey_path="\Software\Microsoft\Internet Explorer\PageSetup\ " 
function pagesetup_null(){ 
try{ 
var RegWsh=new ActiveXObject("WScript.Shell") 
hkey_key="header" 
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"") 
hkey_key="footer" 
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"") 
}catch(e){} 

</script> 
<!--关键代码部分-->
</HEAD> 
<BODY> 
<DIV align=center> 
<p>
<!--关键代码部分-->
<OBJECT id="WebBrowser" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" width="0" VIEWASTEXT></OBJECT>
<!--关键代码部分-->
您打印内容开始:
</p>
<p> 
<!--startprint-->
<div style="border:1px solid #999999; width:auto;"><img src="2010723115926746.jpg"/></div>
<!--endprint-->
</p>
<p>打印的内容结束</p>
<p class="noprint">
<!--class="noprint"的作用是标示不需要打印的地方,任何一个标签的class属性都可以设置,用于去除不需要打印的地方-->
<INPUT type=button value=打印 name=button_print /> 
</p>
</DIV>
</body>
</html>

转载于:https://blog.51cto.com/lya041/1183831

JS调用打印机打印Web页面相关推荐

  1. JS 调用打印机打印网页文档

    引用自:灯火阑珊hy js调用打印机 打印整体或部分 有时前端的项目中需要添加打印的功能,首先要知道打印分为整体打印和局部打印两种,而局部打印又可细分为局部打印指定的部分,和局部打印指定部分之外的部分 ...

  2. JS调用打印机打印页面指定元素

    function doPrint(){var head_str = "<html><head><title></title></head ...

  3. js调用打印机打印网页字体总是缩小一号的解决方法

    直接调用window.print(),但是打印出来后,字体总是缩小一号,后来直接target="_blank",就可以正常打印了,下面是实现代码 今天要做一个打印网页的小功能,直接 ...

  4. JS 调用打印机,打印HTML中的部分内容

    如何在页面上调用打印机!!! 要打印的内容:JSP上的一个<DIV></DIV>, 打印按钮: 打印按钮的方法: $(function(){   $('#checkin_div ...

  5. 在html页面中怎么打印区域,javascript打印web页面中指定区域的方法

    要实现打印web页面中的指定区域,要做到: 将需要打印的课程表的table放入div标签中,然后指定出需要打印的区域,最后调用window.print打印指定内容. 核心代码: 复制代码 代码示例: ...

  6. android 打印机打印html,Android下通过wifi调用打印机打印

    Android下通过wifi调用打印机打印 // Code in Activity try { Socket sock = new Socket("192.168.199.245" ...

  7. java打印word_Java jacob调用打印机打印word文档

    前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档. 起初用的是自带的PrintJob,但是系统提供的打印机制并不成熟完整.网上的代码也是千篇一律,在我的打印 ...

  8. C++ 调用打印机 打印一段文字

    系统:win7 环境:VS2010 语言:c++ 函数:调用打印机打印一段文字. void CpainttestDlg::OnClickedButton1() {// TODO: 在此添加控件通知处理 ...

  9. 解决在Chrome浏览器上打印Web页面时无法选择布局(横向,纵向)

    问题描述: 在Chrome浏览器上打印Web页面时无法选择布局(横向,纵向) 解决方案: 在style文件中加入@page的size设置 @page {size: auto;//打印可以选择布局:横向 ...

最新文章

  1. Linux 的无障碍设置如何操作?
  2. xshell快速发送命令操作多台linux
  3. laravel框架图片上传
  4. ICLR 2022 | Transformer不比CNN强!Local Attention和动态Depth-wise卷积
  5. 大剑无锋之JVM 堆内存溢出后,其他线程是否可继续工作?
  6. mysql基础表和修理表_MySQL基础知识——创建数据库和表
  7. [react] createElement与cloneElement两者有什么区别?
  8. 主数据处理链碰到空数据节点不在继续执行的问题解决方案
  9. 专技继续教育-使用tampermonkey刷课时(可自动跳转下一节)
  10. 集店管家(App名称)技术服务支持
  11. 【leetcode】995. Minimum Number of K Consecutive Bit Flips
  12. xp系统如何更改计算机用户名,xp用administrator_XP系统修改administrator的用户名_xpadministrator...
  13. matlab 矩阵位移法编程 结构力学,matlab-矩阵位移法编程-结构力学.doc
  14. MTTR、MTBF、MTTF、可用性、可靠性傻傻分不清楚?
  15. 为什么你应该(从现在开始就)写博客尤其是IT行业(转)
  16. java获取上周一_java 如何获取 上周一日期,上周末日期,本周一日期。
  17. 10个自动化测试框架,测试工程师用起来
  18. ps景观平面图转鸟瞰图_ps如何制作鸟瞰图 ps制作鸟瞰图教程
  19. go开发环境搭建以及运行一个完整的beego网站项目
  20. 图像处理职位面试题汇总(2)

热门文章

  1. mysql 命令手册_MySQL 常用命令手册
  2. 一起学React--组件定义和组件通讯
  3. 创业活动平台,2019路演活动报名网站
  4. Flexbox 布局 – 表单
  5. Redis-3.2主从复制与集群搭建
  6. iOS沙盒路径的查看和使用
  7. 传值调用 与传地址调用(传引用)
  8. mysql 语句 函数分析
  9. 复杂XML的解析及组装
  10. VB.NET 开发ColorPicker例子