最近项目中需要用到打印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页面并自动分页相关推荐

  1. html网页打印纵向横向,HTML----打印网页指定区域

    开发中遇到了一个需求,需要用网页写一个回执单,然后点击打印打印指定区域内容,最后选择了使用jQuery的print.js 1.下载print.js: jquery_print.js网盘地址: 链接:h ...

  2. 使用jqprint打印网页指定区域的内容

    使用jqprint打印网页指定区域的内容 文章目录 使用jqprint打印网页指定区域的内容 插件 使用 demo 最终效果 根据工厂的需求,要在浏览器上打印执行一系列操作之后,打印出一个标签,贴在包 ...

  3. jquery 表格自动拆分(方便打印)插件-printTable

    /** * jquery 表格打印插件 * * 作者: LiuJunGuang * 日期:2013年6月4日 * 分页样式(需要自定义): * @media print { * .pageBreak ...

  4. jQuery简单易用的网页内容打印插件

    简要教程 jQuery.print是一款简单易容且功能强大的网页内容打印jQuery插件.该网页打印插件可以打印指定区域的网页元素,可以指定跳过不打印某些元素,还可以打印整个页面内容.并且提供了丰富的 ...

  5. class jqprint 失效_web的各种前端打印方法之jquery打印插件jqprint实现网页打印

    web的打印方法具我自己懂得知道的有: 1.jquery插件jqprint实现 2.jqery打印插件printarea实现网页打印 3.css控制网页打印样式 jquery插件jqprint实现: ...

  6. 在html页面中怎么打印区域,在HTML中指定打印区域进行打印机打印

    我们在开发中经常会用到一些指定区域进行打印机打印,但是使用常规方式打印会将全部页面打印,当然相同都为打印,但是打印出来的内容并不是我们需要的东西,进行给大家分享如何设置打印机指定区域进行打印: 该标签 ...

  7. html表格分页打印样式,vue部分打印(多页自动分页、打印样式自定义、多页打印表格页面顶部带表头)...

    写在前面:注意打印表格时,若需要多页打印,则尽量使用原生table元素实现,这样在分页时每页顶部会带有表头,用户体验比较好 一.引用插件(在 main.js 中全局引入!!注意,需要修改源码,所以尽量 ...

  8. 在html页面中怎么打印区域,javascript打印web页面中指定区域的方法

    要实现打印web页面中的指定区域,要做到: 将需要打印的课程表的table放入div标签中,然后指定出需要打印的区域,最后调用window.print打印指定内容. 核心代码: 复制代码 代码示例: ...

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

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

最新文章

  1. 关于java输出的一道面试题
  2. 随机系列生成算法(随机数生成)
  3. centos mysql 5.5 art_Linux CentOS6.5下编译安装MySQL 5.5.51''''
  4. 线性规划专题——Lingo的使用
  5. 四叶草efi_Clover Configurator——四叶草配置引导工具
  6. 【Python】PDF转WORD
  7. W3school笔记——HTML
  8. 3dmax中如何解决镜头穿透模型?
  9. 22条创业军规(读书)
  10. nsis升级包_NSIS office补丁
  11. 小程序开发—第三弹:微信开发工具快捷键
  12. 5g网络技术目前怎么样?5g网络什么时候出?
  13. MySQL —— 14、触发器
  14. Excel每次打开文件都会出现一个空白sheet1文件的一个解决方法
  15. 什么是连接池,其工作原理是什么?
  16. 深入理解Java虚拟机(四)Eden、Survivor、老年代、GC日志
  17. Matlab:创建并计算多项式
  18. 亲爱的,你是吃屎了么
  19. python pdfminer读取pdf表格_使用Python中的PDFMiner从PDF文件提取文本?
  20. Java高级 设计模式

热门文章

  1. 用C语言编写程序计算对角线的和,C语言入门级代码 计算二维数组主对角线上的元素之和...
  2. Android studio 设置豆绿色
  3. 马云的蚂蚁金服为何如此看重区块链?如何发挥区块链商业优势?
  4. 王卫的新算盘?顺丰上线专享急件服务,从北京到上海收费上千元
  5. 页面中的表格如何画斜线
  6. 理解负反馈可以减小输出电阻
  7. IDS(Informix Dynamic Server)的基本概念总结
  8. AppStore审核
  9. SPA项目开发(CRUD表单验证)
  10. Windows 7 Boot Updater 如何使用