本发明涉及ofd文件阅读领域,特别一种基于浏览器的ofd文件阅读方法。
背景技术:
目前针对ofd文件这一特定格式的文件阅读时必须依赖插件或者客户端,否则无法进行正常阅读。如何在常见的浏览器中阅读,在不依赖任何插件的条件下就进行迅捷的阅读是一个非常值得研究的技术问题。
技术实现要素:
本发明的目的提供一种基于浏览器的ofd文件阅读方法,解决上述技术问题中的一个或多个。
本发明提出一种基于浏览器的ofd文件阅读方法,包括如下步骤:
解析获取文件资源,获取ofd文件,将ofd文件解压,获取文件资源;
转成json,读取文件资源中的文件,将xml文件转成json数组;
解析json数组的文件数据获取页面基本属性和文字内容样式属性;
根据页面基本属性和文字内容样式属性,绘制canvas及dom树;
绘制生成html页面进行展示。
在某些实施方式中,解析获取文件资源的方法具体为:
接收ofd文件;
将ofd文件后缀名称.ofd修改为.zip,得到zip文件;
对zip文件进行文件解压,得出对应的ofd文件解压后的文件夹,即文件资源。
在某些实施方式中,转成json的方法具体为:
读取文件资源的所有文件,包括publicres.xml和pages文件夹;
读取每一个pages文件夹下的page_n文件的页码信息和content.xml文件的内容信息,并建立相应的页面路径,page_n中的n是ofd文件的页码,page_n下的content.xml文件是ofd文件夹中对应每一页ofd文件的内容;
将publicres.xm以及每个page_n下的content.xml文件合并转换成json数组。
在某些实施方式中,publicres.xml为字体配置信息,pages文件夹是页面内容。
在某些实施方式中,根据页面基本属性和文字内容样式属性,绘制canvas及dom树具体方式为:
根据页面基本属性绘制canvas;
根据文字内容样式属性生成div,构建dom树的树状结构。
在某些实施方式中,页面基本属性包括页面所需字体和页面基本尺寸大小。
在某些实施方式中,文字内容样式属性包括边界、字体、字号大小、相对位置、横轴位移以及文字内容。
在某些实施方式中,相对位置包括矢量x的坐标和矢量y的坐标。
在某些实施方式中,绘制生成html页面的方法具体为:
根据dom树获取呈现树节点,根据每一个呈现树节点,在canvas上按照文字内容样式属性绘制生成html文件。
本发明所述的一种基于浏览器的ofd文件阅读方法的优点为:
1、不破坏原始ofd文件,能将ofd文件无偏差展示;
2、不需要安装任何插件及控件;
3、兼容性好,能够适用于市面上的各种浏览器。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于展示出优选实施方式的目的,而并不认为是对本发明的限制。在附图中:
图1为本发明实施例一的基于浏览器的ofd文件阅读方法的流程框图。
具体实施方式
下面按照参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开。
详细介绍本发明实施例提供的一种基于浏览器的ofd文件阅读方法。
参照图1示出的基于浏览器的ofd文件阅读方法的流程框图,本实施例提出一种基于浏览器的ofd文件阅读方法,包括如下步骤:
步骤1、解析获取文件资源,具体包括:
步骤11、接收ofd文件;
步骤12、将ofd文件后缀名称.ofd修改为.zip,得到zip文件;
步骤13、对zip文件进行文件解压,得出对应的ofd文件解压后的文件夹;
步骤2、读取文件资源中的文件,将文件资源中的xml文件转成json数组,具体包括:
步骤21、读取文件资源的所有文件;publicres.xml为字体配置信息,pages文件夹是页面内容;
步骤22、读取每一个pages文件夹下的page_n文件的页码信息和content.xml文件的内容信息,并建立相应的页面路径,page_n中的n是ofd文件的页码,page_n下的content.xml文件是ofd文件夹中对应每一页ofd文件的内容;
步骤23、将publicres.xm以及每个page_n下的content.xml文件合并转换成json文件;
步骤3、获取页面基本属性和文字内容样式属性,页面基本属性包括页面所需字体和页面基本尺寸大小;
文字内容样式属性包括边界、字体、字号大小、相对位置、横轴位移以及文字内容;
获取页面基本属性和文字内容样式属性的方法具体包括:
步骤31、解析json数组的文件数据;
步骤32、获取json数组中的ofd:font、ofd:area、ofd:textobjects以及ofd:textcode,根据ofd:font获取页面所需字体,根据ofd:area获取页面基本尺寸大小,根据ofd:textobjects中的boundary、font、size分别获取边界、字体、字号大小;根据ofd:textcode中的x和y获取相对位置中的矢量x的坐标和矢量y的坐标;根据ofd:textcode中的deltax获取横轴位移,同时根据ofd:textcode获取文字内容;
步骤4、根据页面基本属性和文字内容样式属性,绘制canvas及dom树,具体操作如下:
根据ofd:area设置页面pagesize,绘制canvas;
根据ofd:textobject中font值在ofd:font中选择字体,根据ofd:textobject中size值设置字体大小,根据ofd:textobject中boundary值设置div相对于页面的top、left值,根据ofd:textcode中的x、y设置文字相对父级div的位置,根据ofd:textcode中的deltax设置每个文字的相对偏移,生成新的div,构建dom树的树状结构;
步骤5、根据dom树获取呈现树节点,再根据每一个呈现树节点,在canvas上按照文字内容样式属性绘制生成html文件展示出来。
以上所述仅是本发明的优选方式,应当指出,对于本领域普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干相似的变形和改进,这些也应视为本发明的保护范围之内。
1.一种基于浏览器的ofd文件阅读方法,其特征在于,包括如下步骤:
解析获取文件资源,获取ofd文件,将ofd文件解压,获取文件资源;
转成json,读取文件资源中的文件,将xml文件转成json数组;
解析json数组的文件数据,获取页面基本属性和文字内容样式属性;
根据页面基本属性和文字内容样式属性,绘制canvas及dom树;
绘制生成html页面进行展示。
2.根据权利要求1所述的一种基于浏览器的ofd文件阅读方法,其中,所述解析获取文件资源的方法具体为:
接收ofd文件;
将ofd文件后缀名称.ofd修改为.zip,得到zip文件;
对zip文件进行解压,得出对应的ofd文件解压后的文件夹,即文件资源。
3.根据权利要求1所述的一种基于浏览器的ofd文件阅读方法,其中,所述转成json的方法具体为:
读取文件资源的所有文件,包括publicres.xml和pages文件夹;
读取每一个pages文件夹下的page_n文件的页码信息和content.xml文件的内容信息,并建立相应的页面路径,page_n中的n是ofd文件的页码,page_n下的content.xml文件是ofd文件夹中对应每一页ofd文件的内容;
将publicres.xm以及每个page_n下的content.xml文件合并转换成json数组。
4.根据权利要求3所述的一种基于浏览器的ofd文件阅读方法,其中,所述publicres.xml为ofd文件字体配置信息,pages文件夹为ofd文件页面内容。
5.根据权利要求1所述的一种基于浏览器的ofd文件阅读方法,其中,根据页面基本属性和文字内容样式属性,绘制canvas及dom树具体方式为:
根据页面基本属性绘制canvas;
根据文字内容样式属性生成div内容,构建dom树的树状结构。
6.根据权利要求1或5所述的一种基于浏览器的ofd文件阅读方法,其中,所述页面基本属性包括页面所需字体配置信息和页面基本尺寸大小。
7.根据权利要求1或5所述的一种基于浏览器的ofd文件阅读方法,其中,所述文字内容样式属性包括边界、字体、字号大小、相对位置、横轴位移以及文字内容。
8.根据权利要求7所述的一种基于浏览器的ofd文件阅读方法,其中,所述相对位置包括矢量x的坐标和矢量y的坐标。
9.根据权利要求1所述的一种基于浏览器的ofd文件阅读方法,其中,所述绘制生成html页面的方法具体为:
根据dom树获取呈现树节点,根据每一个呈现树节点,在canvas上按照文字内容样式属性绘制生成html文件。
技术总结