CN105302550A - 将页面转为版式数据流文件的方法及系统 - Google Patents
将页面转为版式数据流文件的方法及系统 Download PDFInfo
- Publication number
- CN105302550A CN105302550A CN201510658731.XA CN201510658731A CN105302550A CN 105302550 A CN105302550 A CN 105302550A CN 201510658731 A CN201510658731 A CN 201510658731A CN 105302550 A CN105302550 A CN 105302550A
- Authority
- CN
- China
- Prior art keywords
- page
- data stream
- file
- format data
- stream file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开一种将页面转为版式数据流文件的方法,包括:A、将加载的页面重绘并进行坐标体系转换;B、根据重绘的页面中的表单元素生成页面表单元素的集合,并将页面表单元素的集合转换成版式数据流文件表单元素的集合;C、对重绘的页面进行转换,生成版式数据流文件表单框架元素;D、根据版式数据流文件表单元素的集合和版式数据流文件表单框架元素生成版式数据流文件输出。本发明结合html表单和pdf表单的特点,创建一种既具有pdf表单固定版式、可手写、多种元素并存的特性,又具有html表单可选可填可操作特性的文件系统,并可以适配不同分辨率的智能移动终端设备。
Description
技术领域
本发明涉及电子文件存储和格式交换领域,尤其涉及一种将页面转为版式数据流文件的方法及系统。
背景技术
现有电子表单处理主要分为html表单和pdf表单,它们各有优缺点。html表单是BS系统中常用的数据交互操作方式,主要通过鼠标和键盘进行数据的输入,通过html标签实现数据的输出和显示。但html表单无法固定版式,数据和附件元素分离,不利于一次性保存和传输,运行依赖于BS系统,无法单独存在。由于html表单人机交互方式及元素构成的限制无法完全利用现代交互技术,实现更优越的用户体验。
pdf表单具有原版原式的特点,可以包含多种元素内容,支持简单的脚本功能,作为一个单一文件,方便存储和传输,可以单独流转运行。但是pdf与系统集成比较复杂,需要第三方软件的支持,自动化程度低。
综合现有两种电子表单处理的方式,主要存在以下问题亟待解决:
html表单内容和数据分离,系统外存储和传输不方便;
html表单可包含的内容不够丰富,只能以附件方式引用;
html表单没有内置的安全措施,依赖于BS系统;
pdf表单制作比较困难,实施成本高;
pdf表单编辑技术复杂,与系统集成困难;
pdf表单无法动态拆分合并。
发明内容
本发明的目的是解决或克服现有技术的上述缺陷中的一个或多个。
根据本发明的一个方面,提供了一种将页面转为版式数据流文件的方法。该方法结合版式文件(即pdf表单文件)和流式文件(即html表单页面)特征,创建一种既具有pdf表单固定版式、可手写、多种元素并存的特性,又具有html表单可选可填可操作特性的文件系统,并可以适配不同分辨率的智能移动终端设备。该方法包括:
A、将加载的页面重绘并进行坐标体系的转换;
B、根据重绘的页面中的表单元素生成页面表单元素的集合,并将页面表单元素的集合转换成版式数据流文件表单元素的集合;
C、对重绘的页面进行转换,生成版式数据流文件表单框架元素;
D、根据版式数据流文件表单元素的集合和版式数据流文件表单框架元素生成版式数据流文件输出。
通过该方法,可以将html表单页面转换为一种结合html表单和pdf表单特征的新型电子纸文件(即版式数据流文件)。转换后的文件,表单和内容元素合为一体,既可以方便的进行拆分合并,也可以设定权限实现文件不可篡改,并且元素内容结构化,可实现增量修改传输和分布式存储。
在一些实施方式中,步骤A包括:加载页面,根据设定的容器大小重绘页面;将重绘的页面的坐标体系转换为版式数据流文件的坐标体系;根据转换后的坐标体系,确定重绘的页面在版式数据流文件格式下的单页面高度和总页码数。由于html表单是单页面的,高度一般根据显示器屏幕和分辨率的大小进行相应调整(自适应),而版式数据流文件是采用标准A4纸的固定宽高比,将网页实际坐标映射到A4纸尺寸的坐标,根据映射后的单页面高度和总页码数就可以实现对表单的分页操作,使表单页面能够适用不同分辨率的移动终端设备,在任何终端都不跑版。
在一些实施方式中,步骤B可包括:获取重绘的页面中的所有表单元素,将所有表单元素生成页面表单元素的集合;遍历页面表单元素的集合,将每个表单元素分别序列化成对象模型,获取每个表单元素的属性,保存到对象模型中;确定每个表单元素在版式数据流文件中的页码,保存到对象模型中;合并选择类型的表单元素,根据选择类型增加功能区分属性;保存对象模型,以生成版式数据流文件表单元素的集合。由此,将表单元素序列化为对象存储,实现文件元素内容的结构化,使html表单元素内容以对象方式存储,表单内容的变化不会影响结构的变化,可动态的对内容进行增量式的修改。并且新的文件表单元素直接由html转换而来,最大程度的保留了html特性和功能。
在一些实施方式中,步骤C可包括:遍历页面表单元素的集合,将集合中的表单元素从重绘的页面移除,形成空白的页面基底元素;对页面基底元素进行像素转换,形成版式基底文件;将版式基底文件转换为版式数据流文件表单框架元素。由此,将html的各表单元素的实际像素位置和响应区域,转换成版式数据流文件固定版式中的比例,便于矢量的缩放,使表单元素能够根据设备实际分辨率的大小进行缩放显示。
在一些实施方式中,像素转换可包括:获取重绘的页面中所有可视元素的坐标和宽高,放入一个数据集合;根据坐标和宽高对集合中的元素进行遍历排序和分组,形成像素二维矩阵;根据像素二维矩阵生成比例二维矩阵。由此实现元素网页像素位置到版式数据流文件显示比例的转换。
在一些实施方式中,步骤D可包括:根据文件标准创建空白的版式数据流文件;将版式数据流文件表单框架元素和版式数据流文件表单元素的集合依次添加到空白的版式数据流文件;将完成添加的版式数据流文件以压缩格式存储;解析版式数据流文件,绘制输出版式数据流文件页面,形成可交互的操作界面。由此,实现html表单页面到版式数据流文件的转换,转换后的数据存储采用类zip压缩包,将数据和内容元素如表单、脚本、附件资源等合为一体进行存储,便于拆分合并和解析,可实现文件的分布式存储。
在一些实施方式中,文件标准可包括:版式数据流文件采用“容器+文件”的方式描述和存储数据,文件物理包结构由文件描述头、文件树结构描述文件、文件内容对象包和资源对象包组成,其中
文件描述头由固定的字节结构组成,设置为描述文件的基本信息;
文件树结构描述文件包含多个目录对象,设置为描述文件的基础信息和页面信息;
文件内容对象包包含多个页面对象,设置为将文件内容流以页为单位分块存储,线性化文件内容的读取和解析;
资源对象包包含文件内所有附件资源的内容流,设置为将附件资源以文件为单位分块存储,线性化附件资源的读取和解析。
通过本发明描述和使用的文件标准和接口设定,可以很容易实现html表单和版式数据流文件的相互转换,很容易便可实现与系统的集成。尤其是JSON作为数据交换标准,易于解析,对集成更加友好。
在一些实施方式中,文件的基本信息可包括:文件类型、版本号、完整性校验算法、完整性校验码、加密类型、密匙长度、密匙内容、偏移位长度及第一个对象位置。在文件标准中设置内置安全措施,可以实现文件在浏览器端的加密传输,为文件提高独立于BS系统的安全性保护。
在一些实施方式中,解析版式数据流文件,绘制输出版式数据流文件页面的步骤包括:根据版式数据流文件表单框架元素的节点,加载表单底层框架文件;根据版式数据流文件表单元素的集合中的元素信息,将元素动态绘制于表单底层框架文件上,形成可交互的操作界面。由此,绘制后的新页面由于采用版式数据流文件结构化存储和分页操作的特性,能够实现不跑版显示。同时,由于保存各表单元素的属性,绘制后的表单页面又具有html页面可操作的特点。且,版式数据流文件增加了新的显示处理方式,能够同时支持传统的鼠标键盘输入,和智能移动设备的拍照、录音及手写签批的特性,极大的改善用户体验。
根据本发明另一方面,还提供了一种将页面转为版式数据流文件的系统,包括预处理模块、表单元素抽取模块、表单基底生成版式文件模块、版式数据流文件合成模块及解析模块,其中
预处理模块设置为接收页面输入,重绘页面并确定其页码数;
表单元素抽取模块设置为抽取页面中的表单元素生成页面表单元素的集合,并将页面表单元素的集合转换为版式数据流文件表单元素的集合;
表单基底生成版式文件模块设置为根据页面表单元素的集合移除页面中的所有元素形成空白的页面基底元素,对页面基底元素进行像素转换生成版式基底文件,并将版式基底文件转换为版式数据流文件表单框架元素;
版式数据流文件合成模块设置为根据版式数据流文件表单元素的集合和版式数据流文件表单框架元素生成版式数据流文件并保存;
解析模块设置为解析保存的版式数据流文件,绘制输出版式数据流文件页面,形成可交互的操作界面。
通过该系统可以将html表单转换为一种融合电子表单和纸质表单特征的新文件系统,转换后的文件系统,表单和内容元素合为一体,既可以方便的进行拆分合并,也可以设定权限实现文件不可篡改;元素内容结构化,可实现增量修改传输,可实现分布式存储的文件特性。
附图说明
图1为本发明一实施方式的将页面转为版式数据流文件的系统中各模块的数据流关系示意图;
图2为本发明一实施方式的将页面转为版式数据流文件的方法的流程图;
图3为图2所示方法中像素转换过程的流程图;
图4为本发明一实施方式的版式数据流文件的物理包结构图;
图5为图2所示方法中解析版式数据流文件绘制输出可交互操作界面的方法流程图。
具体实施方式
下面结合附图对本发明的实施方式作进一步详细的说明。
图1示意性地显示了根据本发明的一种实施方式的将页面转换为版式数据流文件的系统中包含的模块和各模块间的数据流关系。如图1所示,该系统包括预处理模块100、表单元素抽取模块101、表单基底生成版式文件模块102、版式数据流文件合成模块103及解析模块104。
当用户通过浏览器在设备上加载页面时,本系统首先将要加载的页面载入预处理模块100,预处理模块接收页面输入,按照设定的容器大小重绘页面并确定其页码数后,将页面交给表单元素抽取模块101进行页面中表单元素的抽取操作。该操作主要包括通过页面标准(如html的DOM树)进行解析以获取当前页面中的所有表单元素,例如页面中包括的input、radio、checkbox、textarea、select、button、file等表单元素,把它们全部提取出来,放入集合中,以生成页面表单元素集合,并将页面表单元素集合转换为版式数据流文件表单元素集合。表单基底生成版式文件模块102根据生成的页面表单元素集合,从当前加载的页面中移除所有元素,从而形成空白的页面基底元素,并将页面基底元素进行像素转换生成版式基底文件(即PDF基底文件),最后将该版式基底文件转换为版式数据流文件表单框架元素。版式数据流文件合成模块103根据生成的版式数据流文件表单元素集合和版式数据流文件表单框架元素生成版式数据流文件并以二进制文件的形式保存(即保存为类zip压缩包)。解析模块104解析保存的版式数据流文件,绘制输出版式数据流文件页面,形成可交互的操作界面到用户的设备。
本系统中使用的预处理模块100是A4BOX,A4BOX是基于WEBKIT内核开发的一个功能模块,主要用于解决html页面无可视界面的渲染问题,执行元素坐标获取和转换。通过上述系统各模块的处理,用户的设备终端加载显示出的页面就由传统的html表单页面转换为一种结合版式文件和流式文件特点的版式数据流文件页面,该文件页面既具有PDF表单固定版式、可手写及多种元素并存的特性,又具有页面表单(即html表单)可编辑(即可选可填)的操作特性,并且能够适用不同分辨率的智能移动终端设备,不会因为分辨率而跑版。
图4示意性地显示了本发明一实施方式的版式数据流文件的物理包结构。该文件是采用“容器+文件”的方式来描述和存储数据的。容器是一个虚拟存储系统,可将各类数据描述文件组织起来,并提供特定的访问控制接口。数据描述采用JSON技术,可将版式信息和内容封装为文档对象,然后通过压缩放入容器中。
如图4所示,本发明中的版式数据流文件400文件包的基本结构由文件描述头(Header)401、文件树结构描述文件(Contents)402、文件内容对象包(Pages)403及资源对象包(Resources)404组成。其中,文件头401部分是非对象模型(JSON技术中的Object对象,例如本实施例中取名为ObjStream的对象),而是由固定的字节结构组成,描述了文件类型、版本号、加密方式(如包括加密类型、密匙长度及密匙内容)、文件完整性校验(如包括完整性校验算法、完整性校验码)、偏移位长度及第一个对象位置等等一些最基本的信息。而版式数据流文件400的文档结构部分由文件树结构描述文件(Contents)402、文件内容对象包(Pages)403及资源对象包(Resources)404三部分组成,每个部分都由多个包4000组成,而每个包4000中又包含多个对象(即ObjStream)40001。
如图4所示,ObjStream对象中包括对象ID(即ObjID,长度32位,不足时补0)、对象校验码(即CheckSum,对象内容的校验值)、对象内容的长度(即BitSize,空对象则设置为0)及对象内容(即BitStream,空对象则为空)。版式数据流文件400的每个文档部分都可以独立处理,而三个文档部分相互之间通过对象ID进行链接。
其中,文件树结构描述文件402部分为目录对象(如对象名称为contents),由多个目录对象包组成,主要描述了文件的基础信息(如文件目录、文字样式、附件资源等)和页面信息。系统优先加载目录对象的内容,然后根据里面的页面信息部分进行页面展示。在这样的方式下,系统无需加载整个文件所有对象即可实现增量式的显示,占用极少的内存和资源。
文件内容对象包403部分为文件内容流,以页为单位分块存储了文件内容,从而线性化内容的读取和解析,即将文件内容以页为单位串联起来,每页都为一个完成的对象,程序无需加载全部页的内容进行解析,只需读取其中一页即可进行解析。整个过程如影片的时间线一样,每个时间点都是完整的画面。而这里线性对象的每一段都是一页的内容。每个页面对象(如对象名称为pages)由多个类型组成如PDF类型(以PDF文件作为页面基底的类型)和JSON类型(以JSON文件作为页面基底的自绘类型)等。系统加载时按页进行保存和展示,从而能够保证在不同分辨率下版式的固定。资源对象包404由各种文件组成,相当于资源文件夹,是文件内所有附件资源的内容流。该部分以文件为单位分块存储附件资源,线性化附件资源的读取和解析。该发明中的版式数据流文件即是在上述文件标准的基础上进行的文件格式处理和解析。整个文件采用类zip压缩包的方式进行存储(即文件IO操作)和组织,每个版式数据流文件包括一个文件(即Contents)、二个目录(即Pages和Resources)及目录下的若干文件(Page和现有文件图片、声音及视频等),将这些所有的文件按照基本物理包结构(具体内容见上述ObjStream对象描述的内容)描述的方式进行打包,然后将多个包合并存储,最后在合并存储好的文件流前面写入头部信息(Header)。
本发明的版式数据流文件,表单和内容元素合为一体,既可以方便的进行拆分合并,也可以设定权限实现文件不可篡改。并且,元素内容结构化,可实现增量修改传输和分布式存储。
图2示意性地显示了本发明一实施方式的将页面转为版式数据流文件的方法。以加载html页面为例,该方法包括:
步骤S201:将html表单页面载入预处理模块重绘页面。
以例如超链接(即URL)方式加载html表单页面(即网页页面)到预处理模块,其中预处理模块可以选用A4BOX以进行页面的重绘。其中,加载页面的方式也可以采用内容输入的方式,本发明优选采用超链接加载主要是为了实现程序的自动化处理,通过url直接获取要加载的页面,减少人工干预。
步骤S202:进行坐标转化,并及计算确定表单页码。
由A4BOX根据表单的属性(即weight、height、x、y属性),获取html表单的网页宽高和在网页坐标体系中的x和y坐标的值。然后根据版式数据流文件的坐标体系(以A4纸大小为标准宽高,以左上角为坐标原点,水平向右方向为x轴正向,垂直向下为y轴正向),对html表单进行固定比例的位置坐标计算,获取html表单在版式数据流文件坐标体系中的宽度(如取名为PW)和高度(如取名为PH)。之后通过转换后的表单宽度(PW)乘以标准A4纸的宽高比,即得到版式数据流文件的单页面高度(如取名为PH2)。将html表单网页下的高度(即height)和版式数据流文件的单页面高度(即PH2)进行除法运算并向上取值,即可获得版式数据流文件的总页码数。
步骤S203:抽取表单元素形成页面表单元素集合。
基于html标准(即DOM树)进行解析,获取当前页面中的所有html表单元素(如input、radio、checkbox、textarea、select、button、file等),放入集合中,形成页面表单元素集合(如取名为FS)。
步骤S204:序列化表单元素,生成版式数据流文件表单元素集合。
遍历表单元素集合(FS)为每个表单元素(如取名F)创建对应的Object对象。获取每个表单元素的属性,如类型(如input、checkbox、radio、textarea、select等)、状态(只读、读写等)、坐标、值及其他自定义属性的内容保存在创建好的Object对象中,从而将表单元素(F)序列化为Object对象。获取表单元素(F)的y属性的值(此时y已经是基于A4比例处理后的坐标),与单页面高度(即PH2)进行除法运算并向上取值(即如果有小数点,那么总页码数就是除法运算后得到的整数值部分+1,如4.3,则页码数为5页),以计算获得该表单元素(F)在版式数据流文件中的实际页码。将该属性的值添加到该表单元素(F)对应的Object对象中。将选择类型的表单元素(即checkbox、radio、select)进行合并,抽象为一种新的具有多选或单选类型的选择控件元素。方法可以是用一个标签来表示这三个元素。例如将选择类型的元素统一定义为select,通过功能区分属性如type属性区分各自的实际功能,程序渲染模块根据type去进行不同界面的绘制。将由表单元素序列化成的对应Object对象放入集合中,以形成版式数据流文件表单元素集合(如取名为trueform),而这个版式数据流文件表单元素集合其实就是Object集合,每个Object对应一个转换前的html表单元素。
需要说明的是,每个表单元素的类型、状态、坐标、值是四个标准属性,是必须有的。如果没有则按html语义标签的默认值进行对象序列化的赋值。
步骤S205:形成页面基底元素并进行像素转换,形成版式基底文件。
遍历表单元素集合(FS),将集合中的元素从html表单中移除,形成空白的表单页面基底元素(如取名NIF)。对表单页面基底元素(NIF)进行像素转换,形成版式基底文件(如取名PDF)。
图3示意性地显示了对表单页面基底元素(NIF)进行像素转换以形成版式基底文件(PDF)的方法流程。如图3所示,该方法包括:
步骤S301:获取html页面中所有可视元素的坐标和宽高,放入一个数据集合。
步骤S302:将元素按y坐标由小到大的顺序进行遍历排序。
步骤S303:以y坐标为依据进行分组,计算获得初始的像素二维矩阵的行数。
由于在程序解析html表单过程中,获取的坐标值可能会有极小的误差。所以在进行分组时,为每个元素设置一个隔值来过滤掉可能的误差,如取20像素的误差值,上下各10个像素。比如假设存在表单元素A和B在同一纬度(即同一行),获取到的y坐标分别为10和10.02。如果单纯以是否相等判断就会分组到不同的纬度(即不同的行),所以以误差隔值进行误差范围限定。当在隔值量级范围内就判断为同一行的元素。当前元素的y坐标+高度就是上一行的结束点,每超出一个误差隔值设定的量级(即20像素)就增加一个新的行,依次完成所有元素的计算得到初始的像素二维矩阵的行数。
步骤S304:将元素按x坐标由小到大的顺序进行遍历排序。
步骤S305:以x坐标为依据进行分组,计算获得初始的像素二维矩阵的列数。
为每个元素设置20像素的误差值,左右各10个像素,当前元素的x坐标+宽度就是上一列的结束点,每超出一个量级就是一个新的列,依次完成所有元素的计算得到初始的像素二维矩阵的列数。
步骤S305:依据像素二维矩阵创建新的二维矩阵。即创建一个与像素二维矩阵相同行数和列数的新二维矩阵。
步骤S306:遍历像素二维矩阵,根据每行每列每个矩阵节点的值计算出各矩阵元素所占整体行或列的百分比,存储到新的二维矩阵,形成比例二维矩阵。
通过以上步骤,像素二维矩阵中每一维存储的内容就是坐标点和宽高,比例二维矩阵每一维的内容就是坐标点和宽高相对于整体行和列的比例值(百分比),如像素二维矩阵第一行第一列中存储的[0,0,200,40]的内容,即表示该元素在页面的坐标为x=0,y=0,width=200,height=40,将这四个值转换为整体行或列的百分比,如得到比例矩阵中相应第一行第一列的内容[0,0,0.09,0.05],则表示该元素在页面中的位置比例为x=0,y=0,宽占列数的百分比为9%,高占总行数的百分比为5%,进行渲染时,根据设备显示页面的宽高大小将百分比转换为在新页面的位置和响应区域即可。
需要说明的是,20像素为参考间隔,也可以为其他误差值。
步骤S206:根据版式基底文件生成版式数据流文件表单框架元素。
经过像素转换获得的比例二维矩阵即为版式基底文件(PDF)。由于比例二维矩阵是纯粹的数值组合,没有任何样式。需要根据这个比例组合来生成线条集合,具体为以每个矩阵的左上角为原点,将比例矩阵中的数值转换为由属性定义的线条。如对比例矩阵元素[0,0,0.09,0.05],将其从单纯的比例数值增加对应的属性,对于其他属性赋予默认值,从而转化为以下的线条矩阵:
行:{type:“line”,x:0,y:0,w:0.09,h:0,color:‘’,style:“dotted”,alpha:1,radius”0}
列:{type:“line”,x:0,y:0,w:0,h:0.05,color:‘’,style:“dotted”,alpha:1,radius”0}
其中,数值不为0的单位为%,w或h为0则表示为1像素,否则按照比例根据页面大小进行计算获取。
由此,对版式基底文件中的所有比例数值进行转换后,即可得到线条集合即版式数据流文件表单框架元素(如取名truepaper)。
步骤S207:创建空白的版式数据流文件。
根据版式数据流文件的文件标准(见上面图4对版式数据流文件标准规定的文件格式和包结构),创建空白的版式数据流文件。
步骤S208:向版式数据流文件中写入数据并保存文件。
先将版式数据流文件表单框架元素(truepaper)添加到空白的版式数据流文件中,然后添加版式数据流文件表单元素集合(trueform)中的元素数据到版式数据流文件。将写入数据的版式数据流文件进行保存,这里的存储方式为二进制类zip压缩包存储,具体结合图4对存储的说明。
步骤S209:解析版式数据流文件,在表单页面上绘制元素生成可交互的操作界面。
系统调用存储的版式数据流文件进行加载。加载时为顺序加载,即按照容器-元素-媒体资源的层级进行解析加载,从而绘制出新的分页显示的表单页面。图5示意性地显示了本实施例中解析版式数据流文件,以绘制出可交互操作界面的方法流程。如图5所示,该方法包括:
步骤S501:顺序读取版式数据流文件表单框架元素(truepaper)中的节点,加载到程序显示视图上。这里需要说明的是,版式数据流文件表单框架元素中描述的线条集合,进行加载显示后,显示的是多层的一个布局方式,类似CSS合模型。
步骤S502:依次读取版式数据流文件表单元素集合(trueform)中的元素,判断集合中是否还有未读取的元素,如果有未读取的数据,则循环进行步骤S503至步骤S510,如果读取完,则到步骤S511。
步骤S503:根据版式数据流文件表单元素集合中的节点获取可操作元素对象。
步骤S504:读取当前元素的type属性,根据type属性确定元素的类型和显示处理方法(即判断元素是表单内容还是手写签批内容或图片音频附件内容)。这里需要说明的是,由于转换后的表单是支持移动端的,而移动端编辑后可能会包含照片、声音、视频、手写数据等内容,版式数据流的元素里面定义了这些类型,渲染模块将根据类型去进行解析处理。
步骤S505:读取当前元素的values属性,根据values属性确定元素的可选值(即选择型控件的下拉列表选项的内容,如对于性别选项的可选值包括“男”和“女”)。这里需要说明的是,当展示页面时,一些表单元素尤其是选择型控件,需要进行赋值后显示,而values是选择型控件的默认值来源,对于普通控件是通过value属性进行赋值。
步骤S506:读取当前元素的id属性,根据id属性确定元素的唯一性(即可通过id属性的值唯一的标示一个元素)。该属性的赋予是为了方便后续处理中,程序对元素对象和界面控件进行双向绑定,例如在页面上有一个input的表单元素,其id为“userID”,系统后台处理模块接收页面的元素数据后,就可以通过这个id与后台处理模块中的对象如user对象的相关属性关联起来从而获取页面输入进行处理,同理,也可以将后台存储模块中的数据输出到页面的相应表单元素显示给用户。
步骤S507:读取当前元素的name属性,根据name属性确定元素和数据源的绑定关系。
步骤S508:读取当前元素的x和y属性,根据x和y属性确定元素的坐标位置。
步骤S509:读取当前元素的weight和height属性,根据weight和height属性确定元素的响应区域。
步骤S510:根据上述各属性的值,将元素绘制到表单框架元素(truepaper)的上层(结合上面对表单框架元素的介绍,表单框架元素描述的是线条布局,画完线条布局后,就要在布局上绘制各个具体元素)。
步骤S511:完成版式数据流文件表单框架元素(truepaper)和版式数据流文件表单元素集合(trueform)中所有元素的绘制,显示可以操作的新页面(即基于版式数据流文件的表单页面)在用户终端设备上。
通过本发明的方法,可以将html表单页面转换为一种结合html表单和pdf表单特征的新型电子纸文件(即版式数据流文件)。转换后的文件,表单和内容元素合为一体,既可以方便的进行拆分合并,也可以设定权限实现文件不可篡改,并且元素内容结构化,可实现增量修改传输和分布式存储。新的版式数据流文件页面既可以实现分页显示以适用不同分辨率的智能移动终端设备,又增加定义了新的控件类型和显示处理方法,从而使新的页面既具有html表单页面的可操作性,又具有可手写签批、存储智能移动端的拍照、录音等功能。并且本发明提供的版式数据流文件的文件标准为集成提供了规则约定和接口设定,可以很容易与系统集成实现html表单和版式数据流文件的互相转换,用户体验好,成本相对pdf低很多。
以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (10)
1.将页面转为版式数据流文件的方法,包括:
A、将加载的页面重绘并进行坐标体系转换;
B、根据所述重绘的页面中的表单元素生成页面表单元素的集合,并将所述页面表单元素的集合转换成版式数据流文件表单元素的集合;
C、对所述重绘的页面进行转换,生成版式数据流文件表单框架元素;
D、根据所述版式数据流文件表单元素的集合和所述版式数据流文件表单框架元素生成版式数据流文件输出。
2.根据权利要求1所述的方法,其中,所述步骤A包括:
加载所述页面,根据设定的容器大小重绘所述页面;
将所述重绘的页面的坐标体系转换为版式数据流文件的坐标体系;
根据转换后的坐标体系,确定所述重绘的页面在版式数据流文件格式下的单页面高度和总页码数。
3.根据权利要求1所述的方法,其中,所述步骤B包括:
获取所述重绘的页面中的所有表单元素,将所述所有表单元素生成页面表单元素的集合;
遍历所述页面表单元素的集合,将每个表单元素分别序列化成对象模型,获取每个表单元素的属性,保存到所述对象模型中;
确定每个表单元素在所述版式数据流文件中的页码,保存到所述对象模型中;
合并选择类型的表单元素,根据选择类型增加功能区分属性;
保存所述对象模型,以生成所述版式数据流文件表单元素的集合。
4.根据权利要求1所述的方法,其中,所述步骤C包括:
遍历所述页面表单元素的集合,将集合中的表单元素从所述重绘的页面移除,形成空白的页面基底元素;
对所述页面基底元素进行像素转换,形成版式基底文件;
将所述版式基底文件转换为版式数据流文件表单框架元素。
5.根据权利要求4所述的方法,其中,所述像素转换包括:
获取所述重绘的页面中所有可视元素的坐标和宽高,放入一个数据集合;
根据所述坐标和宽高对所述集合中的元素进行遍历排序和分组,形成像素二维矩阵;
根据所述像素二维矩阵生成比例二维矩阵。
6.根据权利要求1所述的方法,其中,所述步骤D包括:
根据文件标准创建空白的版式数据流文件;
将所述版式数据流文件表单框架元素和所述版式数据流文件表单元素的集合依次添加到所述空白的版式数据流文件;
将完成所述添加的所述版式数据流文件以压缩格式存储;
解析所述版式数据流文件,绘制输出版式数据流文件页面,形成可交互的操作界面。
7.根据权利要求6所述的方法,其中,所述文件标准包括:所述版式数据流文件采用“容器+文件”的方式描述和存储数据,文件物理包结构由文件描述头、文件树结构描述文件、文件内容对象包和资源对象包组成,其中
所述文件描述头由固定的字节结构组成,设置为描述文件的基本信息;
所述文件树结构描述文件包含多个目录对象,设置为描述文件的基础信息和页面信息;
所述文件内容对象包包含多个页面对象,设置为将文件内容流以页为单位分块存储,线性化文件内容的读取和解析;
所述资源对象包包含文件内所有附件资源的内容流,设置为将附件资源以文件为单位分块存储,线性化附件资源的读取和解析。
8.根据权利要求7所述的方法,其中,所述文件的基本信息包括:文件类型、版本号、完整性校验算法、完整性校验码、加密类型、密匙长度、密匙内容、偏移位长度及第一个对象位置。
9.根据权利要求6所述的方法,其中,所述解析版式数据流文件,绘制输出版式数据流文件页面的步骤包括:
根据所述版式数据流文件表单框架元素的节点,加载表单底层框架文件;
根据所述版式数据流文件表单元素集合中的元素信息,将元素动态绘制于所述表单底层框架文件上,形成可交互的操作界面。
10.将页面转为版式数据流文件的系统,包括预处理模块、表单元素抽取模块、表单基底生成版式文件模块、版式数据流文件合成模块及解析模块,其中
所述预处理模块设置为接收页面输入,重绘所述页面并确定其页码数;
所述表单元素抽取模块设置为抽取所述页面中的表单元素生成页面表单元素集合,并将所述页面表单元素集合转换为版式数据流文件表单元素集合;
所述表单基底生成版式文件模块设置为根据所述页面表单元素集合移除所述页面中的所有元素形成空白的页面基底元素,对所述页面基底元素进行像素转换生成版式基底文件,并将所述版式基底文件转换为版式数据流文件表单框架元素;
所述版式数据流文件合成模块设置为根据所述版式数据流文件表单元素集合和所述版式数据流文件表单框架元素生成版式数据流文件并保存;
所述解析模块设置为解析所述保存的版式数据流文件,绘制输出版式数据流文件页面,形成可交互的操作界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510658731.XA CN105302550B (zh) | 2015-10-12 | 2015-10-12 | 将页面转为版式数据流文件的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510658731.XA CN105302550B (zh) | 2015-10-12 | 2015-10-12 | 将页面转为版式数据流文件的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302550A true CN105302550A (zh) | 2016-02-03 |
CN105302550B CN105302550B (zh) | 2019-03-26 |
Family
ID=55199848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510658731.XA Active CN105302550B (zh) | 2015-10-12 | 2015-10-12 | 将页面转为版式数据流文件的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302550B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843786A (zh) * | 2016-03-23 | 2016-08-10 | 江苏中威科技软件系统有限公司 | 一种用于版式文件展示的方法及装置 |
CN105868357A (zh) * | 2016-03-29 | 2016-08-17 | 凯里供电局 | 文件管控系统及方法 |
CN107346306A (zh) * | 2016-05-04 | 2017-11-14 | 北京京东尚科信息技术有限公司 | 网页描述方法和装置 |
CN107480121A (zh) * | 2017-09-04 | 2017-12-15 | 江苏中威科技软件系统有限公司 | 版式数据流表单的制作方法 |
CN107526619A (zh) * | 2017-09-04 | 2017-12-29 | 江苏中威科技软件系统有限公司 | 版式数据流文件的加载方式 |
CN107918933A (zh) * | 2017-11-28 | 2018-04-17 | 江苏中威科技软件系统有限公司 | 版式数据流文件测量的方法 |
CN107992456A (zh) * | 2017-11-27 | 2018-05-04 | 江苏中威科技软件系统有限公司 | 版式数据流文件多终端本地化闪存系统、方法及电子设备 |
CN108038426A (zh) * | 2017-11-29 | 2018-05-15 | 阿博茨德(北京)科技有限公司 | 一种提取文件中图表信息的方法及装置 |
CN108809514A (zh) * | 2018-04-23 | 2018-11-13 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
CN109033467A (zh) * | 2018-08-31 | 2018-12-18 | 北京京东金融科技控股有限公司 | 一种多选项目表单的压缩方法、装置、介质及电子设备 |
CN109445901A (zh) * | 2018-11-14 | 2019-03-08 | 江苏中威科技软件系统有限公司 | 一种跨文件格式的矢量图形工具的绘制方法及装置 |
CN109522539A (zh) * | 2018-11-26 | 2019-03-26 | 常诚 | 基于移动设备的pdf学术论文重排版系统及方法 |
CN110727469A (zh) * | 2018-06-29 | 2020-01-24 | 珠海市魅族科技有限公司 | 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质 |
CN111767254A (zh) * | 2020-07-07 | 2020-10-13 | 江苏中威科技软件系统有限公司 | 基于版式数据流文件技术的多文件阅读装置及其方法 |
CN112036123A (zh) * | 2020-08-31 | 2020-12-04 | 北京奇虎鸿腾科技有限公司 | 基于网页页面的pdf生成方法、装置、设备及存储介质 |
CN112579086A (zh) * | 2020-12-24 | 2021-03-30 | 四川长虹电器股份有限公司 | 一种适配多平台前端View的模板构建方法 |
CN111753500B (zh) * | 2020-07-07 | 2021-05-04 | 江苏中威科技软件系统有限公司 | 版式化后的电子表单与ofd合并展现及目录生成的方法 |
CN112818177A (zh) * | 2020-12-31 | 2021-05-18 | 厦门市七星通联科技有限公司 | 一种动态生成pdf的方法、装置、设备及可读存储介质 |
CN113569548A (zh) * | 2021-05-19 | 2021-10-29 | 海南师范大学 | 一种线上赛事报名表单生成方法及系统 |
WO2022222547A1 (zh) * | 2021-04-19 | 2022-10-27 | 福建福昕软件开发股份有限公司 | 一种大批量pdf文件合并的方法及系统 |
WO2023098448A1 (zh) * | 2021-12-02 | 2023-06-08 | 江苏中威科技软件系统有限公司 | 一种用于转换ofd文件的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024039A (zh) * | 2010-12-01 | 2011-04-20 | 北京神州泰岳软件股份有限公司 | 基于eoms系统的表单生成方法 |
CN102222059A (zh) * | 2011-06-14 | 2011-10-19 | 汉王科技股份有限公司 | 实现电子阅读器多格式信息显示方法、设备及系统 |
CN104111913A (zh) * | 2013-04-16 | 2014-10-22 | 北大方正集团有限公司 | 一种流式文档的处理方法及装置 |
-
2015
- 2015-10-12 CN CN201510658731.XA patent/CN105302550B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024039A (zh) * | 2010-12-01 | 2011-04-20 | 北京神州泰岳软件股份有限公司 | 基于eoms系统的表单生成方法 |
CN102222059A (zh) * | 2011-06-14 | 2011-10-19 | 汉王科技股份有限公司 | 实现电子阅读器多格式信息显示方法、设备及系统 |
CN104111913A (zh) * | 2013-04-16 | 2014-10-22 | 北大方正集团有限公司 | 一种流式文档的处理方法及装置 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843786A (zh) * | 2016-03-23 | 2016-08-10 | 江苏中威科技软件系统有限公司 | 一种用于版式文件展示的方法及装置 |
CN105868357B (zh) * | 2016-03-29 | 2019-02-22 | 凯里供电局 | 文件管控系统及方法 |
CN105868357A (zh) * | 2016-03-29 | 2016-08-17 | 凯里供电局 | 文件管控系统及方法 |
CN107346306A (zh) * | 2016-05-04 | 2017-11-14 | 北京京东尚科信息技术有限公司 | 网页描述方法和装置 |
CN107526619A (zh) * | 2017-09-04 | 2017-12-29 | 江苏中威科技软件系统有限公司 | 版式数据流文件的加载方式 |
CN107480121A (zh) * | 2017-09-04 | 2017-12-15 | 江苏中威科技软件系统有限公司 | 版式数据流表单的制作方法 |
CN107526619B (zh) * | 2017-09-04 | 2019-01-25 | 江苏中威科技软件系统有限公司 | 版式数据流文件的加载方法 |
CN107992456A (zh) * | 2017-11-27 | 2018-05-04 | 江苏中威科技软件系统有限公司 | 版式数据流文件多终端本地化闪存系统、方法及电子设备 |
CN107918933B (zh) * | 2017-11-28 | 2019-01-15 | 江苏中威科技软件系统有限公司 | 版式数据流文件测量的方法、装置以及存储装置 |
CN107918933A (zh) * | 2017-11-28 | 2018-04-17 | 江苏中威科技软件系统有限公司 | 版式数据流文件测量的方法 |
CN108038426A (zh) * | 2017-11-29 | 2018-05-15 | 阿博茨德(北京)科技有限公司 | 一种提取文件中图表信息的方法及装置 |
CN108809514A (zh) * | 2018-04-23 | 2018-11-13 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
CN108809514B (zh) * | 2018-04-23 | 2021-01-12 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
US11476977B2 (en) | 2018-04-23 | 2022-10-18 | Huawei Technologies Co., Ltd. | Data transmission method and related device |
CN110727469A (zh) * | 2018-06-29 | 2020-01-24 | 珠海市魅族科技有限公司 | 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质 |
CN110727469B (zh) * | 2018-06-29 | 2022-08-16 | 珠海市魅族科技有限公司 | 终端设备控制方法及装置、应用程序配置文件的封装方法、终端设备及计算机可读存储介质 |
CN109033467A (zh) * | 2018-08-31 | 2018-12-18 | 北京京东金融科技控股有限公司 | 一种多选项目表单的压缩方法、装置、介质及电子设备 |
CN109033467B (zh) * | 2018-08-31 | 2020-09-29 | 京东数字科技控股有限公司 | 一种多选项目表单的压缩方法、装置、介质及电子设备 |
CN109445901A (zh) * | 2018-11-14 | 2019-03-08 | 江苏中威科技软件系统有限公司 | 一种跨文件格式的矢量图形工具的绘制方法及装置 |
CN109522539A (zh) * | 2018-11-26 | 2019-03-26 | 常诚 | 基于移动设备的pdf学术论文重排版系统及方法 |
CN111767254B (zh) * | 2020-07-07 | 2021-01-05 | 江苏中威科技软件系统有限公司 | 基于版式数据流文件技术的多文件阅读装置及其方法 |
CN111753500B (zh) * | 2020-07-07 | 2021-05-04 | 江苏中威科技软件系统有限公司 | 版式化后的电子表单与ofd合并展现及目录生成的方法 |
CN111767254A (zh) * | 2020-07-07 | 2020-10-13 | 江苏中威科技软件系统有限公司 | 基于版式数据流文件技术的多文件阅读装置及其方法 |
CN112036123A (zh) * | 2020-08-31 | 2020-12-04 | 北京奇虎鸿腾科技有限公司 | 基于网页页面的pdf生成方法、装置、设备及存储介质 |
CN112036123B (zh) * | 2020-08-31 | 2024-05-10 | 三六零数字安全科技集团有限公司 | 基于网页页面的pdf生成方法、装置、设备及存储介质 |
CN112579086A (zh) * | 2020-12-24 | 2021-03-30 | 四川长虹电器股份有限公司 | 一种适配多平台前端View的模板构建方法 |
CN112818177A (zh) * | 2020-12-31 | 2021-05-18 | 厦门市七星通联科技有限公司 | 一种动态生成pdf的方法、装置、设备及可读存储介质 |
WO2022222547A1 (zh) * | 2021-04-19 | 2022-10-27 | 福建福昕软件开发股份有限公司 | 一种大批量pdf文件合并的方法及系统 |
CN113569548A (zh) * | 2021-05-19 | 2021-10-29 | 海南师范大学 | 一种线上赛事报名表单生成方法及系统 |
WO2023098448A1 (zh) * | 2021-12-02 | 2023-06-08 | 江苏中威科技软件系统有限公司 | 一种用于转换ofd文件的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105302550B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302550A (zh) | 将页面转为版式数据流文件的方法及系统 | |
CN111753500B (zh) | 版式化后的电子表单与ofd合并展现及目录生成的方法 | |
CN102609256B (zh) | 一种基于网页的动态图表生成方法 | |
US20190361969A1 (en) | Method and system for annotation and connection of electronic documents | |
CN111753499B (zh) | 电子表单与ofd版式文件合并展现及目录生成的方法 | |
US20120159314A1 (en) | Adaptive content layout | |
AU2005202722A1 (en) | Common charting using shapes | |
CN103279455B (zh) | 电子表格的样式处理方法和装置 | |
US20130174024A1 (en) | Method and device for converting document format | |
CN101271463A (zh) | 版式文件逻辑结构信息的表示方法和系统 | |
CN102663198A (zh) | 一种web后台与前台结合的在线设计制作印制品的方法及系统 | |
CN103617296A (zh) | 一种地名注记图层的优化显示方法 | |
CN105956133B (zh) | 智能终端上显示文件的方法及装置 | |
CN114118023A (zh) | 一种用于转换ofd文件的方法 | |
CN111881651A (zh) | 一种uot流式文档转换成ofd版式文档的方法 | |
CN109240784A (zh) | 一种内存对象的图表渲染方法及系统 | |
CN103049430A (zh) | 一种基于idf格式文件的页面显示方法 | |
KR101371406B1 (ko) | Pdf 문서의 소스분석을 통한 전자책 제작방법 및 시스템 | |
CN105760172A (zh) | 一种基于itext的报表生成方法 | |
CN111190519A (zh) | 一种文件及其控件的处理方法、装置、设备和存储介质 | |
CN103024564A (zh) | Iptv平台epg页面可视化开发与自动生成方法 | |
CN104424174B (zh) | 文档处理系统和文档处理方法 | |
CN110176049B (zh) | 电子板书生成图片及ppt的方法 | |
CN101944081A (zh) | 一种古琴减字谱的计算机生成、编辑方法与系统 | |
CN102509329B (zh) | 渲染字体的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |