web 批量打印
批量打印,同时打印多个页面,有两种思路:
第一种思路,将所有的页面内容加载到一个页面中,然后再打印。这种打印方式有几个弊端,页面的样式会丢失,页面太多同时加载到一个页面中,数据量太大,响应时间很长,消耗的资源过大,很可能导致浏览器崩溃,最终打印失败。针对这种打印方式的弊端,可以通过限制批量打印数量的方法来避免。但样式的问题,似乎找不到解决方案。
第二种思路,调用每个页面直接打印方法,逐个页面打印。这种打印方式的弊端就是,调用每个页面的打印方法都会弹出框,等待用户确认打印才行。
1>第一种思路
第一步:将所有页面通过iframe加载到一个页面中,每个页面一个iframe
第二部:抓取每个iframe中的内容,将其加载到一个新的窗口中,每个ifrmae中的内容在打印的时候都强制分页
第三部:调用新窗口的打印方法。
代码如下:
$(function () {
//在iframe中显示需要打印的页面,设置iframe的高度为自适应高度
$("iframe").each(function () {
$(this).load(function () {
$(this).height($(this).contents()[0].body.scrollHeight);
});
});
});
//将所有iframe中的内容都加载到一个新的窗口中,然后调用新窗口的打印方法
function printAll() {
var win = window.open('about:blank');
var body = "";
$("iframe").each(function (i) {
var pageNextStr = '<div style="page-break-after: always;"></div>';
var pageNext = $(pageNextStr);
pageNext.append($(this).contents()[0].find("from")[0].innerHTML);
body += pageNext[0].outerHTML;
});
win.document.body.innerHTML += body;
win.print();
win.close();
}
程序员的基础教程:菜鸟程序员
web 批量打印的更多相关文章
- asp.net Lodop实现批量打印
1.列表(前台) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="w_stu ...
- LODOP批量打印多页模版进行维护
批量打印的时候,可以循环多任务,也可以循环多页,很多的时候也可以分页分任务,分组打印.如果是一个任务里的多页相同的模版,一个任务中会有很多打印项,这些打印项在每页中的位置是相同的,如果要调整,调整结果 ...
- LODOP打印控件进行批量打印
Lodop打印控件批量打印的方式:1.批量打印每页内容相同的:(1)批量打印相同内容的很多纸张,可以设置打印份数,把该内容打印出多份.2.批量打印每页不同内容的:(1)通过在一个任务中分页,循环添加页 ...
- 利用lodop打印控件轻松实现批量打印 (转载http://www.thinkphp.cn/topic/13085.html)
最近在做一个打印程序,要实现批量打印功能,在网上找了很多天,也在tp官网咨询大牛们,对大家的的提议我一一进行了研究,总结如下: 要实现批量打印可以有两个办法: 一是利用专业的报表程序,能实现十分复杂的 ...
- 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器
1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...
- web网页打印的方法(浏览器通用)
Web打印组件jatoolsPrinter 应用web化,不论对开发商,还是对用户来说,实在是一种很经济的选择,因为基于 web的应用,客户端的规则很简单,容易学习,容易维护,容易发布.但对程序员来说 ...
- vue项目中使用Lodop实现批量打印html页面和pdf文件
1.Lodop是什么? Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现复杂打印.控件功能强大,却简单易用,所有调用如同JavaScript扩 ...
- ArcGIS中国工具应用:固定比例尺固定纸张批量打印
ArcGIS中国工具应用:固定比例尺固定纸张批量打印 下载地址:http://files.cnblogs.com/files/gisoracle/a3batchprint.zip 固定A3,比例尺1: ...
- web在线打印,打印阅览,打印维护,打印设计
winform打印的方案比较多,实现也比较容易,而且效果也非常炫:但现在越来越多的系统是web系统,甚至是移动端.网上也有非常的web打印方案,但各式各样的问题非常多,比如js兼容性,稳定性等一直缠绕 ...
随机推荐
- 第14章 UDP编程(3)_利用UDP实现广播功能
3. 广播的介绍 (1)广播 ①广播实现一对多的通信,如QQ群 ②它通过向广播地址发送数据报文实现的 (2)SO_BROADCAST选项 ①SO_BROADCAST选项控制着UDP套接字是否能发送广播 ...
- [ffmpeg]deocde audio(v3.3.2)
/* * Copyright (c) 2001 Fabrice Bellard * * Permission is hereby granted, free of charge, to any per ...
- sqoop产生背景及概述
sqoop产生背景 多数是用Hadoop技术处理大数据业务的企业有大量的数据存储在传统的关系型数据库(RDBMS)中:由于缺乏工具的支持.对Hadoop和传统数据库系统中的数据进行相互传输是一件十分困 ...
- MySQL 序列 AUTO_INCREMENT
MySQL序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍如何使用MySQL的序列 ...
- express处理跨域问题,中间件 CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 1.不用中间件的话可以这样写: app.all('*', func ...
- jieba库及wordcloud库的使用
知识内容: 1.jieba库的使用 2.wordcloud库的使用 参考资料: https://github.com/fxsjy/jieba https://blog.csdn.net/fontthr ...
- selenium+python自动化85-python3.6上SendKeys报错用PyUserInput取代
前言 python2上安装SendKeys库,对于不好定位的元素,用快捷键操作是极好的,那么在3.6上安装时,会报错 python3.6安装SendKeys报错 1.python3.6安装SendKe ...
- openx _金额
1/work/openx/lib/max/Delivery/log.php MAX_Delivery_log_logAdImpression MAX_Delivery_log_logAdRequ ...
- Python函数名为参数
1.定义两个函数,求和函数和最大函数 def add(x, y): return x + y def maxnum(x, y): return x if x > y else y lst= [2 ...
- c++builder XE7 C++11 C++0x 新语法
Non-static data member initializers 非静态成员变量初始化变得简单,这个XE7 64位编译成功,32位还是不支持 As a simple example, struc ...