`
javababy1
  • 浏览: 1240926 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Web打印控制技术

阅读更多

现有的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打印控制技术主要针对Web应用程序中用户打印需求的解决方案。与桌面应用中的水晶报表和Active Report等强大报表工具相比,Web应用的打印功能受到更多限制。目前,Web打印技术主要有以下几种方案: 1. **自定义...

    非常好用的web打印插件 , 可以热敏打印

    在IT行业中,Web打印插件是一种非常实用的工具,它允许用户通过网页浏览器直接进行打印操作,无需离开当前页面或下载文件到本地。本篇将详细介绍一个被评价为“非常好用”的Web打印插件,特别适合热敏打印,并提供...

    C#实现简单的Web打印控件

    传统的Web打印常依赖于ActiveX控件,但随着浏览器安全性的提升,这种技术逐渐被替代。现在,我们将使用C#来创建一个更加现代、安全且跨平台友好的解决方案。 首先,理解C#中的打印基础是必要的。C#提供了System....

    【Delphi WEB打印服务】通过请求api,实现打印设计、打印预览、打印,即可做到本地和远程打印.zip

    【Delphi WEB打印服务】是基于Delphi开发的一款高级打印解决方案,它允许用户通过API请求进行打印设计、预览和实际打印操作,无论是本地还是远程环境都能轻松应对。这一技术在C#编程语言中同样适用,可以为C#开发者...

    Delphi web打印源码 WEBPrinter For Delphi 10.3 Rio

    《Delphi Web打印技术详解——基于WEBPrinter For Delphi 10.3 Rio》 在IT行业中,Delphi是一款强大的Windows应用程序开发工具,以其高效、易用和丰富的库支持著称。随着Web技术的发展,Delphi也逐步融入了Web相关...

    web打印程序很好用

    Web打印是一种基于网络技术的打印解决方案,它允许用户通过网页浏览器或者其他Web应用程序来发送打印作业,无需安装特定的打印驱动程序。这种技术极大地简化了打印流程,尤其在多用户环境中,提高了工作效率并降低了...

    Web打印设置总结

    ### Web打印设置总结 在数字化办公环境中,Web打印设置成为了不可或缺的一部分,它使得网页内容能够被轻松地转换成纸质文档,满足了用户在不同场景下的需求。本文将深入探讨Web打印设置的几种常见方法,包括直接...

    web打印,打印预览

    Web打印和打印预览是网页开发中的重要组成部分,它们允许用户在正式打印前查看文档的打印效果,确保格式正确无误。在这个过程中,开发者通常会利用浏览器提供的API和CSS技术来实现这一功能。下面我们将详细探讨这个...

    通过Web打印超市一样的小票

    在IT行业中,Web打印是一种利用Web技术实现远程打印的功能,尤其适用于需要跨设备或远程操作的场景。在超市环境中,小票打印是至关重要的环节,它涉及到收银、库存管理和客户体验。本篇将深入探讨如何通过Web技术来...

    WEB页面打印excel报表

    首先,我们需要理解Web打印的基本原理。在Web环境中,打印功能通常通过浏览器的打印API或者JavaScript库来实现,它可以将网页内容转化为适合打印的格式,并提供预览和实际打印的功能。对于Excel报表,我们通常需要将...

    web 票据打印 ie web 票据打印

    在J2EE项目开发中,实现Web票据打印是一项常见的需求,...在IE环境下,结合Java和ActiveX控件,可以实现较为精细的打印控制,但在确保兼容性和安全性的同时,也要关注技术的迭代和更新,以便适应不断变化的浏览器环境。

    net web打印组件

    "net web打印组件"是一种专门为解决Web环境下打印问题而设计的技术解决方案。这个组件的主要功能是支持自定义格式的单据和报表打印,同时也支持套打,即按照预设的模板精确地打印多份文档。这种组件对于那些需要大量...

    Web 打印(部分打印)

    解压并研究这些文件,将有助于深入理解和实践Web打印技术。 总结来说,Web打印(部分打印)是通过浏览器功能和前端技术实现的,涉及到HTML布局、CSS样式和JavaScript编程。开发者需要掌握这些技能,结合适当的工具...

    web打印插件

    Web打印插件通过提供自定义的打印设置和接口,使得开发人员能够控制打印布局、页眉页脚、纸张大小、颜色模式等,从而实现更精细化的打印控制。 2. **报表设计**: 在Web环境中,报表设计涉及HTML、CSS和JavaScript...

    web打印的三种方法

    Web打印是将网页内容转化为纸质形式的一种技术,它使得用户能够方便地从浏览器或Web应用程序中直接打印所需的信息。在互联网日益普及的今天,Web打印成为个人和企业日常工作中不可或缺的一部分。本文将深入探讨Web...

    ASP NET web 打印PDF

    ASP.NET Web打印PDF技术主要涉及两个关键点:一是如何...总的来说,ASP.NET Web打印PDF涉及到服务器端生成PDF文件和客户端的打印控制,通过结合使用合适的库和前端技术,可以实现在Web环境中高效、便捷地处理PDF文档。

    web打印实现源码

    Web打印技术是将网页或其他Web内容直接通过打印机输出的一种方式,它使得用户无需先将网页保存或打印预览,即可直接进行打印操作。本资源提供的是一个通用的Web打印源码,适用于Java和C#环境,旨在简化Web打印流程,...

    web打印demo

    综上所述,"web打印 demo"项目展示了一系列关于Web打印的技术,包括利用jQuery扩展打印功能,自定义打印设置,以及优化内容的布局以适应不同的打印需求。对于开发Web应用的人员,理解并掌握这些技术能提升用户体验,...

    纯js在线WEB打印设计模块

    【纯js在线WEB打印设计模块】是一种基于JavaScript技术的网页打印解决方案,专为在线设计和打印快递模板、配货单模板等应用场景而设计。在现代电子商务和物流行业中,这种技术对于自动化业务流程、提高效率至关重要...

    简单方便的web打印编辑器

    "简单方便的web打印编辑器"是指一种能够帮助用户在浏览器环境下轻松编辑和打印内容的工具,它使得非技术用户也能便捷地创建、格式化和输出文档。本文将深入探讨JS打印编辑器的关键知识点,以及如何构建和实现这样的...

Global site tag (gtag.js) - Google Analytics