发明内容
本发明实施例提供一种文档的排版处理方法及装置,以对待排版的文档进行排版处理,生成排版版面,解决现有技术排版效率低的问题。
本发明实施例的一个方面是提供一种文档的排版处理方法,包括:
接收排版请求,所述排版请求包括待排版的文档,所述待排版的文档包括至少一个标签和所述标签对应的待排版的XML数据;
根据所述排版请求,对于每个所述标签,在预配置模板上,获取与所述标签对应的目标容器;其中,所述目标容器包括:至少一个排版单元和所述排版单元对应的描述信息;
对于每个所述标签,根据所述标签对应的目标容器对应的入口规则,以及所述目标容器下所述至少一个排版单元和所述排版单元对应的描述信息,在所述目标容器中,对所述标签对应的待排版的XML数据进行填充处理,以获取填充后的目标容器;
在所述预配置模板上,根据至少一个所述填充后的目标容器,对所述文档进行排版处理。
根据如上所述的方法,可选地,所述排版单元对应的描述信息包括如下多种组合:
排版单元的XML标签、内容对象、填充内容规则、子级排版单元、接排方式、前缀项、后缀项、前附加项、后附加项。
根据如上所述的方法,可选地,所述对于每个所述标签,根据所述标签对应的目标容器对应的入口规则,以及所述目标容器下所述至少一个排版单元和所述排版单元对应的描述信息,在所述目标容器中,对所述标签对应的待排版的XML数据进行填充处理,包括:
对于每个所述标签,若所述标签对应的目标容器的入口规则包括元素入口规则,则对于所述目标容器下的每个排版单元,从所述标签对应的待排版的XML数据中,获取与所述排版单元对应的描述信息所对应的XML元素,并将所述XML元素填充到所述排版单元中。
根据如上所述的方法,可选地,所述对于每个所述标签,根据所述标签对应的目标容器对应的入口规则,以及所述目标容器下所述至少一个排版单元和所述排版单元对应的描述信息,在所述目标容器中,对所述标签对应的待排版的XML数据进行填充处理,包括:
对于每个所述标签,若所述标签对应的目标容器的入口规则包括变量入口规则,则生成与所述目标容器对应的目标XML数据结构;
对于所述目标容器下的每个排版单元,在所述目标XML数据结构,获取与所述排版单元对应的描述信息所对应的指定XML元素的子标签;
采用Xpath查询方式,从所述标签对应的待排版的XML数据中,获取与子标签对应的所述指定XML元素,并将所述指定XML元素填充到所述排版单元中。
根据如上所述的方法,可选地,对于每个所述标签,若所述标签对应的目标容器的入口规则还包括位置方式,则在所述预配置模板上,根据至少一个所述填充后的目标容器,对所述文档进行排版处理,包括:
对于每个填充后的目标容器,根据所述填充后的目标容器,形成对应的排版对象,并将所述排版对象放置在所述预配置模板上与所述位置方式对应的版面位置上。
本发明的另一方面是提供一种文档的排版处理装置,包括:
接收模块,用于接收排版请求,所述排版请求包括待排版的文档,所述待排版的文档包括至少一个标签和所述标签对应的待排版的XML数据;
获取模块,用于根据所述排版请求,对于每个所述标签,在预配置模板上,获取与所述标签对应的目标容器;其中,所述目标容器包括:至少一个排版单元和所述排版单元对应的描述信息;
填充模块,用于对于每个所述标签,根据所述标签对应的目标容器对应的入口规则,以及所述目标容器下所述至少一个排版单元和所述排版单元对应的描述信息,在所述目标容器中,对所述标签对应的待排版的XML数据进行填充处理,以获取填充后的目标容器;
处理模块,用于在所述预配置模板上,根据至少一个所述填充后的目标容器,对所述文档进行排版处理。
根据如上所述的装置,可选地,所述排版单元对应的描述信息包括如下多种组合:
排版单元的XML标签、内容对象、填充内容规则、子级排版单元、接排方式、前缀项、后缀项、前附加项、后附加项。
根据如上所述的装置,可选地,对于每个所述标签,若所述标签对应的目标容器的入口规则包括元素入口规则,所述填充模块具体用于:
对于所述目标容器下的每个排版单元,从所述标签对应的待排版的XML数据中,获取与所述排版单元对应的描述信息所对应的XML元素,并将所述XML元素填充到所述排版单元中。
根据如上所述的装置,可选地,对于每个所述标签,若所述标签对应的目标容器的入口规则包括变量入口规则,所述填充模块具体用于:
生成与所述目标容器对应的目标XML数据结构;
对于所述目标容器下的每个排版单元,在所述目标XML数据结构,获取与所述排版单元对应的描述信息所对应的指定XML元素的子标签;
采用Xpath查询方式,从所述标签对应的待排版的XML数据中,获取与子标签对应的所述指定XML元素,并将所述指定XML元素填充到所述排版单元中。
根据如上所述的装置,可选地,对于每个所述标签,若所述标签对应的目标容器的入口规则还包括位置方式,所述处理模块具体用于:
对于每个填充后的目标容器,根据所述填充后的目标容器,形成对应的排版对象,并将所述排版对象放置在所述预配置模板上与所述位置方式对应的版面位置上。
根据本发明的文档的排版处理方法及装置,通过根据目标容器的入口规则以及目标容器下排版单元和其对应的描述信息,在目标容器中,对待排版的XML数据进行填充处理,并在预配置模板上,根据填充后的目标容器对文档进行排版处理,可以将多个排版单元分块管理,便于生成版面丰富的排版版面,提高了排版效率。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供一种文档的排版处理方法,用于对文档进行排版处理。本实施例的执行主体是文档的排版处理装置,该装置可以设置在排版软件中。
如图1所示,为实施例提供的文档的排版处理方法的流程示意图,该方法包括:
步骤101,接收排版请求,排版请求包括待排版的文档,待排版的文档包括至少一个标签和标签对应的待排版的XML数据。
具体地,排版是指将待排版的文档中的数据填充到预配置模板中的相应位置,生成用户需要的版面的过程,当文档的排版处理装置接收到排版请求,则将根据该排版请求进行排版处理。该排版请求包括用户待排版的文档,该待排版的文档包括至少一个标签和该标签对应的待排版的XML数据。可以理解的,该待排版的文档中可以包括多个标签及各标签对应的待排版的XML数据。
步骤102,根据排版请求,对于每个标签,在预配置模板上,获取与标签对应的目标容器;其中,目标容器包括:至少一个排版单元和排版单元对应的描述信息。
当文档的排版处理装置接收到排版请求,则根据排版请求,对于每个标签,在预配置模板上,获取与标签对应的目标容器,以确定每个标签对应的目标容器;其中,该目标容器包括至少一个排版单元和该排版单元对应的描述信息。
其中,该描述信息用于描述该排版单元的XML标签、内容对象、填充内容规则、补充筛选条件、子级排版单元、内容排列选项、前缀项、后缀项、前附加项、后附加项、接排方式及其他属性。预配置模板是用户根据自己需求通过排版软件预先配置的模板,该预配置模板上可以包括用户设置的一个或多个容器,每个容器根据用户需求设置在模板的不同位置,用于显示不同的内容或版式,将模板版面进行了分块管理,并且容器起到了一定的隔离作用,容器中的内容不会显示在容器所设定的范围外,既避免了填充完后进行排版显示处理时内容的错乱,又能方便的管理排版的版面。每个容器可以包括一个或多个排版单元,用于填充具体的XML数据内容,比如一篇论文的标题“食管癌根治术的临床应用”等,每个排版单元都有与之对应的描述信息,用于描述排版单元的各种属性,比如该排版单元的内容对象。
排版单元的XML标签是为该排版单元设置了一个标识信息,该标识信息为XML语言中的标签格式,用于根据该标签在待排版文档中查找该排版单元中应填充的内容。排版单元的内容对象是指该排版单元中需要填充的具体内容的属性。排版单元的填充内容规则指排版单元中子级排版单元的填充规则。排版单元的补充筛选条件指当该排版单元的XML标签在待排版的文档中出现了两个相同的标签时,需要根据这些补充筛选条件来选择该排版单元需要选择哪个标签对应的XML数据来填充,补充筛选条件可以为该排版单元的XML标签下的子级排版单元的XML标签,也可以设置其他筛选条件。排版单元的子级排版单元为设置在排版单元下嵌套的排版单元,比如论文元数据“<article-meta>”为排版单元的XML标签,其下还包括多个子级排版单元标题组“<title-group>”、作者组“contrib-group”、关键词组“kwd-group”等,需要说明的是,每个子级排版单元本身也是一个排版单元,其也可以有自己的子级排版单元,只是相对于其上位的排版单元来说称为子级排版单元。排版单元的内容排列选项指排版单元中子级排版单元在版面上的排列方式,包括序列排列、选择排列和自动排列三种,其中,序列排列是指在预配置模板中的目标容器中,按照该排版单元的子级排版单元的XML标签和补充筛选条件,在待排版的XML数据中查找该子级排版单元对应的内容来填充该子级排版单元;选择排列是指以待排版的XML数据为主,若排版单元中只设置有一个子级排版单元,但是根据该子级排版单元的XML标签在待排版的XML数据中获取的对应的XML元素还包括多个XML子元素,则上述多个XML子元素均同XML元素一起被获取并填充到该子级排版单元中,并在形成排版对象时应用该子级排版单元的排版样式。排版单元的前缀项和后缀项是指指定的修饰在排版单元中的、前缀和后缀性质的内容及样式,例如,在论文的摘要部分有前缀项黑体的“【摘要】”以及后面的空格。排版单元的前附加项和后附加项是指指定修饰在排版单元外部的、附加性质的内容及样式。排版单元的接排方式指定排版单元的前后接排方式,包括:连排、另起新行、另起新段、另起新栏、另起新块、另起新页(单页)、另起新页(双页)等。
步骤103,对于每个标签,根据标签对应的目标容器对应的入口规则,以及目标容器下至少一个排版单元和排版单元对应的描述信息,在目标容器中,对标签对应的待排版的XML数据进行填充处理,以获取填充后的目标容器。
具体的,根据一个标签,可确定该标签对应的目标容器,可以理解的,若待排版的文档包括多个标签和标签对应的待排版的XML数据,则可能有几个标签同时对应一个目标容器,则根据该目标容器对应的入口规则,以及该目标容器下至少一个排版单元和排版单元对应的描述信息,在目标容器中,对一个或几个标签对应的待排版的XML数据进行填充处理,以获取填充后的目标容器。
其中,目标容器对应的入口规则可以包括容器的XML标签、元素入口规则、变量入口规则、位置方式、补充筛选条件等。其中,容器的XML标签,是容器的标识性信息,可以根据该容器的XML标签确定文档中的标签是否与该目标容器对应;元素入口规则是指目标容器填充内容的一种方式;变量入口规则是指目标容器填充内容的另一种方式,每个容器有一种填充方式,即为元素入口规则或者变量入口规则;位置方式指该目标容器在排版版面上的位置方式,包括背景位置、正常位置和自动位置三种位置方式,背景位置是指将容器形成的排版对象放置到实体主页上,正常位置是指将容器形成的排版对象放置到实体页面上,自动位置是指容器形成的排版对象根据容器在预配置模板中的位置来确定放置位置;补充筛选条件是指,有可能容器的XML标签在文档中出现了多次,为了确定文档中哪个标签对应的XML数据应该与该容器对应,则需要进一步根据补充筛选条件来判断。
需要说明的是,用户还可以设置容器在预配置模板中相对于版心的上下左右位置、容器的大小等基本属性,在排版过程中可随时调整容器的上下左右位置及大小。
步骤104,在预配置模板上,根据至少一个填充后的目标容器,对文档进行排版处理。
当预配置模板上的一个或多个目标容器均被填充完毕后,则表示完成了对预配置模板中容器的填充,然后根据填充后的目标容器,对文档进行排版处理,包括应用容器和排版单元的排版样式等,生成满足用户要求的排版版面。
本实施例提供的文档的排版处理方法,通过根据目标容器的入口规则以及目标容器下排版单元和其对应的描述信息,在目标容器中,对待排版的XML数据进行填充处理,并在预配置模板上,根据填充后的目标容器对文档进行排版处理,可以将多个排版单元分块管理,便于生成版面丰富的排版版面,提高了排版效率。
实施例二
本实施例对实施例一提供的文档的排版处理方法做进一步补充说明。
如图2所示,为实施例提供的文档的排版处理方法的流程示意图,该方法包括:
步骤201,接收排版请求,排版请求包括待排版的文档,待排版的文档包括至少一个标签和标签对应的待排版的XML数据。
该步骤的具体操作与步骤101一致,在此不再赘述。
步骤202,根据排版请求,对于每个标签,在预配置模板上,获取与标签对应的目标容器;其中,目标容器包括:至少一个排版单元和排版单元对应的描述信息。
该步骤的具体操作与步骤102一致,在此不再赘述.
步骤203,对于每个标签,判断标签对应的目标容器对应的入口规则是包括元素入口规则还是包括变量入口规则,若包括元素入口规则,则执行步骤204,若包括变量入口规则,则执行步骤205。
步骤204,若标签对应的目标容器的入口规则包括元素入口规则,则对于目标容器下的每个排版单元,从标签对应的待排版的XML数据中,获取与排版单元对应的描述信息所对应的XML元素,并将XML元素填充到排版单元中,以获取填充后的目标容器。转步骤206。
若目标容器对应的入口规则包括元素入口规则,则对于目标容器下的每个排版单元,根据排版单元对应的描述信息,从标签对应的待排版的XML数据中,获取与排版单元对应的描述信息所对应的XML元素,并将获取到的XML元素填充到该排版单元中,以获取填充后的目标容器。
步骤205,若标签对应的目标容器的入口规则包括变量入口规则,则生成与目标容器对应的目标XML数据结构;对于目标容器下的每个排版单元,在目标XML数据结构,获取与排版单元对应的描述信息所对应的指定XML元素的子标签;采用Xpath查询方式,从标签对应的待排版的XML数据中,获取与子标签对应的指定XML元素,并将指定XML元素填充到排版单元中,以获取填充后的目标容器。转步骤206。
若目标容器对应的入口规则包括变量入口规则,则根据目标容器生成与目标容器对应的目标XML数据结构,对于目标容器下的每个排版单元,在目标XML数据结构,获取与排版单元对应的描述信息所对应的XML元素的子标签,采用Xpath查询方式,从待排版的XML数据中,获取与子标签对应的指定XML元素,并将指定XML元素填充到排版单元中,以获取填充后的目标容器。
步骤206,在预配置模板上,根据至少一个填充后的目标容器,对文档进行排版处理。
该步骤的具体操作与步骤104一致,在此不再赘述。
进一步地,对于每个标签,若标签对应的目标容器的入口规则还包括位置方式,在在预配置模板上,根据至少一个填充后的目标容器,对文档进行排版处理,包括:
对于每个填充后的目标容器,根据填充后的目标容器,形成对应的排版对象,并将该排版对象放置在预配置模板上与上述位置方式对应的版面位置上。
示例性的,论文通常由前言(front)、正文(body)、后记(back)三部分内容构成。前言部分主要描述论文的元数据信息,分为期刊元数据和论文元数据两部分。期刊元数据包含刊物相关的名称、出版机构、期号、出版日期等信息,论文元数据则包括论文相关的标题、作者、摘要信息、关键词、DOI等信息。正文部分是论文的主体内容,通过多级标题和段落构成。后记部分用于描述论文的附加信息,如:参考文献、致谢词等。在预配置模板中,需要针对这些待排版的XML数据,设计不同的容器和排版单元。如表1所示为论文的预配置模板的实体主页的描述,其示意图如图3所示,包括四个容器。
表1
如表2所示,为预配置模板中论文前言部分的部分排版单元的描述,其示意图如图4所示。
表2
如图5所示为根据上述文档的排版处理方法对文档进行排版处理后的论文主页的排版版面效果示意图。根据预配置模板中的容器,待排版的文档中的待排版的XML数据均填充到容器中对应的位置,例如,论文中与刊物相关的期刊元数据信息,被从待排版的XML数据中获取出来,填充到相应的容器中,并形成排版对象放置到实体主页的书眉位置。论文中的标题、作者、摘要、关键词、正文、参考文献等信息,被从待排版的XML数据中选择出来,放置到正文页面的主文字流块中(即表1中的容器3中)。
如图6所示为根据上述文档的排版处理方法对文档进行排版处理后的论文前言的排版版面效果示意图。根据预配置模板中论文前言部分相应的容器(即表1中的容器1)中的排版单元,待排版的XML数据均填充到对应的排版单元内,并应用了排版单元的排版样式。例如,对于论文元数据的填充,因为对应排版单元中的填充内容规则为“序列”,其下的标题、作者、摘要、关键词等子级排版单元,均从待排版的XML数据中获取到了对应的内容,并被填充到对应的排版单元内。
对于排版单元“摘要”,因为对应排版单元中的填充内容规则为“选择”,虽然该排版单元中只设置了一个子级排版单元“摘要条目”,但在待排版的XML数据中,“摘要条目”下还包括多个XML子元素比如“摘要条目标题”和“摘要条目内容”,则在子级排版单元“摘要条目”下,会将“摘要条目标题”和“摘要条目内容”也填充到子级排版单元“摘要条目”中,并且均会应用子级排版单元“摘要条目”的排版样式,如图7中所示的摘要条目标题“目的”及其后的摘要条目内容“探讨胸腹腔……”,摘要条目标题“结果”及其后的摘要条目内容“与开放组相比……”。
如果对应排版单元中含有前后缀项、前后附加项、接排方式等描述信息,在形成排版对象时,均会应用排版单元的这些描述信息,也可称排版单元的排版样式,以根据用户需求生成排版版面。
本实施例提供的文档的排版处理方法,通过根据目标容器的不同入口规则采用不同的方法获取填充后的目标容器,当入口规则包括变量入口规则时,采用Xpath查询方式,能够快速准确地获取目标容器下的排版单元对应的描述信息所对应的XML元素,进一步提高了排版效率。
实施例三
本实施例提供一种文档的排版处理装置,用于执行上述实施例的文档的排版处理方法。
如图7所示,为本实施例提供的文档的排版处理装置的结构示意图。本实施例的文档的排版处理装置30包括接收模块31、获取模块32、填充模块33和处理模块34。
其中,接收模块31用于接收排版请求,所述排版请求包括待排版的文档,所述待排版的文档包括至少一个标签和所述标签对应的待排版的XML数据;获取模块32用于根据所述排版请求,对于每个所述标签,在预配置模板上,获取与所述标签对应的目标容器;其中,所述目标容器包括:至少一个排版单元和所述排版单元对应的描述信息;填充模块33用于对于每个所述标签,根据所述标签对应的目标容器对应的入口规则,以及所述目标容器下所述至少一个排版单元和所述排版单元对应的描述信息,在所述目标容器中,对所述标签对应的待排版的XML数据进行填充处理,以获取填充后的目标容器;处理模块34用于在所述预配置模板上,根据至少一个所述填充后的目标容器,对所述文档进行排版处理。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例的文档的排版处理装置30,通过根据目标容器的入口规则以及目标容器下排版单元和其对应的描述信息,在目标容器中,对待排版的XML数据进行填充处理,并在预配置模板上,根据填充后的目标容器对文档进行排版处理,可以将多个排版单元分块管理,便于生成版面丰富的排版版面,提高了排版效率。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。