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

几种web报表打印方案的比较

    博客分类:
  • JAVA
阅读更多

web报表打印通常是系统的辅助部分,但是又必须解决,否则项目完成不了。下面来分析分析目前的几种常见的web报表打印方案。


一、 浏览器的菜单打印功能
这是最简单的,只需点击页面上的打印菜单,但是也是问题最多的,基本上是不能满足用户需要。比如:不能精确分页,有出现打出半行字的风险;改变纸型后打印出的格式和页面显示的格式相差太大;页眉页脚也需要从菜单中去设置,等等等等。这种方案最大的优势就是不需要做任何代码,点击打印就可以了。

 二、 window.Print()

这实际上,是浏览器打印功能菜单的一种程序调用。与点击打印功能菜单一样,不能精确分页,不能设置纸型,套打的问题更加无从谈起,只不过,可以让用户不用去点菜单,直接点击网页中的一个按钮,或一个链接里面调用罢了。
需要指出的是这种方法提供一个打印前和打印后的事件onbeforeprint、onafterprint。可以在打印前的时候重新编辑一些格式,专门送去打印,打印后又处理回来。
function window.onbeforeprint()
{
//将一些不需要打印的隐藏
}
function window.onafterprint()
{
//放开隐藏的元素
}


事实上,很多用户都是采用这种方式打印,但是这种方式最致命的缺点是不能设置打印参数,比如纸型,页边距,选择打印机等等。

三、 导出excel导出pdf文件的打印
将需要打印的数据导出excel文件或者导出pdf文件,然后打开excel文件或者pdf文件重新打印,用这种方案能实现精确的打印,套打也能实现,但是需要客户端安装excel和adobe软件,操作起来也有些麻烦,并且导出的excel文件可以重新修改编辑,一般用户都会要求系统提供这种导出的方案,也同时需要直接打印的功能,所以个人觉得这种方案也不能很好的解决打印的问题。


四、 纯ActiveX控件
这种方案其实就是编写一个C/S的打印控件,然后嵌入到页面里面,将要打印的数据装入到控件中,然后打印。这种方案的优点是打印精度高,分页,设置打印参数等等都能实现。但是缺点也是很明显的,嵌入ActiveX控件破坏了web应用的整体html风格,且这样的控件通常都比较大,一般都超过1M,下载很慢。

五、 Applet方式
采用Applet方式,分页或精确打印,都可以做到完美,但缺点也很明显,表现在:
安装Applet成本巨大。需要下载十几M的文件。
Applet本身可能并不大,但运行Applet所需的jre一般至少10几M(jre1.4.2 , 15.45M)。用户需要极大的耐心,来进行打印。
打印报表时,需要重新向服务器检索数据,效率低。
因为Applet方案,一般采用html方式呈现数据,打印时Applet必须向服务器检索同一张票据的数据,看上去,是打印了当前页的票据,实际上,Applet根本不会用当前html页的数据来打印,而是向服务器下载数据到Applet中来打印。也就是说,打印的话,必须两次请求,一次html呈现,一次用来打印。
市场上java类的报表工具,一般推荐Applet方式来实现打印。
 
六、 轻量级的ActiveX插件+DHTML+javascript+后台代码(动态获取数据)

轻量级ActiveX插件:设置打印参数,比如预定义纸型,设置打印方向,打印边距,指定打印机,不弹出打印对话框直接打印等等。

DHTML+javascript编辑打印数据的格式展现,实现格式的自定义。

后台代码,可以是java,dotnet等等的,实现动态获取打印数据。

这种方案是比较理想的,只需要客户端下载一个很小的打印插件,客户端无需安装任何C/S的格式设计器,就可以轻松实现打印格式的自定义,打印参数的自定义等等。

eprint自定义打印工具就是这样一种web打印工具。下面是运行这种方案实现格式自定义的一个示例:

下面是一个预览的界面。

格式设计页面如下:

代码调用如下图:红色圈中的为调用的javascript函数。

这种方案的优点是:
能设置打印的纸型,方向,边距,页眉页脚等等打印参数。
能实现精确打印,分页;
格式可以自定义;
成本低廉,ActiveX只有75k。

分享到:
评论
1 楼 Ginger90 2015-01-27  
感觉帆软报表这些采用的flash打印方式很不错啊

相关推荐

    Java Web开发技术方案宝典-报表打印

    高级报表打印方案涵盖了前面提到的技术,并进一步增加了诸如数据可视化、交互式报表等功能。这可能包括使用JavaScript库如Chart.js或D3.js来生成图表,并集成到报表中,使得数据更加直观。 #### 自定义报表打印方案...

    aa.rar_html_html 报表_web 打印_报表打印

    压缩包内的"aa.doc"文件可能是一个文档,详细解释了如何实现上述的Web报表打印方案,包括代码示例、最佳实践和可能遇到的问题及解决方法。如果需要具体的操作步骤和代码实现,应当打开这个文档进行深入学习。 总的...

    报表打印控件 (2013-9-6)

    综上所述,这个“报表打印控件 (2013-9-6)”是针对财政快报打印问题的解决方案,通过安装“ocxsetup.exe”文件,用户可以解决浙江地区网上申报报表打印无响应的难题,同时涉及到了ActiveX控件、驱动兼容性、软件安装...

    SQL Server混合认证模式下打印客户端Web报表的实现.pdf

    随着信息技术的发展,Web报表的应用变得越来越广泛,尤其是在企业内部及客户端需要远程打印报表的情况下。本文聚焦于在SQL Server数据库的混合认证模式下,如何利用***开发技术结合Crystal Report工具实现Web报表的...

    JasperReport+iReport整合的Web报表开发

    在Web环境中,可以通过以下几种方式实现: - **服务器端生成PDF**:在服务器端生成PDF文件,然后提供给客户端下载。 - **客户端生成PDF**:使用JavaScript等技术在客户端生成PDF文件。 ##### 4.5 使用Applet进行...

    c#报表打印PagesPrint源码.rar

    在C#中进行报表打印,通常会涉及到以下几个关键知识点: 1. **控件和库**:在.NET Framework或.NET Core中,可以使用各种报表控件,如水晶报表(Crystal Reports)、DevExpress报表、Syncfusion报表等。这些控件...

    面向Web的报表_图表统计系统研究与实现.pdf

    当前面向Web的报表软件主要有以下几种体系结构: 1. **纯Web报表**:以润乾为代表,能够与Web应用无缝集成,实现高效运行。 2. **控件方式**:以数据为代表的报表软件,通常需要在客户端安装特定插件。 3. **独立...

    ActiveX控件在基于B_S结构的报表打印中的应用

    在基于Web的应用中,要实现格式规范且功能强大的报表打印,通常有以下几种解决方案: 1. **服务器方专门编制打印页面**:这种方式是根据特定的纸张大小预先排版,用户下载一页打印一页。这种方法虽然简单,但用户...

    web打印.doc

    ### Web打印技术详解:Jaspersoft + iReport + Designer 4.5.0 教程 #### 背景及需求分析 随着信息技术的发展,Web打印成为越来越多企业选择的高效打印方式之一。本文档旨在介绍如何利用Jaspersoft、iReport、...

    自定义报表打印JSP源程序代码

    综上所述,这个"自定义报表打印JSP源程序代码"资源提供了从数据库获取数据、自定义报表字段、页面渲染以及打印功能的完整解决方案。对于开发者来说,这是一个学习和快速开发报表系统的宝贵参考资料。通过深入研究这...

    Web打印控制技术总结

    目前,Web打印技术主要有以下几种方案: 1. **自定义控件完成打印** - 利用VB或VC等工具创建COM组件,该组件根据预设的打印格式解析打印源文件进行打印。用户需下载并注册组件到本地才能使用。 - 通过XML技术定义...

    报表设计器 C# 源码 自定义报表

    此外,对于希望深入了解报表工具开发或者想为现有项目定制报表解决方案的人来说,这是一个极好的学习和实践机会。 源码分析和研究可以涉及以下几个方面: 1. **架构设计**:研究代码组织结构,了解各个类和组件的...

    Web打印控件

    在网页中集成Web打印控件,通常有以下几种实现方式: 1. **JavaScript打印**:通过JavaScript的window.print()方法,开发者可以直接调用浏览器的打印功能。这种方法简单易行,但缺乏定制性,比如不能设置页眉、页脚...

    FineReport报表工具的使用与集成

    FineReport报表工具是一种企业级Web报表软件工具,它完全采用Java语言编写,支持主流的B/S架构和传统的C/S架构,部署方式简单而灵活。FineReport的特点在于其易用性和高效的报表设计方案,它采用了数据双向扩展、...

    ASP.NET 水晶报表打印功能实现代码

    ASP.NET 水晶报表打印功能的实现是Web应用程序中...总的来说,ASP.NET结合水晶报表提供的打印功能,可以实现灵活且可控的报表打印方案,满足不同场景的需求。通过选择适合的方法,开发者可以为用户提供便捷的打印体验。

    MicroReports、使用控件创建报表、使用控件创建报表(IIS浏览)、水晶报表、直接打印网页

    本主题将探讨几个关键的报表技术,包括MicroReports、使用控件创建报表(IIS浏览)、水晶报表以及直接打印网页的方法。 1. **MicroReports**: MicroReports是一种轻量级的报表解决方案,它允许开发者快速设计和...

    兼容所有浏览器的快速Web打印控件

    本文将深入探讨“兼容所有浏览器的快速Web打印控件”这一主题,结合给定的描述和标签,我们将关注C#、JSP、PHP这三种编程语言的打印报表实现方法,以及如何确保在不同浏览器上的兼容性和高效性能。 首先,我们来...

    报表学习基础制作笔记

    报表是数据可视化的一种手段,它将数据库中的大量信息整理成清晰、易读的格式,便于用户分析和决策。报表制作通常涉及到数据的筛选、排序、分组、计算以及图表展示等多个方面。 在Java Web环境下,报表制作可以借助...

Global site tag (gtag.js) - Google Analytics