当前位置:首页 » 网页前端 » web一键打印
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web一键打印

发布时间: 2023-06-12 13:01:10

㈠ 如何在java web项目中实现打印功能,比如一

你可以了解下jatoolsprint 目前所遇到的打印问题都可以解决。
不过要装一个控件。大小60K.
这是他们网上的介绍。你可以了解下。

jatoolsPrinter (杰表.打印控件)是一款实现网页套打的专用工具。作为web应用开发者,我们经常会遇到在浏览器中打印报表、票据的需求,这些需求浏览器本身的打印功能一般不能满足, 如精确分页,套打等。这就需要有一种能解决常见的浏览器端打印问题的软件工具,这也是 jatoolsPrinter 的研发背景。

jatoolsPrinter 的特点是可以直接对web页面进行精确的分页打印。jatoolsPrinter 通过在网页中嵌入控件,解决了web客户端精确打印,批量打印,打印配置自动保留等问题。 具体功能有:

支持设置打印参数,指定输出打印机、纸张类型,打印方向(横、竖)等 。
支持html格式的页脚、页眉设置,也就是说,页脚页眉可设置图片等,如公司logo。
支持程序分页与自动分页。
支持打印参数自动保留,待下一次打印同一票据时,自动设置,这使客户端也可以控制打印参数。
支持打印预览,支持预览时指定页、指定份数打印。
支持直接打印指定票据的URL。
支持票据及其附件的批量打印。
支持取得本机中的可用打印机,可用纸张类型列表,帮您设计出更友好的参数设置界面。
支持回调,可以帮助您在打印后自动处理有关事务,比如打印后自动关闭窗口、自动递交表单数据等。
支持票据套打时,底图仅在打印预览时显示,不输出到打印机。
小巧,整个控件只有60K。不需要额外的软件包支持。
与您项目采用的技术标准无关,J2EE、.NET 项目均可。
IE 5.5+ 中适用。

㈡ 什么是Web打印,最好说个定义,还有是怎样实现的,请说的详细一点,谢!!

就是网页打印IE
我们知道要实现Web方式的打印不外乎三种方法:第一就是利用大家都熟悉的Office工具来实现Web打印,如利用Word或Excel的打印工具来实现Web打印,该方法的难点是怎样把数据从网页中导入Word或Excel中;第二就是利用IE浏览器自带的打印控件来实现Web打印,该方法的难点是怎样在程序中控制浏览器打印控件中的各项设置;第三就是利用第三方的控件或报表软件来实现Web打印,该方法的难点在于大多数的报表软件都是有偿使用的,因此不得不从经济的角度来考虑了。对于第三种方法,这一类的控件有FileSystemObject组件、ScriptX.cab控件等,这一类的报表软件有如意报表、用友公司的Cell插件、《靓妹》全动态Web报表等。这里对它们的用法就不作说明了,只要参照其提供的说明书就能够驾驭它们。以下笔者将重点讲述前两种方法。

利用Office工具实现打印

http://blog.csdn.net/xwchen/archive/2007/05/31/1633103.aspx

㈢ word里web视图怎么全部打印出来求救!!

web视图是作为网页浏览用的,所以打印的时候有两个选择,一个是采用横排打印,另一个就是切换成页面视图,然后调整内容(比如表格,可以右键点击表格选择“自动调整”→“根据窗口调整表格”然后再进行细微调整)到适合打印的形式。

㈣ web 实现打印功能,跳过页面预览,跳过选择打印机,直接打印!

选中 右键 打印选中区域

㈤ web打印有那几种方法

一、浏览器的打印功能菜单

这种方案的优势是不需要对浏览器作任何扩充,是最简单的办法,但问题也最多,如:

不能精确分页。浏览器一般是根据用户设置的页面大小,web页面的内容多少,来自行决定分页位置,程序员很难控制。会有页脚页眉干扰。

不能准确对齐边边距及打印文字。

不能解决连续打印。比如,不是仅打印一张票据,而是连续一次打印若干个票据。

二、使用webbrowser控件+ javascript

这实际上,是浏览器打印功能菜单的一种程序调用,与打印功能菜单没什么两样。分页的问题仍然存在,只不过,可以让用户不用去点菜单,直接在网页中的一个按钮,或一个链接里面调用罢了。

三 、使用print css

这是一种最理想的实现web套打的方法。这种方法通过在html文档中,嵌入打印相关的css样式,来实现对html文档输出打印的控制,比 如设置纸张大小,纸张纵横方向,打印边距,分页等。显而易见,这种方式成本小,不需要下载任何插件,而且跨平台性非常好。print css推出已经有些时日,但遗憾的是,至今没有一个厂商的浏览器很好地实现了这些标准,这使得程序员目前还不能利用print css进行实际的开发。关于打印css,参见http://css-discuss.incutio.com /?page=PrintStylesheets

四 、使用PDF文件

用这种方式,就是从服务器端下载一个pdf文件流,在IE中用adobe插件打开,然后用adobe的打印菜单进行打印,虽然这种方案,也能 实现精确套打,但需要下载adobe插件。这是国外报表工具经常推荐的一种打印方法,但在pdf不那么普及的中国,这种方案不是最好选择。

㈥ web 实现大量打印

问题描述:

在B/S项目中需要打印大量的图片,我们使用window.print,但是当数据量大至上万的时候,将图片加载出来需要一些时间,加载出来之后打印,如果用户关闭了打印界面会导致打印页的缺失。

解决思路:

1.IE,使用ActiveX控件,非IE,使用Flash插件。这种思路不同的浏览器开发方式不一样,IE/FF/GROME

2.开发一个exe,客户端安装到本地服务,使用HTTP通讯方式。通过JS发送HTTP请求给本地的服务,本地服务起一个小型的HTTP server接收请求,然后返回数据,JS解析,显示在UI上。比如将打印的参数传值到本地服务,本地服务去调用打印机,使浏览器资源得到释放。

我们使用第二种思路。

尝试了以下方法:

1.HttpPrinter

采用原因 免费  ,OME费用很便宜的,而且不限制时间和数量.还可以购买源码的。

HttpPrinter.com

2.葡萄城的ActiveReports

中有B / s端的打印使用window.print实现

https://demo.grapecity.com.cn/ActiveReports/ASPNET/ControlExplorer/Viewers/Default.aspx?category=1001&action=14

另外有C / S端的打印,无法与浏览器交互,但是可以去改进

https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=48785&extra=page%3D1

3. Lodop分为收费版与免费版

 (1)使用Lodop插件,需要客户端安装一个服务,服务的端口默认是8000或18000

 (2)如何购买和使用打印控件的Lodop的注册号

http://blog.sina.com.cn/s/blog_721e77e50100nfzs.html

 (3)Lodop样例演示

http://www.lodop.net/LodopDemo.html

考量问题:

(1)免费版有水印

4. JCP分为收费版与免费版

  安装程序需要替换

  网官   http://printfree.jatools.com/

 考量问题:

免费版只适合于IE浏览器

图片需要渲染到页面,打印时释放浏览器资源可以做其他操作

收费版jatoolsPrint支持大部分浏览器

5.jquery打印

底层是window.print方法

最后考量,我们决定将的ActiveReports中的C / S端程序打包成EXE,利用自定义协议实现打开本地exe服务,使用HTTP方式实现浏览器与本地服务的通讯。

㈦ web 批量打印

排好一个版面,循环输出被选中的信息,每输出一个结果就输出一个分页
分页可以用:
Pagebreak:在打印的时候强迫在样式控制的对象前后换页。

Before:设置对象前出现的页分割符。设置为always时,始终在对象之前插入页分割符。相对应的CSS属性是”page-break-before”。

After:设置对象后出现的页分割符。设置为always时,始终在对象之后插入页分割符。相对应的CSS属性是” '> 。

用page-break-after
page-break-after版本:CSS2 兼容性:IE4+ 继承性:无
语法:
page-break-after : auto | always | avoid | left | right | null
取值:
auto : 假如需要在对象之后插入页分割符
always : 始终在对象之后插入页分割符
avoid : 未支持。避免在对象后面插入页分割符
left : 未支持。在对象后面插入页分割符直到它到达一个空白的左页边
right : 未支持。在对象后面插入页分割符直到它到达一个空白的右页边
null : 空白字符串。取消页分割符设置

㈧ java web 批量打印

实现代码如下:

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ taglib prefix ="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/css/bid.css"/>
<title>批量打印模板</title>
<script type="text/javascript" language="javascript">
function printOnload(){
var count = <s:property value="uriList.size()"/>;
var index;
for(i = 0;i < count;i++){
index = i + 1;
//把iframe的html挪到div上
document.getElementById('page' + index).innerHTML
= window.frames[0].document.getElementsByTagName('body')[0].innerHTML;
}
}
</script>

<!-- media="print"表示改样式只在打印预览或打印的时候才生效 -->
<style media="print" type="text/css">
.NOPRINT{display:none;}
.PageNext{page-break-after: always;}
.none{}
</style>

</head>

<body onload="printOnload()">
<!-- 根据urlList,生成<div> <iframe><iframe/></div> 这样格式的页面-->
<s:iterator value="uriList" status="status1" id="uri">
<div style="<s:if test='#status1.count != uriList.size()'>page-break-after: always;</s:if>" id="page${status1.count}">
<iframe src="<%=request.getContextPath() %>${uri }"></iframe>
</div>
</s:iterator>
</body>
</html>

首先得构造一个适合打印的页面,然后直接用浏览器的打印功能就可以 :

1、后台request保存了一个List<URLObj>,uri属性表示请求地址

2、该打印demo页面,根据List<URLObj>,用struts2标签在body上构建<div><iframe></iframe></div>,iframe打开的是每一个需要批量打印的页面

3、页面加载完成后,调用printOnLoad函数,把iframe里面的html挪到div上