一种实现后台图像数据导出的方法及装置转让专利

申请号 : CN201711377489.4

文献号 : CN108153845B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 窦万蕊

申请人 : 北京天元创新科技有限公司

摘要 :

本发明的实施例公开了一种实现后台图像数据导出的方法及装置,该方法通过访问路径将每一图形对象对应的静态页面存储到预设服务器中,并生成导出该静态页面的命令,预设服务器根据该命令即可对每一静态页面中第一文件进行渲染,得到第二文件,将第二文件导出。第一文件根据图形对象的数据源和图形格式信息得到,第二文件对第一文件进行渲染得到,保证了图形对象的信息完整性,使得预设服务器导出的第二文件的导出效果与待导出页面的显示效果保持一致。另一方面,通过命令实现第二文件的批量导出,提高了图像对象的导出效率。

权利要求 :

1.一种实现后台图像数据导出的方法,其特征在于,包括:

创建由待导出页面访问预设服务器的访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息;数据源是用于恢复图形对象的数据;

根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令;

按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出;

其中,所述图形格式信息包括所述图形对象的样式、尺寸和长宽比,所述命令包括所述图形格式信息、所述存放路径和关于对所述第一文件进行渲染的渲染信息;

所述创建由待导出页面访问预设服务器访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息,包括:通过安装在所述预设服务器上的wkhtmltox创建所述访问路径,并通过所述wkhtmltox获取所述待导出页面上的每一图形对象对应的所述数据源和所述图形格式信息;

所述根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令,包括:根据所述数据源和所述图形格式信息生成所述第一文件,得到包含了所述第一文件的所述静态页面;

按照所述访问路径将所述静态页面存储到所述预设服务器的预设存储位置,通过所述wkhtmltox生成导出所述静态页面的cmd命令,作为导出所述静态页面的命令;

其中,所述第一文件为html文件;

预设服务器执行cmd命令导出第二文件时,启动新的进程。

2.根据权利要求1所述的方法,其特征在于,所述按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出,包括:循环执行文件导出操作,直到导出每一所述图形对象对应的第一文件,其中,所述文件导出操作包括:从所述预设存储位置获取任一静态页面,作为目标静态页面,并获取对应于所述目标静态页面的cmd命令,作为目标cmd命令;

根据所述cmd命令判断是否对所述目标静态页面中的目标第一文件进行渲染,若是,对所述目标第一文件进行渲染,得到对应于所述目标第一文件的目标第二文件,否则,将所述目标第一文件作为所述目标第二文件;

根据所述目标cmd命令中的用于存放所述目标第二文件的存放路径,将所述目标第二文件导出到预设的Excel文件中,并将所述目标静态页面从所述预设存储位置删除;

其中,所述第二文件的格式为图像文件或者PDF文件。

3.一种实现后台图像数据导出的装置,其特征在于,包括:

创建模块,用于创建由待导出页面访问预设服务器的访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息;数据源是用于恢复图形对象的数据;

存储模块,用于根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令;

导出模块,用于按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出;

其中,所述图形格式信息包括所述图形对象的样式、尺寸和长宽比,所述命令包括所述图形格式信息、所述存放路径和关于对所述第一文件进行渲染的渲染信息;

所述创建模块还用于通过安装在所述预设服务器上的wkhtmltox创建所述访问路径,并通过所述wkhtmltox获取所述待导出页面上的每一图形对象对应的所述数据源和所述图形格式信息;

所述存储模块还用于根据所述数据源和所述图形格式信息生成所述第一文件,得到包含了所述第一文件的所述静态页面;按照所述访问路径将所述静态页面存储到所述预设服务器的预设存储位置,通过所述wkhtmltox生成导出所述静态页面的cmd命令,作为导出所述静态页面的命令;其中,所述第一文件为html文件;

预设服务器执行cmd命令导出第二文件时,启动新的进程。

4.根据权利要求3所述的装置,其特征在于,所述导出模块还用于循环执行文件导出操作,直到导出每一所述图形对象对应的第一文件,其中,所述文件导出操作包括:从所述预设存储位置获取任一静态页面,作为目标静态页面,并获取对应于所述目标静态页面的cmd命令,作为目标cmd命令;

根据所述cmd命令判断是否对所述目标静态页面中的目标第一文件进行渲染,若是,对所述目标第一文件进行渲染,得到对应于所述目标第一文件的目标第二文件,否则,将所述目标第一文件作为所述目标第二文件;

根据所述目标cmd命令中的用于存放所述目标第二文件的存放路径,将所述目标第二文件导出到预设的Excel文件中,并将所述目标静态页面从所述预设存储位置删除;

其中,所述第二文件的格式为图像文件或者PDF文件。

5.一种电子设备,其特征在于,包括:

至少一个处理器、至少一个存储器、通信接口和总线;其中,

所述处理器、存储器、通信接口通过所述总线完成相互间的通信;

所述通信接口用于该电子设备和服务器的通信设备或者终端的通信设备之间的信息传输;

所述存储器存储有可被所述处理器执行的程序命令,所述处理器调用所述程序命令能够执行如权利要求1至2中任一项所述的方法。

6.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机命令,所述计算机命令使所述计算机执行权利要求1至2中任一项所述的方法。

说明书 :

一种实现后台图像数据导出的方法及装置

技术领域

[0001] 本发明实施例涉及计算机图片数据管理技术领域,尤其是涉及一种实现后台图像数据导出的方法及装置。

背景技术

[0002] 性能管理系统(performance management system,简称PM)管理着大量的NE网元设备,每天采集的性能数据也都是海量级别,为了监控和统计分析网络的指标性能,用户会定制多个监控窗口和大量的报表定时任务。从样式和视觉效果方面考虑,PM在开发初期引入了fusionchart组件,前台通过快速的配置和程序的灵活扩展,可满足运维人员多种业务场景下的使用需求。因PM涉及很多后台调度任务,如何在服务器端直接生成与前台界面展示效果一致的结果文件就成了我们研究的问题之一。
[0003] PM系统一般用于通信网络的性能监控,通过对EMS(Element Management System,网元管理系统)系统和NE(Network element,网元设备)网元的性能数据的采集、解析、入库、汇总和展现,对电信运营商网络的整体性能和发展趋势给出直观显示。PM系统中大量使用了fusionchart图表展现形式,例如线图、柱图、柱线图、饼图、面积图、气泡图、仪表盘等20多种图表样式。这些图形如果在浏览器客户端进行导出,可利用fusionchart提供的API进行。但系统也要求通过定时任务在服务器端生成报表等分析文件,即后台要利用java程序自动执行并生成结果,不能实现文件中的图片样式和前台展现样式完全匹配。虽然Jfreechart是java平台上的一个图表绘制类库,支持多种图形样式的展示和输出,但其绘制效果和fusionchart的效果大相径庭,最终也无法满足用户需求。
[0004] 在实现本发明实施例的过程中,发明人发现现有的服务器无法将在页面展示的图形对象,按照该图形对象的样式和在页面的展示方式导出,使得服务器端无法对页面进行有效监控。

发明内容

[0005] 本发明所要解决的技术问题是如何解决现有的服务器无法将在页面展示的图形对象,按照该图形对象的样式和在页面的展示方式导出,使得服务器端无法对页面进行有效监控的问题。
[0006] 针对以上技术问题,本发明的实施例提供了一种实现后台图像数据导出的方法,包括:
[0007] 创建由待导出页面访问预设服务器的访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息;
[0008] 根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令;
[0009] 按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出;
[0010] 其中,所述图形格式信息包括所述图形对象的样式、尺寸和长宽比,所述命令包括所述图形格式信息、所述存放路径和关于对所述第一文件进行渲染的渲染信息。
[0011] 可选地,所述创建由待导出页面访问预设服务器访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息,包括:
[0012] 通过安装在所述预设服务器上的wkhtmltox创建所述访问路径,并通过所述wkhtmltox获取所述待导出页面上的每一图形对象对应的所述数据源和所述图形格式信息。
[0013] 可选地,所述根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令,包括:
[0014] 根据所述数据源和所述图形格式信息生成所述第一文件,得到包含了所述第一文件的所述静态页面;
[0015] 按照所述访问路径将所述静态页面存储到所述预设服务器的预设存储位置,通过所述wkhtmltox生成导出所述静态页面的cmd命令,作为导出所述静态页面的命令;
[0016] 其中,所述第一文件为html文件。
[0017] 可选地,所述按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出,包括:
[0018] 循环执行文件导出操作,直到导出每一所述图形对象对应的第一文件,其中,所述文件导出操作包括:
[0019] 从所述预设存储位置获取任一静态页面,作为目标静态页面,并获取对应于所述目标静态页面的cmd命令,作为目标cmd命令;
[0020] 根据所述cmd命令判断是否对所述目标静态页面中的目标第一文件进行渲染,若是,对所述目标第一文件进行渲染,得到对应于所述目标第一文件的目标第二文件,否则,将所述目标第一文件作为所述目标第二文件;
[0021] 根据所述目标cmd命令中的用于存放所述目标第二文件的存放路径,将所述目标第二文件导出到预设的Excel文件中,并将所述目标静态页面从所述预设存储位置删除;
[0022] 其中,所述第二文件的格式为图像文件或者PDF文件。
[0023] 第二方面,本发明的实施例提供了一种实现后台图像数据导出的装置,包括:
[0024] 创建模块,用于创建由待导出页面访问预设服务器的访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息;
[0025] 存储模块,用于根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令;
[0026] 导出模块,用于按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出;
[0027] 其中,所述图形格式信息包括所述图形对象的样式、尺寸和长宽比,所述命令包括所述图形格式信息、所述存放路径和关于对所述第一文件进行渲染的渲染信息。
[0028] 可选地,所述创建模块还用于通过安装在所述预设服务器上的wkhtmltox创建所述访问路径,并通过所述wkhtmltox获取所述待导出页面上的每一图形对象对应的所述数据源和所述图形格式信息。可选地,所述存储模块还用于根据所述数据源和所述图形格式信息生成所述第一文件,得到包含了所述第一文件的所述静态页面;按照所述访问路径将所述静态页面存储到所述预设服务器的预设存储位置,通过所述wkhtmltox生成导出所述静态页面的cmd命令,作为导出所述静态页面的命令;其中,所述第一文件为html文件。
[0029] 可选地,所述导出模块还用于循环执行文件导出操作,直到导出每一所述图形对象对应的第一文件,其中,所述文件导出操作包括:
[0030] 从所述预设存储位置获取任一静态页面,作为目标静态页面,并获取对应于所述目标静态页面的cmd命令,作为目标cmd命令;
[0031] 根据所述cmd命令判断是否对所述目标静态页面中的目标第一文件进行渲染,若是,对所述目标第一文件进行渲染,得到对应于所述目标第一文件的目标第二文件,否则,将所述目标第一文件作为所述目标第二文件;
[0032] 根据所述目标cmd命令中的用于存放所述目标第二文件的存放路径,将所述目标第二文件导出到预设的Excel文件中,并将所述目标静态页面从所述预设存储位置删除;
[0033] 其中,所述第二文件的格式为图像文件或者PDF文件。
[0034] 第三方面,本发明的实施例提供了一种电子设备,包括:
[0035] 至少一个处理器、至少一个存储器、通信接口和总线;其中,
[0036] 所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
[0037] 所述通信接口用于该电子设备和服务器的通信设备或者终端的通信设备之间的信息传输;
[0038] 所述存储器存储有可被所述处理器执行的程序命令,所述处理器调用所述程序命令能够执行以上所述的方法。
[0039] 第四方面,本发明的实施例提供了一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机命令,所述计算机命令使所述计算机执行以上所述的方法。
[0040] 本发明的实施例提供了一种实现后台图像数据导出的方法及装置,该方法创建待导出页面和预设服务器的访问路径,通过该访问路径将获取待导出页面的每一图形对象的数据源和图形格式信息。根据数据源和图形格式信息生成对应于图形对象的静态页面,并按照访问路径存储到预设服务器中,同时生成预设服务器导出该静态页面的命令。预设服务器要将待导出页面的图形对象导出时,根据该命令对静态页面中对应于该图形对象的第一文件进行渲染,得到第二文件,然后按照命令中的存放路径将第二文件导出。该方法通过访问路径将每一图形对象对应的静态页面存储到预设服务器中,并生成导出该静态页面的命令,预设服务器根据该命令即可对每一静态页面中第一文件进行渲染,得到第二文件,将第二文件导出。第一文件根据图形对象的数据源和图形格式信息得到,第二文件对第一文件进行渲染得到,保证了图形对象的信息完整性,使得预设服务器导出的第二文件的导出效果与待导出页面的显示效果保持一致。另一方面,通过命令实现第二文件的批量导出,提高了图像对象的导出效率。

附图说明

[0041] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042] 图1是本发明一个实施例提供的实现后台图像数据导出的方法的流程示意图;
[0043] 图2是本发明另一个实施例提供的待导出页面上的图形对象的示意图;
[0044] 图3是本发明另一个实施例提供的按照本实施例提供的方法,预设服务器导出的图形对象的示意图;
[0045] 图4是本发明另一个实施例提供的实现后台图像数据导出的装置的结构示意图;
[0046] 图5是本发明另一个实施例提供的电子设备的结构框图。

具体实施方式

[0047] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048] 图1是本实施例提供的一种实现后台图像数据导出的方法的流程示意图,参见图1,该方法包括:
[0049] 101:创建由待导出页面访问预设服务器的访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息;
[0050] 102:根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令;
[0051] 103:按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出;
[0052] 其中,所述图形格式信息包括所述图形对象的样式、尺寸和长宽比,所述命令包括所述图形格式信息、所述存放路径和关于对所述第一文件进行渲染的渲染信息。
[0053] 需要说明的是,本实施例提供的方法由服务器执行。访问路径可以通过安装在预设服务器上的wkhtmltox插件实现,本实施例对此不做具体限制。图形对象为显示在待导出页面上的图形,例如,图2中示出的待导出页面中包括了四幅图形对象。数据源是用于恢复图形对象的数据,例如,数据源是图形对象每一像素点的值。图形格式信息包括图形对象的图形样式、长宽比例等。
[0054] 本实施例提供了一种实现后台图像数据导出的方法,该方法创建待导出页面和预设服务器的访问路径,通过该访问路径将获取待导出页面的每一图形对象的数据源和图形格式信息。根据数据源和图形格式信息生成对应于图形对象的静态页面,并按照访问路径存储到预设服务器中,同时生成预设服务器导出该静态页面的命令。预设服务器要将待导出页面的图形对象导出时,根据该命令对静态页面中对应于该图形对象的第一文件进行渲染,得到第二文件,然后按照命令中的存放路径将第二文件导出。该方法通过访问路径将每一图形对象对应的静态页面存储到预设服务器中,并生成导出该静态页面的命令,预设服务器根据该命令即可对每一静态页面中第一文件进行渲染,得到第二文件,将第二文件导出。第一文件根据图形对象的数据源和图形格式信息得到,第二文件对第一文件进行渲染得到,保证了图形对象的信息完整性,使得预设服务器导出的第二文件的导出效果与待导出页面的显示效果保持一致。另一方面,通过命令实现第二文件的批量导出,提高了图像对象的导出效率。
[0055] 更进一步地,在上述实施例基础上,所述创建由待导出页面访问预设服务器访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息,包括:
[0056] 通过安装在所述预设服务器上的wkhtmltox创建所述访问路径,并通过所述wkhtmltox获取所述待导出页面上的每一图形对象对应的所述数据源和所述图形格式信息。
[0057] wkhtmltox是一种功能强大的开源工具,可以将任何一个可以在浏览器中渲染的页面转换成图像或者pdf文件,而且通过cmd命令批处理,在后台独立运行,保证前后台导出结果一致。根据预设服务器的操作系统,在预设服务器上安装与该操作系统匹配的wkhtmltox。
[0058] 本实施例提供了一种实现后台图像数据导出的方法,该方法通过wkhtmltox实现访问路径的建立,以及图形对象的数据源和图形格式信息的获取。该方法使后台各类图形样式导出过程归一化。使用wkhtmltox工具,直接可以将渲染在页面上的图形以类似截屏的方式导出,不需要对每种图形样式单独处理,节约了开发成本,以较少的代码行就能完整实现所有图形样式的导出,大大提升了导出效率。
[0059] 更进一步地,在上述各实施例基础上,所述根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令,包括:
[0060] 根据所述数据源和所述图形格式信息生成所述第一文件,得到包含了所述第一文件的所述静态页面;
[0061] 按照所述访问路径将所述静态页面存储到所述预设服务器的预设存储位置,通过所述wkhtmltox生成导出所述静态页面的cmd命令,作为导出所述静态页面的命令;
[0062] 其中,所述第一文件为html文件。
[0063] 需要说明的是,预设服务器执行cmd命令导出第二文件时,启动新的进程。
[0064] 本实施例提供了一种实现后台图像数据导出的方法,该方法通过cmd命令字符串实现静态页面的导出,操作更加简单易行,且导出效率、图片质量上都有了很大提升。
[0065] 更进一步地,在上述各实施例基础上,所述按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出,包括:
[0066] 循环执行文件导出操作,直到导出每一所述图形对象对应的第一文件,其中,所述文件导出操作包括:
[0067] 从所述预设存储位置获取任一静态页面,作为目标静态页面,并获取对应于所述目标静态页面的cmd命令,作为目标cmd命令;
[0068] 根据所述cmd命令判断是否对所述目标静态页面中的目标第一文件进行渲染,若是,对所述目标第一文件进行渲染,得到对应于所述目标第一文件的目标第二文件,否则,将所述目标第一文件作为所述目标第二文件;
[0069] 根据所述目标cmd命令中的用于存放所述目标第二文件的存放路径,将所述目标第二文件导出到预设的Excel文件中,并将所述目标静态页面从所述预设存储位置删除;
[0070] 其中,所述第二文件的格式为图像文件或者PDF文件。
[0071] 本实施例提供了一种实现后台图像数据导出的方法,该方法通过使用wkhtmltox插件实现后台图片导出的方法,有效避免了因不同绘制机制带来的结果差异,使定时任务生成的文件也能做到与前台界面保持“所见即所得”的展示效果,从而保证了前后台导出效果的一致性。该方法使用wkhtmltox插件实现后台图片导出的方法,能很好适应这种扩展,即便后续定制再多的图形样式,也不需要增加额外的代码,表现出很好的通用性和适应性。
[0072] 作为一种更为具体的实施例,本实施例提供的方法包括:
[0073] (1)预设服务器上安装wkhtmltox工具。
[0074] 具体地,到官方下载wkhtmltox工具包,并在预设服务器上进行安装。注意不同的操作系统需下载不同的安装包。在服务器上创建一个web能访问到的路径,作为指定路径(访问路径),用于存放程序临时生成的html文件。
[0075] (2)分解界面上的每个图形对象,获取各自的数据源,以及获取各图形对象的展现形式,如图形样式、长宽比例等。
[0076] (3)后台程序(预设服务器上的程序)在指定路径下生成一个临时的静态html页面(静态页面),页面中只渲染一个图形,该图形的样式和数据源都和系统前台界面保持一致。
[0077] (4)生成要执行的cmd命令字符串。
[0078] (5)启动新的进程调用cmd命令。
[0079] (6)在指定路径下生成导出图片,删除临时html页面。
[0080] (7)循环(3)-(6)步骤操作多次,直至导出界面中的所有图像。
[0081] (8)生成Excel文件,将指定路径下导出的所有图像写到Excel文件中。
[0082] 同样,使用相同方式可以生成pdf文件或其他文件格式。
[0083] 或者,按照以下所述的方法将待导出页面中的图像对象导出,具体包括:
[0084] (1)到官方下载wkhtmltox工具包,并在服务器(预设服务器)上进行安装。注意不同的操作系统需下载不同的安装包。
[0085] (2)在服务器上创建一个web(待导出页面)能访问到的路径,用于存放程序临时生成的html文件(第一文件)。
[0086] (3)开始具体的导出操作。假设有一个报表定时任务,前台(待导出页面)预览结果如图2所示。后台(预设服务器)定时任务生成的报表结果也将要和图2效果一致。循环界面上的每一个图形组件,记录其样式、大小(图形格式信息)及数据源。
[0087] (4)生成临时html文件。针对每一个要导出的图形,利用(3)中获取的数据源及样式,单独的渲染在一个静态页面中。该页面用程序自动生成,保存在事先创建的临时路径下面,命名为具体elementid+.html的格式。
[0088] (5)生成wkhtmltox工具导出图片要用的命令字符串,命令中包含导出的格式、存放的路径、图片的长宽大小,是否延迟渲染等参数,对渲染在静态页面中的图片进行导出。
[0089] (6)后台程序启用新的进程执行(5)步骤生成的命令。
[0090] (7)循环导出每一张图片,直到所有图片导出完毕后,再将这些图片按照页面上的顺序整合到Excel文件中。导出的图片如图3所示,可以看出,通过本实施例提供的实现后台图像数据导出的方法,图3中预设服务器导出的文件很好保持了和图2中待导出页面的一致性。
[0091] (8)Excel文件成功生成后,删除临时路径下的所有html文件。
[0092] 本实施例提供的方法使后台各类图形样式导出过程归一化。因系统里涉及多种图形样式,如线图、柱图、柱线图、饼图、面积图等,如果使用类似Jfreechart的类库实现,每种图形都要写对应的导出程序,代码繁琐且实现复杂。使用wkhtmltox工具,直接可以将渲染在页面上的图形以类似截屏的方式导出,不需要对每种图形样式单独处理,节约了开发成本,以较少的代码行就能完整实现所有图形样式的导出,大大提升了导出效率。
[0093] 保证了前后台导出效果的一致性。fusionchart组件给用户提供了良好的视觉感受,但其不支持后台导出,而使用其他类库接口实现的后台导出都无法做到与界面展示完全一致,显示风格还大相径庭。通过使用wkhtmltox插件实现后台图片导出的方法,有效避免了因不同绘制机制带来的结果差异,使定时任务生成的文件也能做到与前台界面保持“所见即所得”的展示效果。
[0094] 能很好适应后续系统中图表的定制扩展。PM系统现已固化实现了多种常用图表,覆盖大部分业务场景,但为了满足海外各运营商不同的业务需求,系统也预留了扩展接口,支持图表的定制扩展。使用wkhtmltox插件实现后台图片导出的方法,能很好适应这种扩展,即便后续定制再多的图形样式,也不需要增加额外的代码,表现出很好的通用性和适应性。
[0095] 图4示出了本发明的实施例提供的一种实现后台图像数据导出的装置的结构框图,参见图4,本实施例提供的实现后台图像数据导出的装置,包括创建模块401、存储模块402和导出模块403,其中,
[0096] 创建模块401,用于创建由待导出页面访问预设服务器的访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息;
[0097] 存储模块402,用于根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令;
[0098] 导出模块403,用于按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出;
[0099] 其中,所述图形格式信息包括所述图形对象的样式、尺寸和长宽比,所述命令包括所述图形格式信息、所述存放路径和关于对所述第一文件进行渲染的渲染信息。
[0100] 本实施例提供的实现后台图像数据导出的装置适用于上述实施例中提供的实现后台图像数据导出的方法,在此不再赘述。
[0101] 本发明的实施例提供了一种实现后台图像数据导出的装置,该装置创建待导出页面和预设服务器的访问路径,通过该访问路径将获取待导出页面的每一图形对象的数据源和图形格式信息。根据数据源和图形格式信息生成对应于图形对象的静态页面,并按照访问路径存储到预设服务器中,同时生成预设服务器导出该静态页面的命令。预设服务器要将待导出页面的图形对象导出时,根据该命令对静态页面中对应于该图形对象的第一文件进行渲染,得到第二文件,然后按照命令中的存放路径将第二文件导出。该装置通过访问路径将每一图形对象对应的静态页面存储到预设服务器中,并生成导出该静态页面的命令,预设服务器根据该命令即可对每一静态页面中第一文件进行渲染,得到第二文件,将第二文件导出。第一文件根据图形对象的数据源和图形格式信息得到,第二文件对第一文件进行渲染得到,保证了图形对象的信息完整性,使得预设服务器导出的第二文件的导出效果与待导出页面的显示效果保持一致。另一方面,通过命令实现第二文件的批量导出,提高了图像对象的导出效率。
[0102] 第三方面,图5是示出本实施例提供的电子设备的结构框图。
[0103] 参照图5,所述电子设备包括:处理器(processor)501、存储器(memory)502、通信接口(Communications Interface)503和总线504;
[0104] 其中,
[0105] 所述处理器501、存储器502、通信接口503通过所述总线504完成相互间的通信;
[0106] 所述通信接口503用于该电子设备和待导出页面对应的设备的通信设备之间的信息传输;
[0107] 所述处理器501用于调用所述存储器502中的程序命令,以执行上述各方法实施例所提供的方法,例如包括:创建由待导出页面访问预设服务器的访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息;根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令;按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出;其中,所述图形格式信息包括所述图形对象的样式、尺寸和长宽比,所述命令包括所述图形格式信息、所述存放路径和关于对所述第一文件进行渲染的渲染信息。
[0108] 第四方面,本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机命令,所述计算机命令使所述计算机执行上述各方法实施例所提供的方法,例如包括:创建由待导出页面访问预设服务器的访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息;根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令;按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出;其中,所述图形格式信息包括所述图形对象的样式、尺寸和长宽比,所述命令包括所述图形格式信息、所述存放路径和关于对所述第一文件进行渲染的渲染信息。
[0109] 本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序命令,当所述程序命令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:创建由待导出页面访问预设服务器的访问路径,并获取所述待导出页面上的图形对象,针对每一所述图形对象,获取所述图形对象的数据源和图形格式信息;根据所述数据源和所述图形格式信息生成对应于所述图形对象的第一文件,得到包含所述第一文件的静态页面,将所述静态页面按照所述访问路径进行存储,并生成导出所述静态页面的命令;按照所述命令对所述静态页面中的所述第一文件进行渲染,得到第二文件,并根据所述命令中的用于存储所述第二文件的存放路径将所述第二文件导出;其中,所述图形格式信息包括所述图形对象的样式、尺寸和长宽比,所述命令包括所述图形格式信息、所述存放路径和关于对所述第一文件进行渲染的渲染信息。
[0110] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序命令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0111] 以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0112] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0113] 最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。