掌桥专利:专业的专利平台
掌桥专利
首页

一种OFD快速生成方法、系统、电子设备及存储介质

文献发布时间:2023-06-19 11:29:13


一种OFD快速生成方法、系统、电子设备及存储介质

技术领域

本发明涉及计算机软件领域,尤其涉及一种OFD快速生成方法、系统、电子设备及存储介质。

背景技术

OFD版式文档,一种独立于软件、硬件、操作系统、输出设备的文档格式。将文字、图形、图像等多种数字内容对象按照一定规则进行版面固化的呈现。OFD采用XML技术描述文件数据,具有真实地保持原有文件中文字、图表、公式、色彩等版式信息的特性,且这种特性不应随着软硬件环境的变化而发生改变。通常情况,OFD文件处理方式,对于添加图像对象、文字对象,采用的方法效率低,其中解压缩、解析、生成对象都是比较耗时。

发明内容

本发明所要解决的技术问题是针对现有技术的不足,提供一种OFD快速生成方法、系统、电子设备及存储介质。

本发明解决上述技术问题的技术方案如下:一种OFD快速生成方法,包括:

步骤1,获取模板文件,对所述模板文件进行预处理,得到解压后的并对应保存到预设位置的多个文件;

步骤2,获取用户的输入信息,将所述输入信息生成二维码图片,将所述二维码图片以数据形式保存至多个文件中与之对应的第一文件中;

步骤3,将所述输入信息的文本内容以字符串形式存储在多个文件中与之对应的第二文件中;

步骤4,将包含第一文件以及第二文件的多个文件进行压缩处理,生成完整的OFD文件。

本发明的有益效果是:OFD快速套版生成方法,主要有针对性的进行处理,抛弃解压缩、解析、生成对象的步骤,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率,将解压缩的过程、解析文档的过程、解析XML文件的过程都省略掉,另外,能在初始化中进行处理的工作,都在程序启动的初始化过程中进行处理。中间需要动态处理的过程,只剩下必须要要进行计算的部分。XML文件的组织,也以字符串连接的方式代替解析。故能极大的提升稳定性与效率。

进一步,步骤1具体为:

获取模板文件,对所述模板文件进行解压处理,得到n个xml文件,将xml文件中固定不变的文件以字符串的形式保存在第一预设位置,将xml文件中有变化的文件以字符串的形式保存在第二预设位置,将xml文件中非确定变化的文件以预设结果文件的形式保存在第三预设位置。

采用上述进一步方案的有益效果是,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率。

进一步,步骤4具体为:

将所述第一预设位置的文件、所述第二预设位置的文件、所述第三预设位置的文件、所述第一文件以及所述第二文件整合成最终文件,将所述最终文件压缩处理,生成完整的OFD文件。

采用上述进一步方案的有益效果是,将文件按固定位置进行存储不仅可以有效区分文件的类别还可以快速调取生成,提高效率。

进一步,步骤3之后还包括:

将电子签章以签章数据的形式保存在第四预设位置。

本发明解决上述技术问题的另一种技术方案如下:一种OFD快速生成系统,包括:

获取模块,用于获取模板文件,对所述模板文件进行预处理,得到解压后的并对应保存到预设位置的多个文件;

生成模块,用于获取用户的输入信息,将所述输入信息生成二维码图片,将所述二维码图片以数据形式保存至多个文件中与之对应的第一文件中;

存储模块,用于将所述输入信息的文本内容以字符串形式存储在多个文件中与之对应的第二文件中;

压缩模块,用于将包含第一文件以及第二文件的多个文件进行压缩处理,生成完整的OFD文件。

本发明的有益效果是:OFD快速套版生成方法,主要有针对性的进行处理,抛弃解压缩、解析、生成对象的步骤,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率,将解压缩的过程、解析文档的过程、解析XML文件的过程都省略掉,另外,能在初始化中进行处理的工作,都在程序启动的初始化过程中进行处理。中间需要动态处理的过程,只剩下必须要要进行计算的部分。XML文件的组织,也以字符串连接的方式代替解析。故能极大的提升稳定性与效率。

进一步,获取模块具体用于:

获取模板文件,对所述模板文件进行解压处理,得到n个xml文件,将xml文件中固定不变的文件以字符串的形式保存在第一预设位置,将xml文件中有变化的文件以字符串的形式保存在第二预设位置,将xml文件中非确定变化的文件以预设结果文件的形式保存在第三预设位置。

采用上述进一步方案的有益效果是,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率。

进一步,压缩模块具体用于:

将所述第一预设位置的文件、所述第二预设位置的文件、所述第三预设位置的文件、所述第一文件以及所述第二文件整合成最终文件,将所述最终文件压缩处理,生成完整的OFD文件。

采用上述进一步方案的有益效果是,将文件按固定位置进行存储不仅可以有效区分文件的类别还可以快速调取生成,提高效率。

进一步,存储模块还用于:

将电子签章以签章数据的形式保存在第四预设位置。

本发明解决上述技术问题的另一种技术方案如下:一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的向量,所述处理器执行所述向量时实现上述任一项所述的一种OFD快速生成方法。

本发明的有益效果是:OFD快速套版生成方法,主要有针对性的进行处理,抛弃解压缩、解析、生成对象的步骤,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率,将解压缩的过程、解析文档的过程、解析XML文件的过程都省略掉,另外,能在初始化中进行处理的工作,都在程序启动的初始化过程中进行处理。中间需要动态处理的过程,只剩下必须要要进行计算的部分。XML文件的组织,也以字符串连接的方式代替解析。故能极大的提升稳定性与效率。

本发明解决上述技术问题的另一种技术方案如下:一种存储介质,所述存储介质中存储有指令,当计算机读取所述指令时,使所述计算机执行上述任一项所述的一种OFD快速生成方法。

本发明的有益效果是:OFD快速套版生成方法,主要有针对性的进行处理,抛弃解压缩、解析、生成对象的步骤,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率,将解压缩的过程、解析文档的过程、解析XML文件的过程都省略掉,另外,能在初始化中进行处理的工作,都在程序启动的初始化过程中进行处理。中间需要动态处理的过程,只剩下必须要要进行计算的部分。XML文件的组织,也以字符串连接的方式代替解析。故能极大的提升稳定性与效率。

本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。

附图说明

图1为本发明一种OFD快速生成方法的实施例提供的流程示意图;

图2为本发明一种OFD快速生成系统的实施例提供的结构框架图;

图3为本发明一种OFD快速生成方法的实施例提供的模板文件解压后内部结构示意图;

图4为本发明一种OFD快速生成方法的实施例提供的模板文件最终形式示意图;

图5为本发明一种OFD快速生成方法的实施例提供的银行电子凭证示意图;

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

100、获取模块,200、生成模块,300、存储模块,400、压缩模块。

具体实施方式

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

如图1所示,一种OFD快速生成方法,包括:

步骤1,获取模板文件,对模板文件进行预处理,得到解压后的并对应保存到预设位置的多个文件;

步骤2,获取用户的输入信息,将输入信息生成二维码图片,将二维码图片以数据形式保存至多个文件中与之对应的第一文件中;

步骤3,将输入信息的文本内容以字符串形式存储在多个文件中与之对应的第二文件中;

步骤4,将包含第一文件以及第二文件的多个文件进行压缩处理,生成完整的OFD文件。

在一些可能的实施方式中,OFD快速套版生成方法,主要有针对性的进行处理,抛弃解压缩、解析、生成对象的步骤,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率,将解压缩的过程、解析文档的过程、解析XML文件的过程都省略掉,另外,能在初始化中进行处理的工作,都在程序启动的初始化过程中进行处理。中间需要动态处理的过程,只剩下必须要要进行计算的部分。XML文件的组织,也以字符串连接的方式代替解析。故能极大的提升稳定性与效率。

需要说明的是,在实际处理过程中,可能存在不需要二维码的业务,针对不需要二维码的业务可以将生成二维码以及将二维码压缩处理等过程省去,即,用户可根据实际需求对是否生成二维码进行调整,同理,下文提及到的电子签章也如此,对于不需要电子签章的业务可以将生成电子签章以及将电子签章压缩处理等过程省去。OFD快速套版生成方法,主要用于服务器端,可以提供多种语言接口,可以在windows、linux下被c++、c#、java多线程、多进程所调用,将OFD模板文件,如:电子发票、回单等文件,解压缩并放在固定目录下,譬如名字为Template,其内部结构如图3所示;

对于模板文件的预处理包括:

1)将模板文件中相对固定不变化的XML文件内容读取到内存中,以字符串的形式保存。譬如OFD.xml、PublicRes.xml;

2)将模板文件中可能会产生变化,并可以预先知道变化后的结果的XML文件内容读取到内存中。以图5为例,如果最终此凭证不需要电子签章,则OFD.xml不会产生变化,即最终保存的时候,直接使用模板文件中的OFD.xml就可以。但如果最终此凭证需要做电子签章,则OFD.xml就需要变化,额外添加关于电子签章引用的描述。初始化的时候,可以将产生变化的OFD.xml也读到内存中,譬如命名为OFD_Sign.xml,保存起来。最终保存的时候,如果有签章动作,则以OFD_Sign.xml的内容进行保存。

除OFD.xml外,其它可以预先知道变化后的结果文件还有Document.xml,方法同OFD.xml,都在初始化的时候提前将变化后的xml文件内容读到内存。在保存的时候,直接使用即可。

3)对于肯定会因为添加新数据而有变化的XML文件,其变化的最终结果又无法预先知道,则将其中不变的部分,分别读入内存。譬如,Template\Doc_0\Pages\Page_0\Content.xml,在原始Content.xml里,描述的是银行电子凭证固定信息,如表格、凭证编号、签发机构等信息。图像对象、文字对象都是添加在这个Content.xml,可以将Content.xml分为两部分读入内存,并以字符串的形式保存,分别记录为m_wsXmlHead和m_wsXmlTail。在添加图像对象和文字对象的时候,其对象以字符串形式提供,则最终Template\Doc_0\Pages\Page_0\Content.xml的生成应该是如下形式,其中,按对象生成先后顺序标出:m_wsXmlHead+m_wsImageObj1+...+m_wsImageObjN+m_wsTextObj1+...+m_wsTextObjN+m_wsXmlTail

对于步骤2,原OFD模板文件中没有,但因为电子签章等,新产生的XML文件。譬如Template\Doc_0\Signs\Signatures.xml。

这些文件,如果进行签章,则肯定需要生成,Signatures.xml的格式比较固定,有一定的规律,可以提前在模板文件夹生成。

类似的还有DocumentRes.xml,当添加二维码图片对象时,需要生成DocumentRes.xml,可以提起这模板文件夹生成。

对于步骤3,文本对象初始化。业务当中,涉及处理最多的还是文本对象的添加,图像对象相对较少,且其对象的描述比较简单,就不需要在初始化的时候处理了。每个固定模板的OFD文件中,需要添加文本对象的数量是一定的,每个对象的在页面中的位置、字体信息、颜色等都是固定并且可以提前知道到,故此,可以将所有文本对象不变的部分,都在初始化的时候读入到内存,并且以字符串的形式保存。在最终生成文本对象的时候,只需要将红色的固定部分的字符串与动态生成的可变部分的字符串进行连接即可。

在经过上面的处理后,模板文件的最终形式如图4所示。

对于步骤2,二维码对象添加。二维码对象的生成必然是动态的,根据客户输入的信息来生成二维码图片,将图片内容以内存数据的方式保存内存中,并在Template/Doc_0/DocumentRes.xml中进行资源描述,以及在Template\Doc_0\Pages\Page_0\Content.xml添加图片对象的描述。

对于步骤3,文本对象,直接在Template\Doc_0\Pages\Page_0\Content.xml添加描述,唯一需要计算的就是DeltaX="1.587600 1.587600 1.587600 1.587600 3.1752001.587600 3.175200 1.587600 1.587600"部分。这部分数据需要根据字体来进行计算,然后以字符串的形式存储,并与初始化过程中该文本对象固定部门字符串进行连接,就可以生成完整的文本对象。

在所有数据操作都已经完成的情况下,最后进行电子签章计算。使用签章算法,对需要保护的xml文件进行计算,并生成Template\Doc_0\Signs\Sign_0\Signature.xml以及签章数据文件Template\Doc_0\Signs\Sign_0\SignedValue.dat。

将最终生成的XML文件、RES资源文件、签章相关文件进行压缩,生成所需的OFD文件。

优选地,在上述任意实施例中,步骤1具体为:

获取模板文件,对模板文件进行解压处理,得到n个xml文件,将xml文件中固定不变的文件以字符串的形式保存在第一预设位置,将xml文件中有变化的文件以字符串的形式保存在第二预设位置,将xml文件中非确定变化的文件以预设结果文件的形式保存在第三预设位置。

在一些可能的实施方式中,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率。

优选地,在上述任意实施例中,步骤4具体为:

将第一预设位置的文件、第二预设位置的文件、第三预设位置的文件、第一文件以及第二文件整合成最终文件,将最终文件压缩处理,生成完整的OFD文件。

在一些可能的实施方式中,将文件按固定位置进行存储不仅可以有效区分文件的类别还可以快速调取生成,提高效率。

优选地,在上述任意实施例中,步骤3之后还包括:

将电子签章以签章数据的形式保存在第四预设位置。

如图2所示,一种OFD快速生成系统,包括:

获取模块100,用于获取模板文件,对模板文件进行预处理,得到解压后的并对应保存到预设位置的多个文件;

生成模块200,用于获取用户的输入信息,将输入信息生成二维码图片,将二维码图片以数据形式保存至多个文件中与之对应的第一文件中;

存储模块300,用于将输入信息的文本内容以字符串形式存储在多个文件中与之对应的第二文件中;

压缩模块400,用于将包含第一文件以及第二文件的多个文件进行压缩处理,生成完整的OFD文件。

在一些可能的实施方式中,OFD快速套版生成方法,主要有针对性的进行处理,抛弃解压缩、解析、生成对象的步骤,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率,将解压缩的过程、解析文档的过程、解析XML文件的过程都省略掉,另外,能在初始化中进行处理的工作,都在程序启动的初始化过程中进行处理。中间需要动态处理的过程,只剩下必须要要进行计算的部分。XML文件的组织,也以字符串连接的方式代替解析。故能极大的提升稳定性与效率。

优选地,在上述任意实施例中,获取模块100具体用于:

获取模板文件,对模板文件进行解压处理,得到n个xml文件,将xml文件中固定不变的文件以字符串的形式保存在第一预设位置,将xml文件中有变化的文件以字符串的形式保存在第二预设位置,将xml文件中非确定变化的文件以预设结果文件的形式保存在第三预设位置。

在一些可能的实施方式中,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率。

优选地,在上述任意实施例中,压缩模块400具体用于:

将第一预设位置的文件、第二预设位置的文件、第三预设位置的文件、第一文件以及第二文件整合成最终文件,将最终文件压缩处理,生成完整的OFD文件。

在一些可能的实施方式中,将文件按固定位置进行存储不仅可以有效区分文件的类别还可以快速调取生成,提高效率。

优选地,在上述任意实施例中,存储模块300还用于:

将电子签章以签章数据的形式保存在第四预设位置。

一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的向量,处理器执行所述向量时实现上述任一项所述的一种OFD快速生成方法。

在一些可能的实施方式中,OFD快速套版生成方法,主要有针对性的进行处理,抛弃解压缩、解析、生成对象的步骤,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率,将解压缩的过程、解析文档的过程、解析XML文件的过程都省略掉,另外,能在初始化中进行处理的工作,都在程序启动的初始化过程中进行处理。中间需要动态处理的过程,只剩下必须要要进行计算的部分。XML文件的组织,也以字符串连接的方式代替解析。故能极大的提升稳定性与效率。

一种存储介质,存储介质中存储有指令,当计算机读取所述指令时,使计算机执行上述任一项的一种OFD快速生成方法。

在一些可能的实施方式中,OFD快速套版生成方法,主要有针对性的进行处理,抛弃解压缩、解析、生成对象的步骤,直接将OFD内部的XML文件看做普通的文本文件,对象生成、数据写入,都是对文本文件操作,免除了解析XML的过程。这样能相当大幅度的提高效率,将解压缩的过程、解析文档的过程、解析XML文件的过程都省略掉,另外,能在初始化中进行处理的工作,都在程序启动的初始化过程中进行处理。中间需要动态处理的过程,只剩下必须要要进行计算的部分。XML文件的组织,也以字符串连接的方式代替解析。故能极大的提升稳定性与效率。

可以理解,在一些实施例中,可以包含如上述各实施例中的部分或全部可选实施方式。

需要说明的是,上述各实施例是与在先方法实施例对应的产品实施例,对于产品实施例中各可选实施方式的说明可以参考上述各方法实施例中的对应说明,在此不再赘述。

读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。

上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种OFD快速生成方法、系统、电子设备及存储介质
  • 一种参考行驶线快速生成方法、系统、终端和存储介质
技术分类

06120112940769