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

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. poj3411

    Paid Roads Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6549   Accepted: 2427 Descri ...

  2. activeMQ安装与测试

    Apache ActiveMQ简介 activeMQ是JMS的一种具体的实现,是最流行的,能力强劲的开源消息总线.activeMQ具有以下优势: 多种语言和协议编写客户端(java.C.C++.AJA ...

  3. JDK源码分析之concurrent包(二) -- 线程池ThreadPoolExecutor

    上一篇我们简单描述了Executor框架的结构,本篇正式开始并发包中部分源码的解读. 我们知道,目前主流的商用虚拟机在线程的实现上可能会有所差别.但不管如何实现,在开启和关闭线程时一定会耗费很多CPU ...

  4. git 添加远程仓库后无法push

    push的时候提示fatal: refusing to merge unrelated histories   假如我们的源是origin,分支是master,那么我们 需要这样写git pull o ...

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

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

  6. 我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题

    1.问题描述 首先,需要解析的Json数据类似于下面的格式,但是包含了Java关键字abstract: { ret: 0, msg: "normal return.", news: ...

  7. spring-知识小结之注解为属性赋值

    <1>.本类中的属性赋值 public class UserServiceImpl implements UserService { //按照类别赋值 // @Autowired //按照 ...

  8. Linux学习笔记(13)linux软件安装rpm与yum--理论篇

    该文章linux知识点如下 1.linux中 软件包介绍 2.linux源码软件安装 3.linux二进制软件安装 4.linux rpm软件包管理 5.linux yum软件包管理 1.linux中 ...

  9. python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/signjing/article/details/36201499 标准库:一些最爱 集合.堆和双端队 ...

  10. JSP使用网站访问人数统计功能,方法与技巧

    实现网站访问人数统计功能的步骤: 创建静态登录页面,并指定表单提交由登录处理页面进行处理. 创建登录处理页面获得登录信息,查询数据库,判断该用户是否注册,如果该用户已注册,把已登录用户的信息保存在一个 ...