一种智能打印方法及系统与流程

文档序号:12550275阅读:254来源:国知局
一种智能打印方法及系统与流程

本发明涉及打印领域,尤其涉及一种智能打印方法及系统。



背景技术:

目前已有的报表打印软件只能够按照待打印文档的格式来原样进行打印,难以针对复杂表格进行可定制的多样化处理。尤其是,在对于数据量极大的表格进行批量处理、装订成册时,需要在打印后由人手工进行后期处理,十分繁琐费力。现阶段的报表打印系统主要采用以下几种方法解决:

(1)直接利用IE或Excel默认的打印功能实现打印;

(2)使用XML技术实现打印;

(3)使用ActiveX控件控制打印。

(4)使用微软公司的水晶报表等第三方打印控件工具控制打印。

其中直接利用IE或Excel等制表工具的打印功能,就是采用浏览器或者Office Excel作为用户打印报表界面。这种方法仅能满足简单报表的打印,难以精确控制客户端打印机,不能实现对报表每页打印数据的控制、报表显示时对动态列的控制和打印时对动态列的控制功能,因此难以打印复杂报表。

使用XML技术,是采用XML作为中间格式转换的工具,但现阶段企业级数据库中对XML的支持还不多,同时在制作报表时需要XML编辑器,在查看报表时也需要XML解析器,学会掌握XML需要涉及较为复杂的相关领域知识,也需要一定的计算机背景,这些都会很大程度上增加用户的使用成本,使得专门在报表打印系统中使用XML技术具有很大局限性。

ActiveX控件具有良好的跨平台特性,广泛应用于Internet/Intranet开发中,这是现有B/S模式系统报表打印常用的解决方法,但它需要在客户端注册,而且其安全性也不高,不能满足企业级管理系统的安全要求。在现代浏览器中,ActiveX控件还面临着兼容性不足,运行性能较差等缺点。

使用水晶报表等专业的报表软件,这些软件主要通过对表头的自定义编辑、手动对数据源的选择进行编程来实现复杂报表的建立,是大型报表系统常用和推荐的解决方案。但这些软件都包含了报表的创建与打印两部分功能,用户很难根据已经通过Excel等软件制好的表格直接完成自定义打印功能,而且其也无法保留原有表头样式,编程也比较复杂。



技术实现要素:

本发明所要解决的技术问题是目前已有的报表打印软件只能够按照待打印文档的格式来原样进行打印,难以针对复杂表格进行可定制的多样化处理,为解决上述技术问题,本发明提供了一种智能打印方法及系统。

本发明解决上述技术问题的技术方案如下:一种智能打印方法,该方法包括以下步骤:

步骤1:读入报表数据后,将报表数据的格式转换为预设格式;

步骤2:识别报表数据并设置待打印区域、打印样式及打印纸张信息,生成报表数据的打印信息;

步骤3:获取对应打印机,将打印信息传递至打印机。

本发明的有益效果是:本发明提供了更灵活多样的报表打印样式,针对复杂表格进行可定制的多样化处理,允许用户根据自己的需求灵活选择报表打印样式和打印区域,满足了多样化的打印需要。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步地,所述步骤1包括以下步骤:

步骤1.1:读入待打印的报表数据;

步骤1.2:识别不同的待读取报表数据类型,并采用相应的读取方式来读取报表数据;

步骤1.3:统一报表数据格式为Excel表格文件格式。

采用上述进一步方案的有益效果是本发明提供了更便捷的报表数据输入方式,能够支持更多种类的报表数据源,并将其统一为Excel表格文件格式进行操作。

进一步地,所述步骤2包括以下步骤:

步骤2.1:识别报表数据的标题、主栏、宾栏及内容;

步骤2.2:设置待打印区域,并选择打印样式;

步骤2.3:设置打印纸张大小、纸张方向。

采用上述进一步方案的有益效果是智能选取待打印报表区域,使打印区域选取更便捷智能。

进一步地,所述打印信息包括报表数据、打印样式、待打印区域和打印纸张信息。

进一步地,所述打印样式包括主宾栏打印、自选区域打印、原样打印、跳行打印和蝴蝶版打印。

本发明提供的另一种技术方案如下:一种智能打印系统,该系统包括数据读入及格式化模块、报表打印样式设置模块、打印机控制模块;

所述数据读入及格式化模块和打印机控制模块分别与所述报表打印样式设置模块连接;

所述数据读入及格式化模块用于读入报表数据后,将报表数据的格式转换为预设格式;

所述报表打印样式设置模块用于识别报表数据并设置待打印区域、打印样式和打印纸张信息,生成报表数据的打印信息;

所述打印机控制模块用于获取对应打印机,将打印信息传递至打印机。

进一步地,所述报表打印样式设置模块用于识别报表的标题、主栏、宾栏及内容,设置待打印区域,并选择打印样式,设置打印纸张大小、纸张方向,所述打印样式包括主宾栏打印、自选区域打印、原样打印、跳行打印和蝴蝶版打印。

进一步地,所述数据读入及格式化模块用于读入待打印报表的原始数据,并识别不同的待读取报表文件类型,采用相应的读取方式来读取数据信息,最后将报表文件统一为Excel表格文件格式。

进一步地,所述打印信息包括报表数据、打印样式、待打印区域及打印纸张信息。

进一步地,所述系统还包括用户界面及打印机,所述用户界面包括Windows应用程序客户端和IE浏览器ActiveX插件,所述打印机用于打印打印信息。

附图说明

图1为本发明一种智能打印方法流程示意图;

图2为本发明一种智能打印系统结构示意图;

图3为本发明一种智能打印方法及系统主宾栏打印示意图;

图4为本发明一种智能打印方法及系统蝴蝶版打印示意图。

附图中,各标号所代表的部件列表如下:

1、数据读入及格式化模块,2、报表打印样式设置模块,3、打印机控制模块。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,本发明提供了一种智能打印方法,该方法包括以下步骤:

步骤1:读入报表数据后,将报表数据的格式转换为预设格式;

步骤2:识别报表数据并设置待打印区域、打印样式及打印纸张信息,生成报表数据的打印信息;

步骤3:获取对应打印机,将打印信息传递至打印机。

本发明的有益效果是:本发明提供了更灵活多样的报表打印样式,针对复杂表格进行可定制的多样化处理,允许用户根据自己的需求灵活选择报表打印样式和打印区域,满足了多样化的打印需要。

其中,步骤1包括以下步骤:

步骤1.1:读入待打印的报表数据;

步骤1.2:识别不同的待读取报表数据类型,并采用相应的读取方式来读取报表数据;

步骤1.3:统一报表数据格式为Excel表格文件格式。

其中,步骤2包括以下步骤:

步骤2.1:识别报表数据的标题、主栏、宾栏及内容;

步骤2.2:设置待打印区域,并选择打印样式;

步骤2.3:设置打印纸张大小、纸张方向。

其中,打印信息包括报表数据、打印样式、待打印区域和打印纸张信息。

其中,打印样式包括主宾栏打印、自选区域打印、原样打印、跳行打印和蝴蝶版打印。

如图2所示,为本发明提供的一种智能打印系统,该系统包括数据读入及格式化模块1、报表打印样式设置模块2、打印机控制模块3;

数据读入及格式化模块1和打印机控制模块3分别与所述报表打印样式设置模块2连接;

数据读入及格式化模块1用于读入报表数据后,将报表数据的格式转换为预设格式;

报表打印样式设置模块2用于识别报表数据并设置待打印区域、打印样式和打印纸张信息,生成报表数据的打印信息;

打印机控制模块3用于获取对应打印机,将打印信息传递至打印机。

其中,报表打印样式设置模块2用于识别报表的标题、主栏、宾栏及内容,设置待打印区域,并选择打印样式,设置打印纸张大小、纸张方向,打印样式包括主宾栏打印、自选区域打印、原样打印、跳行打印和蝴蝶版打印。

其中,数据读入及格式化模块1用于读入待打印报表的原始数据,并识别不同的待读取报表文件类型,采用相应的读取方式来读取数据信息,最后将报表文件统一为Excel表格文件格式。

其中,打印信息包括报表数据、打印样式、待打印区域和打印纸张信息。

其中,该系统还包括打印机,打印机用于打印打印信息。

本系统的用户界面包含Windows应用程序客户端和IE浏览器ActiveX插件两种,以适用于不同类型的用户,两种用户界面所包含的功能都是一致的,都包括文件选择栏、打印区域设置栏、打印类型选择栏等主要部分。

Windows应用程序采用.Net Framework4.5支持库来支持开发,而IE浏览器插件用到了ActiveX技术,需要支持该技术的浏览器内核来支持使用。

数据读入及格式化模块1,对于待打印报表的原始数据进行读入,并将其统一为Excel表格形式,以便用户接下来直观地设置报表打印的样式。该模块自动识别不同的待读取文件类型,并采用相应的读取方式来获取数据信息,并且在此过程中尽量保留原有数据样式不变。

对于Excel表格文件,本系统调用.Net COM组件:Microsoft Excel15.0Object Library进行文件的读取操作。

对于WPS表格文件,本系统采用OLEDB的方式直接按文件流读取WPS格式的表格文件。

对于CSV和TXT文件,本系统采用文本文件读入的方法将其读入到内存中,再通过字符串格式化方法将其数据恢复为表格格式。

在对格式化后的报表内容打印以前,系统会根据表格样式等信息来自动识别报表的标题、主栏、宾栏及内容,默认方式是根据单元格颜色来识别表头,即自上而下、自左向右地逐行列检测,将首先遇到的连续带颜色多行或多列视为报表的主栏和宾栏。如果识别有误,用户也可以在控制界面手工输入主栏、宾栏对应的起始单元格和结束单元格行列数。

如图3所示,为主宾栏打印示意图,这种打印样式是指对于一张长或宽超过一页的巨大报表进行打印时,使每个单独的页面上都保留其对应的主栏(纵向表头)和宾栏(横向表头),便于数据查看。进行主宾栏打印之前,选择主栏打印还是宾栏打印,其中主栏打印是指优先打印完当前部分主栏所对应的全部宾栏内容,宾栏打印是指优先打印完当前部分宾栏所对应的全部主栏内容。

自选区域打印,是指只打印用户所选区域内的部分报表内容。这里要求用户所选区域必须是一个连续的整块,不能隔行、隔列或扣除个别单元格等。在进行自选区域打印时,系统将格式化后的报表内容生成一个临时的打印用Excel表格,以供用户直观地选择待打印的报表区域,用户通过在Excel表格内框选待打印内容区域即可完成区域选择,选定并确认后,系统自动将选定区域的内容以及对应的主宾栏内容保留,将其他多余部分删去,构成用户最终需要打印的报表。用户也可以选择输入行列号的方式,在系统内直接填写自选区域的起始、终止单元格的行、列,系统将自动定位选定区域,其他操作与前者相同。

原样打印,是指按照原表内容,不做改变地直接逐页打印。这是为了满足用户直接打印的需要,这种打印样式不需要用户提供其他额外参数。

跳行打印,是指只打印选定的某些行与某些列交叉点上的单元格内的内容。这种打印样式需要在Excel表格上手动制定待打印内容所属的行、列,选择完毕后系统将自动保留这些行、列交叉位置的部分数据,保留它们对应的主栏和宾栏内容,并将其余报表内容全部删除,构成最终需要打印的报表。如果用户仅选取了某些行或者某些列,亦或是所选定行列交叉点在表单内容区域之外,则会给出相应报错提示,并要求重新输入。

如图4所示,为蝴蝶版打印示意图,是指以蝴蝶打印的方式排版时所需的打印样式,即左右两页合起来作为一个整页进行排版。这种打印样式无需用户提供参数,系统自动将原始报表数据进行整理,默认按主栏打印的方式排布页面,每两页的内容中,左侧页带有主栏,右侧页不带主栏。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1