现有的Web打印控制技术分成几种方案
自定义控件完成打印
利用IE自带的WebBrowser控件实现打印
利用第三方控件实现打印
以下主要谈前两个方面的内容
一、 自定义控件方式
自定义控件方式就是利用VB或VC等工具生成COM组件,用定义好的打印格式来分析打印源文件从而实现打印。只有将生成的组件下载并注册到客户机上,才能实现在客户端的打印。
难点主要是定义打印格式、如何来分析打印源文件。现有的比较好的方法是利用XML技术来全面的解决问题,利用XML可以非常容易地定义打印目标的文本、表格等内容的格式。但对程序员的开发要求高,难度比较大。
二、 利用WebBrowser实现Web打印
WebBrowser是IE内置的浏览器控件,无需用户下载。本文档所讨论的是有关IE6.0版本的WebBrowser控件技术内容。与其相关的技术要求有:打印文档的生成、页面设置、打印操作的实现等几个环节。
(一)、 打印文档的生成
1、 客户端脚本方式
客户端脚本分为VBScript、JavaScript、JScript几种脚本语言。在IE下开发应用使用的语法为JScript的语法,由于它和JavaScript几乎没有什么区别,所以也可以称其为JavaScript(下面简写为JS)。一般情况下,主要使用JS来实现DOM文档的分析,DOM为微软提出的一种Web文档模型,主要用来实现Web脚本编程。
利用JS可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印。通过分析源文档的内容,可以生成打印目标文档。
优点:客户端独立完成打印目标文档的生成,减轻服务器负荷;
缺点:源文档的分析操作复杂,并且源文档中的打印内容要有约定;
2、 服务器端程序方式
服务器端程序方式,主要是利用后台代码从数据库中读取打印源,生成打印目标文档。当的页面生成时,还应适当考虑使用CSS来实现强制分页控制。
优点:可以生成内容非常的丰富的打印目标文档,目标文档的内容的可控性强。由于打印内容是从数据库中获取的,所以生成操作相对简单;
缺点:服务器端负载比较大;
(二)、 页面设置
页面设置主要是指设置打印文档的页边距、页眉、页脚、纸张等内容。页面设置将直接影响到打印文档版面的生成效果,所以它和打印文档的生成有着密切的关系。比如:表格的行数、大小、位置、字体的大小等。
现有的技术是利用IE6.0内置的打印模板方式来控制页面设置,其可以对打印目标文档产生非常大的影响。打印模板可以控制页边距、页眉、页脚、奇偶页等内容,并可以将用户的设置取得,还可以将设置发送到服务器端。
打印模板技术可以自定预览窗口和打印格式,最大限度地影响目标文档和打印效果。
(三)、 打印操作的实现
此功能的实现主要是利用WebBrowser控件的函数接口来实现打印、打印预览(默认的)、页面设置(默认的)。
<object ID='WebBrowser1' WIDTH=0 HEIGHT=0
CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'>
//打印
WebBrowser1.ExecWB(6,1);
//打印设置
WebBrowser1.ExecWB(8,1);
//打印预览
WebBrowser1.ExecWB(7,1);
三、 本项目采用的打印方案
服务器端程序方式、打印预览接口调用,下面为例,主要参考项目中的:pageErrorPrint.aspx.vb文件
主调用页
function PrintPage(iPageIndex,strQuery)
{
var strURL;
strURL = "PageErrorPrint.aspx?PageIndex=" + iPageIndex + "&QueryString=" + strQuery;
winPrint=window.open(strURL,"","left=2000,top=2000,fullscreen=3");
}
打印页HTML源中的预览控制
<SCRIPT language="javascript">
document.write("<object ID='WebBrowser' WIDTH=0 HEIGHT=0
CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>");
WebBrowser.ExecWB(7,1);
window.opener=null;
window.close();
</SCRIPT>
程序头
'首先声明表格容器
Protected WithEvents phContainer As System.Web.UI.WebControls.PlaceHolder
'每个表格中的记录数量
Private Const ItemPerTable As Integer = 20
关键的实现部分
'创建一个符合打印要求的表格
tabPagePrint = NewPrintTable()
'将表头添加到此表格中
Call AddTableTitle(tabPagePrint)
'初始化记录器
i = 0
iItemIndex = iStartPoint
For Each clsItem In clsAllData.ErrorCollection
If i > 0 And i Mod ItemPerTable = 0 Then
'添加表格控件到页面中
phContainer.Controls.Add(tabPagePrint)
'在页面中添加一个换行符
Call AddPageBreak()
'创建新一轮的表格
tabPagePrint = NewPrintTable()
Call AddTableTitle(tabPagePrint)
End If
'将记录添加到表格中
Call AddItemToTable(iItemIndex, tabPagePrint, clsItem)
iItemIndex = iItemIndex + 1
i = i + 1
Next
'添加表格控件到页面中
phContainer.Controls.Add(tabPagePrint)
支持函数
'功能:添加页的换行符
Private Sub AddPageBreak()
Dim ltBreak As LiteralControl
ltBreak = New LiteralControl("<p style='page-break-before:always'>")
phContainer.Controls.Add(ltBreak)
End Sub
'功能:创建一个符合打印要求的表格
Private Function NewPrintTable() As Table
Dim tabSrc As New Table()
tabSrc.Width = Unit.Percentage(100)
tabSrc.Attributes("border") = "1"
tabSrc.CellPadding = 4
tabSrc.CellSpacing = 0
tabSrc.BorderWidth = Unit.Pixel(2)
tabSrc.BorderColor = Color.Black
tabSrc.Style.Add("FONT-SIZE", "12px")
NewPrintTable = tabSrc
End Function
分享到:
相关推荐
Web打印控制技术主要针对Web应用程序中用户打印需求的解决方案。与桌面应用中的水晶报表和Active Report等强大报表工具相比,Web应用的打印功能受到更多限制。目前,Web打印技术主要有以下几种方案: 1. **自定义...
在IT行业中,Web打印插件是一种非常实用的工具,它允许用户通过网页浏览器直接进行打印操作,无需离开当前页面或下载文件到本地。本篇将详细介绍一个被评价为“非常好用”的Web打印插件,特别适合热敏打印,并提供...
传统的Web打印常依赖于ActiveX控件,但随着浏览器安全性的提升,这种技术逐渐被替代。现在,我们将使用C#来创建一个更加现代、安全且跨平台友好的解决方案。 首先,理解C#中的打印基础是必要的。C#提供了System....
【Delphi WEB打印服务】是基于Delphi开发的一款高级打印解决方案,它允许用户通过API请求进行打印设计、预览和实际打印操作,无论是本地还是远程环境都能轻松应对。这一技术在C#编程语言中同样适用,可以为C#开发者...
《Delphi Web打印技术详解——基于WEBPrinter For Delphi 10.3 Rio》 在IT行业中,Delphi是一款强大的Windows应用程序开发工具,以其高效、易用和丰富的库支持著称。随着Web技术的发展,Delphi也逐步融入了Web相关...
Web打印是一种基于网络技术的打印解决方案,它允许用户通过网页浏览器或者其他Web应用程序来发送打印作业,无需安装特定的打印驱动程序。这种技术极大地简化了打印流程,尤其在多用户环境中,提高了工作效率并降低了...
### Web打印设置总结 在数字化办公环境中,Web打印设置成为了不可或缺的一部分,它使得网页内容能够被轻松地转换成纸质文档,满足了用户在不同场景下的需求。本文将深入探讨Web打印设置的几种常见方法,包括直接...
Web打印和打印预览是网页开发中的重要组成部分,它们允许用户在正式打印前查看文档的打印效果,确保格式正确无误。在这个过程中,开发者通常会利用浏览器提供的API和CSS技术来实现这一功能。下面我们将详细探讨这个...
在IT行业中,Web打印是一种利用Web技术实现远程打印的功能,尤其适用于需要跨设备或远程操作的场景。在超市环境中,小票打印是至关重要的环节,它涉及到收银、库存管理和客户体验。本篇将深入探讨如何通过Web技术来...
首先,我们需要理解Web打印的基本原理。在Web环境中,打印功能通常通过浏览器的打印API或者JavaScript库来实现,它可以将网页内容转化为适合打印的格式,并提供预览和实际打印的功能。对于Excel报表,我们通常需要将...
在J2EE项目开发中,实现Web票据打印是一项常见的需求,...在IE环境下,结合Java和ActiveX控件,可以实现较为精细的打印控制,但在确保兼容性和安全性的同时,也要关注技术的迭代和更新,以便适应不断变化的浏览器环境。
"net web打印组件"是一种专门为解决Web环境下打印问题而设计的技术解决方案。这个组件的主要功能是支持自定义格式的单据和报表打印,同时也支持套打,即按照预设的模板精确地打印多份文档。这种组件对于那些需要大量...
解压并研究这些文件,将有助于深入理解和实践Web打印技术。 总结来说,Web打印(部分打印)是通过浏览器功能和前端技术实现的,涉及到HTML布局、CSS样式和JavaScript编程。开发者需要掌握这些技能,结合适当的工具...
Web打印插件通过提供自定义的打印设置和接口,使得开发人员能够控制打印布局、页眉页脚、纸张大小、颜色模式等,从而实现更精细化的打印控制。 2. **报表设计**: 在Web环境中,报表设计涉及HTML、CSS和JavaScript...
Web打印是将网页内容转化为纸质形式的一种技术,它使得用户能够方便地从浏览器或Web应用程序中直接打印所需的信息。在互联网日益普及的今天,Web打印成为个人和企业日常工作中不可或缺的一部分。本文将深入探讨Web...
ASP.NET Web打印PDF技术主要涉及两个关键点:一是如何...总的来说,ASP.NET Web打印PDF涉及到服务器端生成PDF文件和客户端的打印控制,通过结合使用合适的库和前端技术,可以实现在Web环境中高效、便捷地处理PDF文档。
Web打印技术是将网页或其他Web内容直接通过打印机输出的一种方式,它使得用户无需先将网页保存或打印预览,即可直接进行打印操作。本资源提供的是一个通用的Web打印源码,适用于Java和C#环境,旨在简化Web打印流程,...
综上所述,"web打印 demo"项目展示了一系列关于Web打印的技术,包括利用jQuery扩展打印功能,自定义打印设置,以及优化内容的布局以适应不同的打印需求。对于开发Web应用的人员,理解并掌握这些技术能提升用户体验,...
【纯js在线WEB打印设计模块】是一种基于JavaScript技术的网页打印解决方案,专为在线设计和打印快递模板、配货单模板等应用场景而设计。在现代电子商务和物流行业中,这种技术对于自动化业务流程、提高效率至关重要...
"简单方便的web打印编辑器"是指一种能够帮助用户在浏览器环境下轻松编辑和打印内容的工具,它使得非技术用户也能便捷地创建、格式化和输出文档。本文将深入探讨JS打印编辑器的关键知识点,以及如何构建和实现这样的...