打印本身比较简单,但要考虑到具体的需求。比如

1. 多浏览器:

if (isIE()) {
//打印预览
WebBrowser1.execWB(7, 1);
}
else {
window.print();
}

如代码所示, IE浏览器与其他浏览器的使用的方式是不一样的,如在chrome浏览器中使用window.print显示的是打印预览,而在IE中显示的是打印界面(选择打印机),如果想在IE中显示打印预览,则需要在代码中增加如下的标签,在使用如上的WebBrowser1.

<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>

2. 局部打印。

一般js打印功能其实就是调用的页面的打印功能, 所以默认是打印整个页面,也就是document.body。如果要打印部分页面的话,可以有三种方案:

一是把要打印的DIV区域赋值给document.body, 待打印完成后,再还原。代码如下:

 var bodyHtml = document.body.innerHTML;//获取当前页的html代码
var divPrint = document.getElementById('divprint'); if (divPrint) {
document.body.innerHTML = divPrint.innerHTML;
if (isIE()) {
if (WebBrowser1) {
//打印预览
WebBrowser1.execWB(7, 1);
}
window.close();
}
else {
window.print();
}
}
document.body.innerHTML = bodyHtml;

二是把要打印的区域在新的页面中打开,再执行打印。

这里有个小提示,在新的页面中打开,我的处理方法是打开新页面时,隐藏要打印的页面,直接弹出打印预览,打印完成后直接关闭窗口,这样体验会好些。

三是使用CSS样式,这样就不打印指定样式的DIV,如下代码

    <style type="text/css" media="print">
.noprint {
display: none;
}
</style>

3. 取消页眉页角

打印预览时我们会发现,页眉页角的东西不是我们想要的,如果想要去掉的,最好的方式还是通过页面设置

如果是IE浏览器的话,可以通过代码来设置,但是需要对浏览器进行设置。

代码如下:

这段代码是从网上找地,特此说明!!!

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) {
console.dir(e);
}
}
function pagesetup_default() {
try {
var RegWsh = new ActiveXObject("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")
} catch (e) {
console.dir(e);
}
}

javascript页面打印的更多相关文章

  1. 开源的javascript实现页面打印功能,兼容所有的浏览器(情况属实)

    这篇文章完全是属于技术文章,也是记录一下自己在项目当中遇到的坑爹问题啊,因为是B/S的程序,所以打印功能还是必须要有的,对于打印我选择了一个js插件,发现非常的简单和方便,所以这里拿出来和大家分享一下 ...

  2. Jqprint实现页面打印

    好些项目需要实现页面打印,特别是一些后台管理类系统,下面介绍一款轻量级的打印插件: 1.实现页面打印要引入jQuery和Jqprint.点击下载Jqprint插件 <script languag ...

  3. js调用页面打印

    ----------------------调用页面打印-------------------------------- <body> <div id="divPrint& ...

  4. JSP 页面打印

    <HTML><HEAD><TITLE>javascript打印-打印页面设置-打印预览代码</TITLE> <META http-equiv=Co ...

  5. asp.net调用Lodop实现页面打印或局部打印,可进行打印设置或预览

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebPrint.aspx.cs ...

  6. android网页打印,安卓网页打印,h5页面打印,浏览器打印,js打印工具

    Android设备打印比较麻烦,一般设备厂商都提供原生app开发的SDK,我们web开发者为难了,不会原生开发啊 给大家提供一个思路,实现web加壳,利用打印浏览器实现 简单来说就是把我们的web页面 ...

  7. Web系统页面打印技术实现与分析

    1 Web页面打印概述应用WEB化,不论对开发商,还是对用户来说,实在是一种很经济的选择,因为基于WEB的应用,客户端的规则很简单,容易学习,容易维护,容易发布.在WEB系统中,打印的确是个烦人的问题 ...

  8. 使用jqprint插件完成页面打印

    使用jqprint插件完成页面打印 jqprint是一个基于jQuery编写的页面打印的一个小插件,但是不得不承认这个插件确实很厉害,最近的项目中帮了我的大忙,在Web打印的方面,前端的打印基本是靠w ...

  9. Jquery 页面打印

    <script src="~/Scripts/js/dist/jquery.jqprint-0.3.js"></script> <script typ ...

随机推荐

  1. pip安装Scrapy框架报错

    安装: pip3 install scrapy==1.1.0rc3 一..解决scrapy安装错误: 二.具体操作: 1.在http://landinghub.visualstudio.com/vis ...

  2. delphi -----(去掉窗口最大化,最小化、关闭),主窗口,和子窗口之间的设置

    一.去掉窗口最大化,最小化.关闭 borderIcons:biSystemMenu:false borderStyle:bsSizeable 二.主子窗口 主main: //调用子窗体procedur ...

  3. delphi中 ExecSQL 与 open

    对于不用返回结果集的要用execsql反之则用open;insert ,update,delete就要用到execsql;select就要用open 说得对,例子:with query1 do clo ...

  4. Button 自动换行

    UIView *view=[[UIView alloc]initWithFrame:CGRectMake(0, 200, self.view.frame.size.width, 300)]; view ...

  5. 如何理解Nginx, WSGI, Flask之间的关系

    概览 之前对 Nginx,WSGI(或者 uWSGI,uwsgi),Flask(或者 Django),这几者的关系一存存在疑惑.通过查阅了些资料,总算把它们的关系理清了. 总括来说,客户端从发送一个 ...

  6. SQL Server 2005 临时表

    with t as ( select * from t_pub_param ) select * from t SQL Server 2005 之后才可以使用,查询后临时表t会自动删除.

  7. Docker Libnetwork Bridge插件实现代码分析----创建网络部分

    // drivers/bridge/bridge.go // Create a new network using bridge plugin 1.func (d *driver) CreateNet ...

  8. Django框架错误处理

    错误处理 在一些网站开发中.经常会需要捕获一些错误,然后将这些错误返回比较优美的界面,或者是将这个错误的请求做一些日志保存.那么我们本节就来讲讲如何实现. 常用的错误码: 404:服务器没有指定的ur ...

  9. 002-主流区块链技术特点及Hyperledger Fabric V0.6版本特点

    一.主流区块链技术特点 二.HyperLedger子项目 三.Hyperledger fabric架构 V0.6逻辑架构: V0.6区块链网络 对应的0.6版本的运行时架构: 0.6版本的架构特点是: ...

  10. openPOWERLINK代码在vs2008下编译

    以openPOWERLINK_V1.08为例: 1.在主目录下新建Build目录 2.使用cmake-gui对代码进行配置 3.配置完成后生成工程文件xxx.sln 4.使用vs2008打开上述文件, ...