web打印实现几种方法
在工作中出现web打印的情况是非常多的,其实这也是一个比较烦人的问题,这篇博客整理一下关于Web打印的一些方法或者方式。
1. window.print()
这个方法是用来打印网页的,页面上的其他的元素也会被打印处理,在打印的时候页眉页脚是不太好控制的。
所以如果使用这种方法的话最好将结果放到两个注释中间,之后通过JS来实现打印区域的功能。
具体做法:
<!--startprint--><div align="center"><!--省略部分代码--></div><!--endprint-->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();
特别注意:使用window.print方法是不能够打印IE浏览器中的移动或者旋转的动画的,但是在非IE浏览器中是可以支持的。
2. DLPrinter控件
DLPrinter打印控件完全免费,界面大方、使用简单、但无签名,支持打印预览、直接打印,可设置页眉、页脚、页边距、打印份数、纸张大小等信息。
这个控件的下载地址为:http://files.cnblogs.com/panshenglu/DLPrinter.rar
调用方法:
<OBJECT ID="DLPrinter" CLASSID="CLSID:5C230622-45E5-4e3c-893C-3BFDDC4DB5E4" codebase="DLPrinter.cab" height="0" width="0" ></OBJECT>
<script>DLPrinter.MarginLeft=20;DLPrinter.MarginRight=20;DLPrinter.MarginTop=20;DLPrinter.MarginBottom=20;DLPrinter.CopyCount=2;DLPrinter.PageHeader="这是测试的页眉";DLPrinter.PageFooter="这是测试的页脚";DLPrinter.IsLandScape=1;DLPrinter.ContentURL="www.baidu.com";
</script><input type="button" id="btnPrint" value="Print Preview" οnclick="DLPrinter.PrintPreview()" />
<input type="button" id="btnPrint" value="Print with prompt" οnclick="DLPrinter.Print()" />
<input type="button" id="btnPrint" value="Print without prompt" οnclick="DLPrinter.PrintDirect()" />
3. Lodop
对于这个打印控件,用一个词来形容:强大!不仅调用方便,而且功能比你想像中要强大得多。强烈推荐使用。
下载地址:http://www.lodop.net/
推荐去官网中的功能演示来学习一下这个打印空间。
4. Jquery打印
下面一个是用Jquery框架写的一个web打印控件的功能。
代码如下:
(function ($) {var printAreaCount = 0;$.fn.printArea = function () {var ele = $(this);var idPrefix = "printArea_";removePrintArea(idPrefix + printAreaCount);printAreaCount++;var iframeId = idPrefix + printAreaCount;var iframeStyle = 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;';iframe = document.createElement('IFRAME');$(iframe).attr({style: iframeStyle,id: iframeId});document.body.appendChild(iframe);var doc = iframe.contentWindow.document;$(document).find("link").filter(function () {return $(this).attr("rel").toLowerCase() == "stylesheet";}).each(function () {doc.write('<link type="text/css" rel="stylesheet" href="'+ $(this).attr("href") + '" >');});doc.write('<div class="' + $(ele).attr("class") + '">' + $(ele).html()+ '</div>');doc.close();var frameWindow = iframe.contentWindow;frameWindow.close();frameWindow.focus();frameWindow.print();}var removePrintArea = function (id) {$("iframe#" + id).remove();};
})(jQuery);<input type="button" id="btnPrint" value="打印"/>
<div id="printContent">要打印的内容区域<div><script type="text/javascript">
$(function(){$("#btnPrint").click(function(){ $("#printContent").printArea(); });
});
</script>
其实关于打印控件还有很多,找到自己最合适的才是硬道理,如果还有更多的web打印实现方法,可以给我留言。
web打印实现几种方法相关推荐
- web打印的几种方法(2023)
在工作中出现web打印的情况是非常多的,其实这也是一个比较烦人的问题,这篇博客整理一下关于Web打印的一些方法或者方式. 1. window.print() 这个方法是用来打印网页的,页面上的其他的元 ...
- tomcat部署web应用的4种方法
Tomcat发布项目的方式大致有三种,但小菜认为通过在tomcat的conf/Catalina/localhost目录下添加配置文件,来发布项目,是最佳选择. 因为这样对tomcat的入侵性最小,只需 ...
- html页面打印+区域,实现web网页指定区域打印的三种方法
通过本教程可以实现,将印web网页指定区域的内容,本教程将提供三种方法实现. 方法一:打印网页指定区域 HTML 在需要打印的内容 // 页面上的内容大小调整可以css调整或容器包容 打印容器内的内容 ...
- .NET应用程序中异步调用Web Service的几种方法 come from: veryhappy(wx.net)
测试程序界面 图一,调用前界面 图二,调用后界面 详细代码实现 闲言少叙,直接进入主题吧.首先一个声明一个类(将来在客户端与服务器间传递): public class Class1 { ...
- 前台页面通过ajax环境和js调用web service的几种方法
目录: 1.配置ajax环境 2.js中调用web service (ajax环境) 方法一 3.方法二 4.方法三 5.ajax中的错误处理 //6.写的比较快 如果有疏忽之处 如能指出感激不尽. ...
- python打印菱形三种方法_用python打印菱形的实操方法和代码
python怎么打印菱形?下面给大家带来三种方法: 第一种 rows = int(input('请输入菱形边长:\n')) row = 1 while row <= rows: col = 1 ...
- django实现web分页的三种方法
先看一下这三种方法的效果图 方案一,可以简单的完成上下页,当前页的显示 <div class="pagination"> <span class="st ...
- 用计算机无法解决打印所有,解决打印机无法打印的10种方法
在使用Windows程序向本地打印机发出打印文档的命令后,如果文档根本无法打印该怎么办呢?下面笔者以Epson LQ-1600K(爱普生针式打印机)为例教你几招,希望能解你燃眉之急. 一.使打印机处于 ...
- web上传图片的几种方法!
1.表单上传 最传统的图片上传方式是form表单上传,使用form表单的input[type="file"]控件,打开系统的文件选择对话框,从而达到选择文件并上传的目的. 表单上传 ...
- 设计/前端 关于AE动画/特效web实现的四种方法
1.通过动图/视频来实现 如果你是设计师,并且熟练的运用Photoshop,那你一定对混合图层非常熟悉,他是实现两种图层消除颜色差值的一种快速实现方法,当然在web网页上也存在像Photoshop中的 ...
最新文章
- x86_64 ubuntu18.04.4 python3.6.9 安装 cuda8.0 和 cudnn5.1
- 基于Docker + Consul + Nginx + Consul-template的服务负载均衡实现
- 如何使用字节序列化双精度数组(二进制增量编码,用于低差单调浮点数据集)...
- jsp mysql servlet_JSP+Servlet+JDBC+mysql实现的学生成绩管理系统
- linux cpp标准库,标准库以及标准头文件
- Ubuntu 安装 Cassandra 数据库
- 【暴力枚举】LeetCode 90. Subsets II
- MySQL Left Join,Right Join
- 1.ZooKeeper Java客户端的基本使用「第三章 ZooKeeper Java客户端」「架构之路ZooKeeper理论和实战」
- 摄像机没有连接到计算机代码45,摄像头错误代码的解决办法
- Minecraft在安卓手机上搭建java服务器
- 跟着陶哲轩学数学 目录
- import image的坑
- SSTI 模板注入url_for和get_flashed_messages之[WesternCTF2018]shrine
- Photoshop Resource(PS网站资源)
- 二叉树的中序遍历 [递归 迭代]
- Windows平台在线安装Qt 6.0.0图文教程
- 大工18秋计算机1答案,大工18秋《专业英语(计算机英语)》在线作业1.docx
- 那些曾虐我千百遍的计算机组成原理
- esp32和MPU6500 I2C通信