在工作中出现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打印实现几种方法相关推荐

  1. web打印的几种方法(2023)

    在工作中出现web打印的情况是非常多的,其实这也是一个比较烦人的问题,这篇博客整理一下关于Web打印的一些方法或者方式. 1. window.print() 这个方法是用来打印网页的,页面上的其他的元 ...

  2. tomcat部署web应用的4种方法

    Tomcat发布项目的方式大致有三种,但小菜认为通过在tomcat的conf/Catalina/localhost目录下添加配置文件,来发布项目,是最佳选择. 因为这样对tomcat的入侵性最小,只需 ...

  3. html页面打印+区域,实现web网页指定区域打印的三种方法

    通过本教程可以实现,将印web网页指定区域的内容,本教程将提供三种方法实现. 方法一:打印网页指定区域 HTML 在需要打印的内容 // 页面上的内容大小调整可以css调整或容器包容 打印容器内的内容 ...

  4. .NET应用程序中异步调用Web Service的几种方法 come from: veryhappy(wx.net)

    测试程序界面 图一,调用前界面 图二,调用后界面 详细代码实现 闲言少叙,直接进入主题吧.首先一个声明一个类(将来在客户端与服务器间传递): public class Class1     {     ...

  5. 前台页面通过ajax环境和js调用web service的几种方法

    目录: 1.配置ajax环境 2.js中调用web service (ajax环境) 方法一 3.方法二 4.方法三 5.ajax中的错误处理 //6.写的比较快 如果有疏忽之处  如能指出感激不尽. ...

  6. python打印菱形三种方法_用python打印菱形的实操方法和代码

    python怎么打印菱形?下面给大家带来三种方法: 第一种 rows = int(input('请输入菱形边长:\n')) row = 1 while row <= rows: col = 1 ...

  7. django实现web分页的三种方法

    先看一下这三种方法的效果图 方案一,可以简单的完成上下页,当前页的显示 <div class="pagination"> <span class="st ...

  8. 用计算机无法解决打印所有,解决打印机无法打印的10种方法

    在使用Windows程序向本地打印机发出打印文档的命令后,如果文档根本无法打印该怎么办呢?下面笔者以Epson LQ-1600K(爱普生针式打印机)为例教你几招,希望能解你燃眉之急. 一.使打印机处于 ...

  9. web上传图片的几种方法!

    1.表单上传 最传统的图片上传方式是form表单上传,使用form表单的input[type="file"]控件,打开系统的文件选择对话框,从而达到选择文件并上传的目的. 表单上传 ...

  10. 设计/前端 关于AE动画/特效web实现的四种方法

    1.通过动图/视频来实现 如果你是设计师,并且熟练的运用Photoshop,那你一定对混合图层非常熟悉,他是实现两种图层消除颜色差值的一种快速实现方法,当然在web网页上也存在像Photoshop中的 ...

最新文章

  1. x86_64 ubuntu18.04.4 python3.6.9 安装 cuda8.0 和 cudnn5.1
  2. 基于Docker + Consul + Nginx + Consul-template的服务负载均衡实现
  3. 如何使用字节序列化双精度数组(二进制增量编码,用于低差单调浮点数据集)...
  4. jsp mysql servlet_JSP+Servlet+JDBC+mysql实现的学生成绩管理系统
  5. linux cpp标准库,标准库以及标准头文件
  6. Ubuntu 安装 Cassandra 数据库
  7. 【暴力枚举】LeetCode 90. Subsets II
  8. MySQL Left Join,Right Join
  9. 1.ZooKeeper Java客户端的基本使用「第三章 ZooKeeper Java客户端」「架构之路ZooKeeper理论和实战」
  10. 摄像机没有连接到计算机代码45,摄像头错误代码的解决办法
  11. Minecraft在安卓手机上搭建java服务器
  12. 跟着陶哲轩学数学 目录
  13. import image的坑
  14. SSTI 模板注入url_for和get_flashed_messages之[WesternCTF2018]shrine
  15. Photoshop Resource(PS网站资源)
  16. 二叉树的中序遍历 [递归 迭代]
  17. Windows平台在线安装Qt 6.0.0图文教程
  18. 大工18秋计算机1答案,大工18秋《专业英语(计算机英语)》在线作业1.docx
  19. 那些曾虐我千百遍的计算机组成原理
  20. esp32和MPU6500 I2C通信

热门文章

  1. Linux开发(驱动应用)学习路线规划
  2. stm32f072--定时器17使用CH1N通道输出pwm时没有波形的原因
  3. 如何规范化数据库模型设计
  4. Python编程实现点到直线距离计算
  5. iOS遇到问题小总结
  6. 中国单箱梁体最宽矮塔斜拉桥合龙
  7. 社科研究方法汇总(含SPSS教程、Maxdea、实验法、社会网络分析法、统计调查法、访谈法)
  8. 【Ubuntu破解UltraEdit】破解UltraEdit
  9. 基于matlab的彩色图像分割,基于Matlab的彩色图像分割
  10. vscode快速格式化代码