jquery打印html页面自动分页,jQuery打印指定区域Html页面并自动分页
最近项目中需要用到打印HTML页面,需要指定区域打印,使用jquery.PrintArea.js 插件
用法:
$("div#printmain").printArea();
但还是会打印DIV后面的内容,这里可以使用CSS控制打印分页
有时用CSS控制分页了但还是会连续打印页面,这里就可以用上PrintArea 插件中的属性参数。
PrintArea部分源码:
var modes = { iframe : "iframe", popup : "popup" };
var defaults = { mode : modes.iframe,
popHt : 800,
popWd : 800,
popX : 200,
popY : 200,
popTitle : '',
popClose : false ,
twoDiv : '', //自已扩展的属性,为满足变态需求
pageTitle: ''};//自已扩展的属性,为满足变态需求
可以看出插件中定义的属性格式为JSON,下面介绍部分属性
modes定义了两个属性,指定popup时会打开新窗口,可以视为打印预览页面,默认为iframe。
@popClose | [boolean] | (false),true 打印完成后是否开闭预览页面,默认为false(不关闭)。
$("div#printmain").printArea({mode:"popup",popClose:true});
这样就可以指定DIV打印了。
下面说一下我新增两个属性的用途
twoDiv:
需要打印的第二个DIV ,当然会是第二页,这个页面比较长,需要自动分页,并且表格中每行都不一样,有些行跨了多行,这里打印出来,一行可能会打印在两张纸上。
pageTitle:
第二个DIV分成多页里,每一页的表头都需要一样,这个参数就是公用表头。
这两个参数都对应着页面中的DIV,如:
页面定义好后,我们看看插件中是如何处理我们的页面的。
writeDoc.open();
writeDoc.write(html); //打找一个窗口关写窗口中的HTML代码
writeDoc.close();
printWindow.focus();
printWindow.print();
下面是生成html的代码
html+=docType() + "" + getHead() + getBody(thisPage) + "";
插件中都定义了相义的方法,我没有做任何修改,这里我就不粘贴了。
下面是我的思路:
需在将一个DIV中的内容分成多页,且一行不跨多页,我们就得在生成html 代码上下功夫了。
首先找出DIV中的所有行,当公共表头加上这些行后高度达到一页,就需要分页了,这里就有可以一页中最后一行刚好跨了多页,将这一行保存下来,放到下一页。
每一页生成完成后都需要在HTML标签后面加上CSS分页标记,这样就打印机就会乖乖的分页。
说明一下,生成的预览页面一页就是一个HTML页面,它有对应的表头与DTD信息。
有人可能明明预览只有4页,而打印出来总会多一页,这时你需要检验一下你生成的页面中分页标记是不是在HTML标签之前。
分面标记一定要在HTML标签之后,这样可解决打印多打一页问题。
PS:
下面我会传上我修改过后的JS插件,由于我项目周期的原因,代码中很多部分都是写死了,只是为了解决本次打印的问题。所在代码中写得很乱,希望大家将究着看
同事也希望哪位能够再优化一下,使之通用。
jquery打印html页面自动分页,jQuery打印指定区域Html页面并自动分页相关推荐
- html网页打印纵向横向,HTML----打印网页指定区域
开发中遇到了一个需求,需要用网页写一个回执单,然后点击打印打印指定区域内容,最后选择了使用jQuery的print.js 1.下载print.js: jquery_print.js网盘地址: 链接:h ...
- 使用jqprint打印网页指定区域的内容
使用jqprint打印网页指定区域的内容 文章目录 使用jqprint打印网页指定区域的内容 插件 使用 demo 最终效果 根据工厂的需求,要在浏览器上打印执行一系列操作之后,打印出一个标签,贴在包 ...
- jquery 表格自动拆分(方便打印)插件-printTable
/** * jquery 表格打印插件 * * 作者: LiuJunGuang * 日期:2013年6月4日 * 分页样式(需要自定义): * @media print { * .pageBreak ...
- jQuery简单易用的网页内容打印插件
简要教程 jQuery.print是一款简单易容且功能强大的网页内容打印jQuery插件.该网页打印插件可以打印指定区域的网页元素,可以指定跳过不打印某些元素,还可以打印整个页面内容.并且提供了丰富的 ...
- class jqprint 失效_web的各种前端打印方法之jquery打印插件jqprint实现网页打印
web的打印方法具我自己懂得知道的有: 1.jquery插件jqprint实现 2.jqery打印插件printarea实现网页打印 3.css控制网页打印样式 jquery插件jqprint实现: ...
- 在html页面中怎么打印区域,在HTML中指定打印区域进行打印机打印
我们在开发中经常会用到一些指定区域进行打印机打印,但是使用常规方式打印会将全部页面打印,当然相同都为打印,但是打印出来的内容并不是我们需要的东西,进行给大家分享如何设置打印机指定区域进行打印: 该标签 ...
- html表格分页打印样式,vue部分打印(多页自动分页、打印样式自定义、多页打印表格页面顶部带表头)...
写在前面:注意打印表格时,若需要多页打印,则尽量使用原生table元素实现,这样在分页时每页顶部会带有表头,用户体验比较好 一.引用插件(在 main.js 中全局引入!!注意,需要修改源码,所以尽量 ...
- 在html页面中怎么打印区域,javascript打印web页面中指定区域的方法
要实现打印web页面中的指定区域,要做到: 将需要打印的课程表的table放入div标签中,然后指定出需要打印的区域,最后调用window.print打印指定内容. 核心代码: 复制代码 代码示例: ...
- html页面打印+区域,实现web网页指定区域打印的三种方法
通过本教程可以实现,将印web网页指定区域的内容,本教程将提供三种方法实现. 方法一:打印网页指定区域 HTML 在需要打印的内容 // 页面上的内容大小调整可以css调整或容器包容 打印容器内的内容 ...
最新文章
- 关于java输出的一道面试题
- 随机系列生成算法(随机数生成)
- centos mysql 5.5 art_Linux CentOS6.5下编译安装MySQL 5.5.51''''
- 线性规划专题——Lingo的使用
- 四叶草efi_Clover Configurator——四叶草配置引导工具
- 【Python】PDF转WORD
- W3school笔记——HTML
- 3dmax中如何解决镜头穿透模型?
- 22条创业军规(读书)
- nsis升级包_NSIS office补丁
- 小程序开发—第三弹:微信开发工具快捷键
- 5g网络技术目前怎么样?5g网络什么时候出?
- MySQL —— 14、触发器
- Excel每次打开文件都会出现一个空白sheet1文件的一个解决方法
- 什么是连接池,其工作原理是什么?
- 深入理解Java虚拟机(四)Eden、Survivor、老年代、GC日志
- Matlab:创建并计算多项式
- 亲爱的,你是吃屎了么
- python pdfminer读取pdf表格_使用Python中的PDFMiner从PDF文件提取文本?
- Java高级 设计模式