首页 / 专利库 / 电脑图像 / 字体微调 / 一种可变公文数据的排版方法和装置

一种可变公文数据的排版方法和装置

阅读:457发布:2020-06-06

专利汇可以提供一种可变公文数据的排版方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 提供一种可变公文数据的排版方法,包括:利用XML技术创建公文模板,所述公文模板包括公文的页面设置以及公文要素绘制对象的格式设置和数据内容信息;利用XML公文排版数据替换选用的公文模板中可变公文要素绘制对象的可变数据内容来构建待排版公文的公文要素绘制对象;删除不必要的公文要素绘制对象;根据选用的公文模板中所设置的格式对待排版公文的公文要素绘制对象中的公文要素绘制对象进行排版。相应地,提供一种可变公文数据的排版装置。本发明能够满足严格公文格式规范的要求,实现公文的自动排版,办文效率高,并且能够顺应公文格式规范的变更,扩展性高,易于与已有的办公信息系统无缝集成。,下面是一种可变公文数据的排版方法和装置专利的具体信息内容。

1.一种可变公文数据的排版方法,包括以下步骤:
制定公文排版数据的XML格式规范;
创建符合所述XML格式规范的公文模板,所述公文模板包括公文的页面设置以及公文要素绘制对象的格式设置和数据内容信息,所述公文要素绘制对象包括文字框、图形、图像和表格;
将待排版公文的公文排版数据形成为符合所述XML格式规范的XML文件;
通过利用所述XML文件中所包含的数据替换选用的公文模板中可变公文要素绘制对象的可变数据内容来构建待排版公文的公文要素绘制对象;
从构建的待排版公文的公文要素绘制对象中删除不必要的公文要素绘制对象;
根据选用的公文模板中所设置的格式对待排版公文的公文要素绘制对象中的公文要素绘制对象进行排版。
2.根据权利要求1所述的方法,其特征在于,所述公文模板具有如下数据结构:
“公文模板”元素包括:
“度量单位”,其用于定义模板中的位置、高度、宽度和字体大小等几何量所使用的单位;
“页面设置”,其用于定义公文用纸幅面和版面尺寸,包括“纸张”和“页边距”元素,“纸张”元素定义纸型、高度和宽度,“页边距”元素定义上、下、左、右页边距;
“预定义格式”,其用于定义空间、段落、文字、文字框、图元等基本格式和公文要素的可变数据与绘制对象之间的对应模式,其中,空间格式定义公文要素绘制对象的位置、大小、对齐属性;段落格式定义公文要素绘制对象的文字自然段的格式,包括首行缩进、文字对齐、行距、段落的前后间距;文字格式定义字体、字形和字间距属性,字体属性包括字体名、字体大小、字体颜色;文字框格式定义文字框的边线和边空属性;图元格式定义图元的类型、线型、线宽、颜色属性;对应模式定义公文要素的可变数据与绘制对象之间的对应模式,包括一一对应模式和合并模式;
“要素呈现对象”,其包括文字框、图形、图像、表格和容器绘制对象元素,其中,容器绘制对象元素任意包含文字框、图形、图像和表格绘制对象元素,文字框、图形、图像、表格绘制对象元素分别指定文字框、图形、图像、表格的格式和数据内容信息。
3.根据权利要求1所述的方法,其特征在于,所述“公文模板”元素还包括:
“模板名称”元素,其用于对模板进行标识,以便对具体的公文进行排版时便于选用适当的模板;
“模板描述”,其用于给出模板本身的描述信息,以便于人们理解模板。
4.根据权利要求1所述的方法,其特征在于,所述构建待排版公文的公文要素绘制对象的步骤包括以下步骤:
对所述公文排版数据的XML文件进行解析,构建公文要素数据的节点树;
对选用的公文模板进行解析,构建模板的公文要素绘制对象队列;
通过以下步骤构建待排版公文的公文要素绘制对象队列:
创建一个空的待排版公文的公文要素绘制对象队列;
对于模板的公文要素绘制对象队列中数据不可变的公文要素绘制对象,通过复制该公文要素绘制对象的方式生成一个新的绘制对象,并将该绘制对象加入到待排版公文的公文要素绘制对象队列的尾部;
对于模板的公文要素绘制对象队列中数据可变的公文要素绘制对象,根据该公文要素绘制对象生成一个新的不可变部分相同、可变部分的数据内容为空的绘制对象,然后从公文要素数据的节点树获取相应的公文要素的可变数据,并将该可变数据加入到所生成的绘制对象中,再将该绘制对象加入到待排版公文的公文要素绘制对象队列的尾部,在构建待排版公文的公文要素绘制对象队列之后,从待排版公文的公文要素绘制对象队列中删除不必要的公文要素绘制对象,并根据选用的公文模板中所设置的格式对待排版公文的公文要素绘制对象队列中的公文要素绘制对象进行排版。
5.根据权利要求1所述的方法,其特征在于,所述对待排版公文的公文要素绘制对象中的公文要素绘制对象进行排版的步骤包括以下步骤:
对于图形、图像、固定文字框和固定表格绘制对象,直接在选用的公文模板中定义的区域内排版,内容排好后,再将它移动到页面中定义的位置;
对于根据内容自动调整区域的文字框和表格,在无限的区域内排版,内容排好后,按页面可用区域分切排好的内容,内容跨页排放。排满一页后,要对该页进行微调,即使已排的内容在版心底部的空白区域中均分排列,尽可能使排版内容撑满整个版心,使公文版面完美;
在对表格中的单元格和文字框中的文字内容进行排版时,根据段落格式和文字格式对行内文字、段落内的行间距进行微调,以使文字内容的排版更加匀称。
6.一种可变公文数据的排版装置,包括:
输入单元,其用于输入待排版公文的公文排版数据;
格式规范制定单元,其用于制定公文排版数据的XML格式规范;
排版数据规范单元,其用于将输入的待排版公文的公文排版数据形成为符合格式规范制定单元中所制定的XML格式规范的XML文件;
模板创建单元,其用于创建符合格式规范制定单元中所制定的XML格式规范的公文模板,所述公文模板包括公文的页面设置以及公文要素绘制对象的格式设置和数据内容信息,所述公文要素绘制对象包括文字框、图形、图像和表格;
模板选用用户界面,其用于供用户从模板创建单元创建的公文模板中选择合适的公文模板;
数据处理单元,其用于通过利用排版数据规范单元中形成的XML文件中所包含的可变数据替换选用的公文模板中可变公文要素绘制对象的可变数据内容来构建待排版公文的公文要素绘制对象;
净化单元,其用于从构建的待排版公文的公文要素绘制对象中删除无效的公文要素绘制对象;
排版单元,其用于根据选用的公文模板中所设置的格式对待排版公文的公文要素绘制对象中的公文要素绘制对象进行排版。
7.根据权利要求6所述的装置,其特征在于,所述数据处理单元包括:
节点树构建单元,其用于对排版数据规范单元形成的XML文件进行解析,构建公文要素数据的节点树;
模板队列构建单元,其用于对选用的公文模板进行解析,构建模板的公文要素绘制对象队列;
公文队列构建单元,其用于通过以下步骤构建待排版公文的公文要素绘制对象队列:
创建一个空的待排版公文的公文要素绘制对象队列;对于模板的公文要素绘制对象队列中数据不可变的公文要素绘制对象,通过复制该公文要素绘制对象的方式生成一个新的绘制对象,并将该绘制对象加入到待排版公文的公文要素绘制对象队列的尾部;对于模板的公文要素绘制对象队列中数据可变的公文要素绘制对象,根据该公文要素绘制对象生成一个新的不可变部分相同、可变部分的数据内容为空的绘制对象,然后从公文要素数据的节点树获取相应的公文要素的可变数据,并将该可变数据加入到所生成的绘制对象中,再将该绘制对象加入到待排版公文的公文要素绘制对象队列的尾部,
在数据处理单元构建待排版公文的公文要素绘制对象队列之后,净化单元从待排版公文的公文要素绘制对象队列中删除不必要的公文要素绘制对象,排版单元然后根据选用的公文模板中所设置的格式对待排版公文的公文要素绘制对象队列中的公文要素绘制对象进行排版。

说明书全文

一种可变公文数据的排版方法和装置

技术领域

[0001] 本发明涉及计算机排版技术领域,尤其涉及一种可变公文数据的排版方法和装置。

背景技术

[0002] 生成格式规范化的公文是国家各级行政机关公文编制的客观要求,也是充分发挥公文作用、维护公文严肃性和权威性的必要条件。在国标GB/T9704-1999《中国行政机关公文格式》中规定了国家行政机关公文通用的纸张要求、印制要求、公文中各要素排列和标识规则,在《中国共产党机关公文处理条例》中对党的机关公文格式规范也有明确规定。
[0003] 随着计算机的普及,目前公文的编制几乎都是使用计算机利用排版软件或办公软件来进行公文的印前排版,主要包括以下几种方法:
[0004] 1、批处理排版公文
[0005] 批处理排版公文是指,通过在公文的文本内容中插入格式注解及参数生成小样文件,然后由特定解释程序检查小样文件中的格式注解及参数是否正确,检查小样文件中的格式注解及参数正确之后再由程序(例如:方正书版的一扫,二扫)生成用于打印的大样文件。关于这种公文排版方法的相关内容可参见白仰东发表于《计算机技术与发展》2007年第17卷第7期上的文章“一种数据库编程排版方法的研究与实现”。
[0006] 在这种方法中,公文的文本内容由办文人员编写,描述公文格式的格式注解及参数非常专业,一般是由文印室的排版人员设定,因此,公文的内容编写和公文格式设置是分离的,导致编制公文费时、费,办文的效率低。
[0007] 2、交换式排版公文
[0008] 交换式排版公文是指办文人员利用目前通用的办公软件编写、排版公文。目前通用的办公软件都支持交换式排版。交换式排版最主要功能是所见即所得,基本功能有文字编辑、格式设置、绘制图元、排版图像等,排版结果是实时的。总体来说它的功能强大,操作简单。关于这种公文排版方法的相关内容可参见邹扬德和黄力编著的科学出版社出版的《计算机文字排版技术》。
[0009] 在这种方法中,办文人员不但要编写公文的文本内容,还要重复设置公文的格式,这样不但增加了办文人员的工作量,而且还容易导致公文格式的不规范。
[0010] 3、使用模板排版公文
[0011] 使用模板排版公文是指,首先利用排版软件编制公文模板文件,在公文模板文件中设置公文的页面大小和公文各要素的格式,一般用文字框、表格、图元和图像来表现公文的要素。办文人员在编制公文时,选用适当的模板,在对应的公文要素区域编辑内容,删除不必要的公文要素,有时还需要调整部分公文要素的格式。关于这种公文排版方法的相关内容可参见发表于《电脑知识与技术(学术交流)》2007年第12期上的文章“公文模板的制作”和张春发表于《办公自动化(综合版)》2007年第9期上的“运用Word 2003进行军队机关公文排版技巧”。
[0012] 这种方法大大减少了公文格式的设置工作,提高了办文的效率。但是,利用办公系统中已有的数据能力比较低,还需要人工输入公文要素的内容、删除不必要的公文要素,甚至在必要的情况下,还需人工调整部分公文要素的格式,这些仍然会导致公文格式的不规范。
[0013] 4、使用开发控件排版公文
[0014] 使用开发控件排版公文是指,面向特定组织,基于特定的办公自动化系统,个性化开发满足组织公文格式需要的控件,所开发的控件扩展通用办公软件的性能,能够利用办文过程中的数据,如拟文单中填写的数据。关于这种公文排版方法的相关内容可参见陈秀峰发表于《电脑爱好者》2003年第6期上的“轻松排出规范文件”。
[0015] 在这种方法中,控件需要个性化开发,通用性较差,而且,控件是基于排版软件,一般由个性化开发的程序设置公文要素的格式,具体的排版由排版软件来实现,因此,公文格式是否符合严格的规范取决于排版软件的性能,也就是说,控件不能根据实际的排版结果调整公文的格式,公文格式的整体完美度不高。此外,当公文格式规范发生时,需要重新开发控件,扩展性较低。

发明内容

[0016] 为了解决以上问题,本发明提供一种可变公文数据的排版方法和装置,以维护公文格式的规范性,实现高效、简洁的公文编制,并能顺应公文格式规范的变更和与已有的信息系统、办公自动化系统无缝集成。
[0017] 为了实现以上目的,本发明提供一种可变公文数据的排版方法,包括以下步骤:制定公文排版数据的XML格式规范;创建符合所述XML格式规范的公文模板,所述公文模板包括公文的页面设置以及公文要素绘制对象的格式设置和数据内容信息,所述公文要素绘制对象包括文字框、图形、图像和表格;将待排版公文的公文排版数据形成为符合所述XML格式规范的XML文件;通过利用所述XML文件中所包含的数据替换选用的公文模板中可变公文要素绘制对象的可变数据内容来构建待排版公文的公文要素绘制对象;从构建的待排版公文的公文要素绘制对象中删除不必要的公文要素绘制对象;根据选用的公文模板中所设置的格式对待排版公文的公文要素绘制对象中的公文要素绘制对象进行排版。
[0018] 另一方面,本发明提供一种可变公文数据的排版装置,包括:输入单元,其用于输入待排版公文的公文排版数据;格式规范制定单元,其用于制定公文排版数据的XML格式规范;排版数据规范单元,其用于将输入的待排版公文的公文排版数据形成为符合格式规范制定单元中所制定的XML格式规范的XML文件;模板创建单元,其用于创建符合格式规范制定单元中所制定的XML格式规范的公文模板,所述公文模板包括公文的页面设置以及公文要素绘制对象的格式设置和数据内容信息,所述公文要素绘制对象包括文字框、图形、图像和表格;模板选用用户界面,其用于供用户从模板创建单元创建的公文模板中选择合适的公文模板;数据处理单元,其用于通过利用排版数据规范单元中形成的XML文件中所包含的可变数据替换选用的公文模板中可变公文要素绘制对象的可变数据内容来构建待排版公文的公文要素绘制对象;净化单元,其用于从构建的待排版公文的公文要素绘制对象中删除无效的公文要素绘制对象;排版单元,其用于根据选用的公文模板中所设置的格式对待排版公文的公文要素绘制对象中的公文要素绘制对象进行排版。
[0019] 通过以上技术方案,本发明可获得如下技术效果:1)创建符合组织、机关公文格式规范要求的公文模板,能够满足严格公文格式规范的要求,维护公文格式的规范性;2)能够充分利用办公信息系统已有的公文要素的内容,实现公文的自动排版,包括让计算机自动进行公文要素内容的输入、格式的设置、无效公文要素的删除,从而实现高效、简洁的公文编制,办文效率高;3)能够顺应公文格式规范的变更,排版的公文数据具有很好的扩展性,能满足个性化的需求;4)排版的公文数据可以直接使用国家标准;5)采用精确坐标描述公文要素的位置、大小,使用行、页面微调技术,整体公文格式趋于完美;6)利用XML技术创建公文模板,模板格式描述和排版软件无关,具有很好的通用性,易于与已有的办公信息系统无缝集成。附图说明
[0020] 图1是根据本发明实施例的可变公文数据的排版方法的流程图
[0021] 图2是根据本发明实施例的将可变数据加入到公文要素绘制对象中的过程的流程图;
[0022] 图3是根据本发明实施例的将可变数据加入到容器绘制对象中的过程的流程图;
[0023] 图4是根据本发明实施例的将可变数据加入到表格绘制对象中的过程的流程图;
[0024] 图5是根据本发明实施例的文字框排版过程的流程图;
[0025] 图6是根据本发明实施例的表格排版过程的流程图;
[0026] 图7是根据本发明实施例的可变公文数据的排版装置的框图
[0027] 图8是根据本发明实施例的“公文模板”元素的XML结构图;
[0028] 图9a至图9c是根据本发明实施例的“页面设置”元素的XML结构图;
[0029] 图10a至图10c、图11a至图11d、图12a至图12g是根据本发明实施例的“预定义格式”元素的XML结构图;
[0030] 图13是根据本发明实施例的“要素呈现对象”元素的XML结构图;
[0031] 图14a和图14b是根据本发明实施例的“文字框”元素的XML结构图;
[0032] 图15是根据本发明实施例的“图形”元素的XML结构图;
[0033] 图16a至图16c是根据本发明实施例的“图像”元素的XML结构图;
[0034] 图17a至图17c是根据本发明实施例的“表格”元素的XML结构图;
[0035] 图18是根据本发明实施例的“容器”元素的XML结构图;
[0036] 图19是根据本发明实施例的节点树的结构图;
[0037] 图20是根据本发明实施例的模板绘制对象队列的示意图。

具体实施方式

[0038] 本发明的技术构思在于通过文字框、图形、图像和表格等公文要素绘制对象来呈现整个公文上的所有公文要素,例如发文机关、发文序号、主送机关、标题、正文、成文日期、红色反线、公章等,每个公文要素绘制对象指定相应公文要素的格式和数据内容信息。为了实现可变公文要素的可变数据的自动排版,使用XML技术创建与排版软件无关的格式独立的公文模板,并利用待排版公文的XML公文排版数据替换公文模板中可变公文要素绘制对象的可变数据内容来构建待排版公文的公文要素绘制对象,然后从待排版公文的公文要素绘制对象中删除不必要的公文要素,并根据公文模板所设置的格式对待排版公文的公文要素绘制对象中的公文要素进行排版。以下,将结合附图和实施例对本发明进行详细描述。
[0039] 图1是根据本发明的可变公文数据的排版方法的流程图。参照图1,该方法包括以下步骤:
[0040] 步骤S1、制定公文排版数据的XML格式规范
[0041] 在使用XML技术实现可变公文数据的排版之前,首先需要制定公文排版数据的XML格式规范。该格式规范所定义的XML结构应该满足公文主要部分、公文要素、要素内容这三个层次的结构要求,其中,公文要素绘制对象包括文字框、图形、图像和表格,要素内容包含各个公文要素的数据内容信息,作为公文排版的数据输入。
[0042] 例如,可使用国家标准GBT19667-2-2005《基于XML的电子公文格式规范》中所定义的格式规范作为本发明中公文排版数据的XML格式规范,或者也可以在该格式规范的基础上进行扩展,或者也可按照以上结构要求自定义公文排版数据的XML格式规范。
[0043] 步骤S2、创建公文模板
[0044] 在该步骤中,按照步骤S1中制定的XML格式规范,创建与排版软件无关的格式独立的公文模板,该公文模板包括公文的页面设置以及各个所要呈现的公文要素绘制对象的格式设置和数据内容信息。公文模板一般由机关组织的技术部分负责预先编制,供公文编制人员使用。
[0045] 如图8所示,“公文模板”元素包括:
[0046] (1)“模板名称”
[0047] 可选元素,用于对模板进行标识,以便对具体的公文进行排版时便于选用适当的模板。
[0048] (2)“模板描述”
[0049] 可选元素,用于给出模板本身的描述信息,以便于人们理解模板。
[0050] (3)“度量单位”
[0051] 必选元素,用于定义模板中的位置、高度、宽度和字体大小等几何量所使用的单位。
[0052] (4)“页面设置”
[0053] 必选元素,用于定义公文用纸幅面和版面尺寸,包括“纸张”和“页边距”元素,“纸张”元素定义纸型、高度和宽度,“页边距”元素定义上、下、左、右页边距。“页面设置”的XML结构如图9a至图9c所示。
[0054] (5)“预定义格式”
[0055] 必选元素,用于定义空间、段落、文字、文字框、图元等基本格式和公文要素的可变数据与绘制对象之间的对应模式,其中,空间格式定义公文要素绘制对象的位置、大小、对齐等属性;段落格式定义公文要素绘制对象的文字自然段的格式,包括首行缩进、文字对齐、行距、段落的前后间距等;文字格式定义字体(包括字体名、字体大小、字体颜色)、字形和字间距等属性;文字框格式定义文字框的边线和边空等属性;图元格式定义图元的类型、线型、线宽、颜色等属性;对应模式定义公文要素的可变数据与绘制对象之间的对应模式,包括一一对应模式和合并模式,在合并模式下,需要定义在合并的可变数据之间所增加的开始字符、间隔字符和结束字符。
[0056] “预定义格式”的XML结构如图10a至图10c、图11a至图11d、图12a至图12g所示。在图10a至图10c、图11a至图11d、图12a至图12g所示结构中,每种格式均具有各自的标识符和名称,标识符用于引用,名称便于人们理解格式表现的公文要素。
[0057] (6)“要素呈现对象”
[0058] 必选元素,包括文字框、图形、图像、表格和容器绘制对象元素,其中,文字框、图形、图像、表格和容器绘制对象元素指定相应公文要素的格式和数据内容信息,容器绘制对象元素的定义是为了更加方便地表达更加复杂的正文要素。例如,公文的排版数据可以是多个自然段,自然段的段落格式可以不同,自然段之间还可以由数量不定和次序不确定的表格、图形或图像。为了便于表达这些复杂的公文内容,容器绘制对象可以任意包含文字框、图形、图像和表格。
[0059] 如图13所示,“要素呈现对象”元素包括“文字框”、“图形”、“图像”、“表格”和“容器”元素。
[0060] “文字框”可以呈现一些独立的公文要素的内容和格式,例如,公文份数序号、秘密等级和保密期限等,其结构定义如图14和图14b所示。
[0061] “图形”可以绘制公文的红色反线,其结构定义如图15所示。
[0062] “图像”可以绘制公文的公章,其结构定义如图16a至图16c所示。
[0063] “表格”可以绘制由多个部分组成的公文要素,例如,发文机关标识或者位置相互关联的多个公文要素,比如,发文字号和签发人;需要在页面中沉底排版的版记中的多个要素,其结构定义如图17a至图17c所示。
[0064] “容器”可以任意包含文字框、图形、图像和表格,其结构定义如图18所示。
[0065] 在“文字框”、“图形”、“图像”、“表格”和“容器”这些元素中,均具有“公文要素”、“数据可变”和“空间格式引用”属性。
[0066] “公文要素”属性标识要被绘制的公文要素,以能够被计算机自动处理、识别,其表达形式可以是XPath的路径表达式。
[0067] “数据可变”属性标识绘制对象所呈现的内容是否可变,其值根据实际排版的公文数据内容确定。文字框可变是指文字框中自然段的个数、段落格式和自然段的文字是可变的,根据对应的公文数据中的自然段确定文字框中自然段的个数、段落格式和自然段的文字。表格可变是指表格的表行个数是可变的,表行可变是指表行的单元格个数是可变的,单元格可变与文字框可变相同。图形可变是指图形几何坐标是可变的。图像可变是指图像的类型、文件名或数据流是可变的。
[0068] “空间格式引用”属性标识显现对象所使用的空间格式属性,主要是该对象的位置和大小属性,定位方式可以是页面中的具体位置,也可以是显现对象之间的相对位置的偏移。
[0069] 除了以上共同属性之外,“文字框”元素还具有“文字框格式引用”属性和“自然段”元素,“文字框格式引用”属性引用前“文字框格式”元素中定义的边框和边空属性,“自然段”元素指定文字框中的文字内容的段落格式和文字格式,其值为文字框中的文字内容。“图形”元素还具有“图元格式引用”属性和“几何点坐标”元素,“图元格式引用”属性引用前述“图元格式”元素中定义的图元类型、线型、线宽和颜色等属性,“几何点坐标”元素定义图形在排版区域内定位的几何点坐标。“图像”元素还具有“图信息”和“显现开始点”元素,“图信息”元素指定图像的类型、文件名或二进制数据流的base64编码,“显现开始点”元素指定图像开始显现的像素点。“表格”元素还具有“文字框格式引用”和“表行”元素,“表行”元素又包括“单元格”元素,“单元格”元素中包括“自然段”元素,“自然段”元素指定单元格中的文字内容的段落格式和文字格式,其值为单元格中的文字内容。
[0070] 步骤S3、形成公文排版数据的XML文件
[0071] 在该步骤中,按照步骤S1中制定的XML格式规范,将公文排版数据形成为一个XML文件。在该XML文件中,应该直接使用上述公文要素的标识作为XML元素的标签,公文要素的内容作为XML元素的数据或子元素,格式特殊的自然段需要给“自然段”元素赋予有意义的属性和属性值。如果待排版的公文数据已为符合步骤S1中制定的XML格式规范的XML文件,则可以跳过这个步骤。
[0072] 步骤S4、构建待排版公文的公文要素绘制对象
[0073] 在该步骤中,通过利用所述XML文件中所包含的可变数据替换选用的公文模板中可变公文要素绘制对象的可变数据内容来构建待排版公文的公文要素绘制对象。
[0074] 以下,将给出该步骤的一个示例性的实现流程,具体如下:
[0075] 首先,对公文排版数据的XML文件进行解析,构建公文要素数据的节点树,该节点树中的节点的名称应与公文排版数据的XML文件中相应公文要素的标签相同,在使用XPath技术来选取XML文件中的节点或节点集时,可以跳过这个步骤;
[0076] 接着,选用适当的公文模板,并对该选用的公文模板进行解析,构建模板的公文要素绘制对象队列;
[0077] 接着,通过将公文要素数据的节点数和模板的公文要素绘制对象队列相关联来构建待排版公文的公文要素绘制对象队列,具体如下:
[0078] 创建一个空的待排版公文的公文要素绘制对象队列;
[0079] 对于模板的公文要素绘制对象队列中数据不可变的公文要素绘制对象,通过复制该公文要素绘制对象的方式生成一个新的绘制对象,并将该绘制对象加入到待排版公文的公文要素绘制对象队列的尾部;
[0080] 对于模板的公文要素绘制对象队列中数据可变的公文要素绘制对象,根据该公文要素绘制对象生成一个新的不可变部分相同、可变部分的数据内容为空的绘制对象,然后从公文要素数据的节点树获取相应的公文要素的可变数据,并将该可变数据加入到所生成的绘制对象中,再将该绘制对象加入到待排版公文的公文要素绘制对象队列的尾部。
[0081] 以下,为了描述简便,将以上通过将公文要素数据的节点数和模板的公文要素绘制对象队列相关联来构建待排版公文的公文要素绘制对象队列的过程简称为可变数据替换过程,将“模板的公文要素绘制对象队列”简称为“模板绘制对象队列”,将“待排版公文的公文要素绘制对象队列”简称为“公文绘制对象队列”。
[0082] 图2是可变数据替换过程的流程图。在该流程图中,创建一个已获取节点集的映射表,用于保存该节点集的要素名称、以及节点集中每个节点的值,每一个节点为一个列表项,具体如下:
[0083] 步骤S201、建立一个空队列,用来维护待排版公文的公文要素绘制对象,即,该队列为公文绘制对象队列;
[0084] 步骤S202、从模板绘制对象队列中从头开始依次获取一个绘制对象,获取到对象则进入步骤S203,否则结束可变数据替换过程;
[0085] 步骤S203、判断获取对象是否可变,如果不可变,则进入步骤S204,如果可变,则进入步骤S205;
[0086] 步骤S204、通过复制获取对象的方式产生一个新的绘制对象,并将该绘制对象加入到公文绘制对象队列的尾部,然后跳转到步骤S202;
[0087] 步骤S205、根据获取对象,新建一个仅可变部分不同的对象,新建时,可变部分的内容为空;
[0088] 步骤S206、根据新建的对象找到可变部分对应的公文要素,即,数据可变的公文要素,如果数据可变的公文要素是表格或容器,则由于表格、容器可能含有多个部分,所以需要循环处理;
[0089] 步骤S207、根据数据可变的公文要素,在已获取节点集的映射表中查找对应的节点集,如果找到对应的节点集,则进入步骤S209,否则进入步骤S208;
[0090] 步骤S208、根据数据可变的公文要素从公文排版数据的XML文件中或者公文要素数据的节点树中获取对应的节点或节点集,如果获取的是单个节点,则进入步骤S213,如果获取的是节点集,则进入步骤S209;
[0091] 步骤S209、判断数据可变的公文要素(即,可变公文要素)的对应模式,如果可变公文要素的对应模式是合并模式,则进入步骤S210,如果可变公文要素的对应模式是一一对应模式,则进入步骤S211;
[0092] 步骤S210、将节点集中的节点的数值按照定义的合并模型进行合并,形成可变数据,并进入步骤S214;
[0093] 步骤S211、从节点集头部移出一个节点;
[0094] 步骤S212、将移出后的节点集保存到已获取节点集的映射表中,保存方式是:待保存节点集为空时,删除映射表的对应项;节点集不为空时,映射表中没有对应要素项时,增加表项;有对应要素项时,覆盖已有表项;
[0095] 步骤213、将步骤S208中获取的节点或者步骤S211中移出的节点作为待处理节点;
[0096] 步骤S214、从待处理节点中获取数值作为可变数据;
[0097] 步骤S215、将可变数据加入到步骤S205中新建的绘制对象中,并将该绘制对象加入到公文绘制对象队列的尾部,然后跳转到步骤S202。
[0098] 其中,在步骤S215中,在不同的绘制对象中加入可变数据,需要分别根据具体的绘制对象进行不同的处理。
[0099] 对于可变的容器绘制对象,由于其可变数据本身可以是自然段、表格、图像、图形等子节点任意组成的节点集合,所以需要根据可变数据中所包含的这些节点产生该容器定义的文字框、表格、图像、图形等绘制子对象,并用节点树中子节点的数据替换子绘制对象的内容,即,在子对象中加入子节点的数据。参照图3,具体流程如下:
[0100] 步骤S301、从公文要素数据的节点树中依次获取一个子节点,没有获取到子节点,则结束容器对象可变数据替换过程,否则进入步骤S302;
[0101] 步骤S302、根据子节点的标签产生子绘制对象;
[0102] 步骤S303、在子绘制对象中加入该子节点的数据;
[0103] 步骤S304、将子绘制对象加入到子对象列表中,并跳转到步骤S301。
[0104] 在以上可变数据替换过程完成之后,将得到的子对象列表中的子绘制对象依次加入到公文绘制对象队列的尾部。
[0105] 对于可变的表格绘制对象,由于其可变数据是表行子节点集合,表行子节点又包含单元格子节点集,所以需要根据表格绘制对象的可变数据中所包含的子节点动态增加表行,根据表行绘制对象的可变数据中所包含的子节点动态增加单元格。此外,加入单元格中的可变数据为自然段子节点或子节点集时,根据这些子节点动态增加自然段,并设置段落的文字内容。如果自然段子节点有标题级别的属性,则选用标题级别相同的预定义段落为自然段格式,如果自然段子节点没有标题级别的属性,则使用公文模板中所定义的段落格式。参照图4,具体流程如下:
[0106] 步骤S401、从公文要素数据的节点树中依次获取一个表行节点集,如果没有获取到,则结束表格绘制对象可变数据替换过程,否则,进入步骤S402;
[0107] 步骤S402、在表格绘制对象中新建一个表行绘制对象;
[0108] 步骤S403、从表行节点集中依次获取一个单元格子节点,如果获取到单元格子节点,则进入步骤404,如果没有获取到,则进入步骤S407;
[0109] 步骤S404、新建一个单元格绘制对象;
[0110] 步骤S405、将单元格子节点中的数据加入到新建的单元格绘制对象中;
[0111] 步骤S406、将新建的单元格绘制对象加入到表行绘制对象中,并跳转到步骤S402;
[0112] 步骤S407、将新建的表行绘制对象加入到表格绘制对象的表行队列中,并跳转到步骤S401。
[0113] 这里,应该理解,以上公文要素数据的节点树和绘制对象队列仅仅是示例性的,还可以以任何其它数据结构来表示公文要素数据和绘制对象的层次关系,例如链表、图等。
[0114] 步骤S5、净化公文绘制对象队列中无效的公文要素绘制对象
[0115] 公文模板中某些预定义的公文要素在具体的公文中可能不需要。只要输入的公文排版数据文件没有这些公文要素或者有但是其内容为空,则这些要素的绘制对象就是无效的绘制对象,因此,在对公文模板中的可变数据进行替换后,应该从公文绘制对象队列中移除这些无效的要素绘制对象,这个过程即称为净化过程。通过净化,即,自动删除无效的可变的绘制对象,得到有效的内容正确的公文要素绘制对象。
[0116] 步骤S6、排版公文要素绘制对象
[0117] 公文要素的排版就是依次排版公文要素绘制对象队列中的每个对象。在当前页面中按照绘制对象的位置、大小和对齐的空间格式定义进行站位排版。通过绘制对象相对间距定位绘制对象时,如果该对象在当前页面不能排放时,应在下页排版。文字框、表格由于内容会导致跨页排版。简而言之,根据模板中所设置的格式进行流式排版,并支持跨页流式。排版后,可形成多页的公文页面,文字框、图形、图像和表格呈现在页面上。
[0118] 具体地,图形、图像、固定文字框和固定表格直接在定义的区域内排版,内容排好后,再将它移动到页面中定义的位置。根据内容自动调整区域的文字框和表格在无限的区域内排版,内容排好后,按页面可用区域分切排好的内容,内容跨页排放。排满一页后,要对该页进行微调,即使已排的内容在版心底部的空白区域中均分排列,尽可能使排版内容撑满整个版心,使公文版面完美。
[0119] 图形、图像的内容排版就是在排版区域内确定几何点。
[0120] 文字框的排版实质是在排版区域内排版文字内容。根据文字框格式确定自然段的排版区域。在自然段的排版区域内,根据自然段节点,依次排版自然段。排版段落时,根据段落格式确定段落首行的位置。解析自然段的文字流,根据文字格式在一行内依次排放文字。当文字为换行符或文字超出行宽时,就需要进行行拆分,形成一个文字行。行拆分时,要判断是否是行尾、行首禁止的文字,即要在非禁止的文字处进行行拆分。行拆分后,要对行内文字进行微调,即用文字间距均分行尾的空余,使文字撑满整行。重复进行行排版,直到段落中文字被排完,再调整自然段中所有行,即行对齐操作。为段落留出段距的后空,完成一个自然段的排版,并给出下一个自然段的可排区域,重复进行自然段的排版,直到自然段被排完,再计算出文字框所占区域,并在页面中排放文字框。
[0121] 图5是文字框排版过程的示例性流程图,具体如下:
[0122] 步骤S501、根据文字框格式确定自然段的排版区域;
[0123] 步骤S502、依次获取文字框中的自然段,如果没有获取到,则进入步骤S503,否则获取到,则进入步骤S505;
[0124] 步骤S503、计算文字框实际所占区域;
[0125] 步骤S504、在页面中排放文字框,并结束该文字框排版过程;
[0126] 步骤S505、设置当前行的位置;
[0127] 步骤S506、依次获取自然段中的文字,如果没有获取到,则进入步骤S507,如果获取到文字,则进入步骤S508;
[0128] 步骤S507、调整段中的所有行,增加段后距,并跳转到步骤S502;
[0129] 步骤S508、计算文字的高和宽;
[0130] 步骤S509、判断是否要换行,如果要换行,则进入步骤S510,否则进入步骤S513;
[0131] 步骤S510、拆分当前行;
[0132] 步骤S511、微调当前行中的文字;
[0133] 步骤S512、将下一行设为当前行,并跳转到步骤S505;
[0134] 步骤S513、将当前文字加入到当前行中,并跳转到步骤S506。
[0135] 表格内容的排版实质是重复表行的排版,表行的排版实质是重复排版其中的单元格。单元格的排版和文字框相同。当一个表行中的单元格都被排版后,要调整这些单元格的位置,根据表格的平对齐属性对行中单元格进行对齐。当表格所有表行被排版后,根据表格的竖直对齐属性对表行进行对齐。
[0136] 图6是表格排版过程的示例性流程图,具体如下:
[0137] 步骤S601、计算表格可排区域;
[0138] 步骤S602、依次获取表行,如果没有获取到表行,则进入步骤S603,否则进入步骤S605;
[0139] 步骤S603、调整表中的所有表行;
[0140] 步骤S604、计算表格所占的区域,并在页面中排放表格,结束该表格排版过程;
[0141] 步骤S605、计算表行可排区域;
[0142] 步骤S606、依次获取行的单元格,如果没有获取到单元格,则进入步骤S607,否则进入步骤S609;
[0143] 步骤S607、调整行中的所有单元格;
[0144] 步骤S608、计算行实际所占区域,并跳转到步骤S602;
[0145] 步骤S609、计算单元格的可排区域;
[0146] 步骤S610、排版单元格,并跳转到步骤S606。
[0147] 从以上描述可看出,在本发明中,排版主要采用确定可排区域,内容排版,移动到具体位置的机制。排版中使用了行内文字的调整,段落内的行调整,表行内的单元格调整,表格内的行调整,页面中的绘制对象的整体调整等方法,使公文的整体版面完美。并且,对自然段进行标识,以设置公文正文中的子标题的格式。
[0148] 这里指出,当需要对公文进行手工编辑时,也可先对公文绘制对象队列的每个绘制对象进行排版,然后再净化无效的公文要素,这样可以对无效的公文要素进行编辑。在这种情况下,在编辑和净化无效的公文要素之后,还需要重新排放公文要素绘制对象队列中的所有对象,并进行页面调整。
[0149] 此外,替换可变数据之前形成公文排版数据的XML文件和创建公文模板的顺序并不限于以上顺序,可根据实际情况改变。
[0150] 以下,将通过一个具体实例来对本发明进行进一步的说明。
[0151] 在该实例中,待排版的公文排版数据的XML文件如下:
[0152]
[0153] 从以上XML文件可看出,待排的可变公文要素包括发文字号、标题、主送机关、正文和成文日期。对该XML文件进行解析,创建如图19所示的公文要素数据的节点树。
[0154] 对于以上公文排版数据,选用如下公文模板:
[0155]
[0156]
[0157]
[0158]
[0159] 在以上公文模板中,数据不可变的公文要素绘制对象包括公文要素“发文机关”的文字框绘制对象和公文要素“红色反线”的图形绘制对象,数据可变的公文要素绘制对象包括公文要素“发文字号”的表格绘制对象、公文要素“标题”的文字框绘制对象、公文要素“主送机关”的文字框绘制对象、公文要素“正文”的文字框绘制对象、公文要素“成文日期”的文字框绘制对象,其中,公文要素“主送机关”的文字框绘制对象定义其相关联的公文要素“主送机关”的数据的对应模式为合并模式,该合并模式利用结束字符“:”和间隔字符“、”将以上所示节点树中可变公文要素“主送机关”的数据合并到一个公文要素“主送机关”的文字框绘制对象中。
[0160] 对以上公文模板进行解析,创建如图20所示的模板绘制对象队列。
[0161] 在获得模板绘制对象队列和公文要素数据的节点树之后,将公文绘制对象队列和公文要素数据的节点树进行关联,从节点树中获取数据可变的公文要素的对应节点中的数据,并根据具体的数据内容构造具体的绘制对象,从而得到公文绘制对象队列。具体如下:
[0162] 首先,从模板绘制对象队列中获取两个数据不可变的公文要素“发文机关”和“红色反线”的绘制对象,并通过复制这两个绘制对象的方式生成两个相同的新的绘制对象,并将这两个绘制对象加入到公文绘制对象队列的尾部;
[0163] 接着,依照顺序,从模板绘制对象队列中获取数据可变的公文要素“发文字号”的表格绘制对象,并新建一个仅可变部分不同的表格绘制对象,然后按照图4所示流程从公文要素数据的节点树中获取节点“发文字号”中的数据,并将获取的数据加入到新建的表格绘制对象中,最后将该表格绘制对象加入到公文绘制对象队列的尾部;
[0164] 接着,从模板绘制对象队列中获取数据可变的公文要素“标题”的文字框绘制对象,新建一个仅可变部分不同的文字框绘制对象,然后从公文要素数据的节点树中获取节点“标题”中的数据,并将获取的数据加入到新建的文字框绘制对象的自然段元素中,最后将该表格绘制对象加入到公文绘制对象队列的尾部;
[0165] 接着,从模板绘制对象队列中获取数据可变的公文要素“主送机关”的文字框绘制对象,新建一个仅可变部分不同的文字框绘制对象,然后从公文要素数据的节点树中获取到由三个节点“主送机关”构成的节点集,根据合并模式,利用结束字符“:”和间隔字符“、”将这三个节点“主送机关”中的数据合并起来,形成可变数据“各区教育局、城职院、各直属学校:”,将该可变数据加入到新建的文字框绘制对象的自然段元素中,最后将该文字框绘制对象加入到公文绘制对象队列的尾部;
[0166] 接着,依次从模板绘制对象队列中获取数据可变的公文要素“正文”和“成文日期”的文字框绘制对象,其可变数据替换过程与公文要素“标题”的文字框绘制对象相同。
[0167] 根据以上构建的公文绘制对象队列,可生成以下XML文件:
[0168]
[0169]
[0170]
[0171]
[0172] 构建公文绘制对象队列之后,自动删除公文绘制对象队列中无效的可变的绘制对象,得到有效的内容正确的公文要素绘制对象,并如上所述根据公文模板中所设置的格式对这些有效的公文要素绘制对象进行流式排版,支持跨页流式。最终排版效果如下所示:
[0173] ××市教育局
[0174]
[0175] ×教办发〔2010〕30号
[0176] 转发省府办公厅关于印发××省突发事件预警信息发布管理办法(试行)的通知
[0177] 各区教育局、城职院、各直属学校:
[0178] 现将市府办《转发省府办公厅关于印发××省突发事件预警信息发布管理办法(试行)的通知》(×府办〔2010〕33号)转发给你们,请认真贯彻执行。
[0179] 二○一○年六月二日
[0180] 从以上描述可看出,本发明通过创建符合组织、机关公文格式规范要求的公文模板来维护公文格式的规范性,并利用公文模板仅替换可变公文要素的可变数据,从而可充分利用办公信息系统已有的公文要素的内容。此外,通过自动删除无效的公文要素和排版有效的公文要素来实现公文的自动排版,从而大大减少了公文排版的劳动量,公文排版效率极高,且版面完美。
[0181] 另一方面,本发明相应地提供一种可变公文数据的排版装置。参照图7,该装置包括:输入单元100,其用于输入待排版公文的公文排版数据;格式规范制定单元200,其用于制定公文排版数据的XML格式规范;排版数据规范单元300,其用于将输入的待排版公文的公文排版数据形成为符合格式规范制定单元200中所制定的XML格式规范的XML文件;模板创建单元400,其用于创建符合格式规范制定单元200中所制定的XML格式规范的公文模板,所述公文模板包括公文的页面设置以及公文要素绘制对象的格式设置和数据内容信息,所述公文要素绘制对象包括文字框、图形、图像和表格;模板选用用户界面500,其用于供用户从模板创建单元400创建的公文模板中选择合适的公文模板;数据处理单元600,其用于通过利用排版数据规范单元300中形成的XML文件中所包含的可变数据替换选用的公文模板中可变公文要素绘制对象的可变数据内容来构建待排版公文的公文要素绘制对象;净化单元700,其用于从构建的待排版公文的公文要素绘制对象中删除无效的公文要素绘制对象;排版单元800,其用于根据选用的公文模板中所设置的格式对待排版公文的公文要素绘制对象中的公文要素绘制对象进行排版。
[0182] 其中,数据处理单元600进一步包括:节点树构建单元601,其用于对排版数据规范单元300形成的XML文件进行解析,构建公文要素数据的节点树;模板队列构建单元603,其用于对选用的公文模板进行解析,构建模板的公文要素绘制对象队列;公文队列构建单元605,其用于通过以下步骤构建待排版公文的公文要素绘制对象队列:创建一个空的待排版公文的公文要素绘制对象队列;对于模板的公文要素绘制对象队列中数据不可变的公文要素绘制对象,通过复制该公文要素绘制对象的方式生成一个新的绘制对象,并将该绘制对象加入到待排版公文的公文要素绘制对象队列的尾部;对于模板的公文要素绘制对象队列中数据可变的公文要素绘制对象,根据该公文要素绘制对象生成一个新的不可变部分相同、可变部分的数据内容为空的绘制对象,然后从公文要素数据的节点树获取相应的公文要素的可变数据,并将该可变数据加入到所生成的绘制对象中,再将该绘制对象加入到待排版公文的公文要素绘制对象队列的尾部。
[0183] 在数据处理单元600构建待排版公文的公文要素绘制对象队列之后,净化单元700从待排版公文的公文要素绘制对象队列中删除不必要的公文要素绘制对象,排版单元
800然后根据选用的公文模板中所设置的格式对待排版公文的公文要素绘制对象队列中的公文要素绘制对象进行排版。
[0184] 这里,应该理解,以上功能和结构模划分仅仅是示例性的,可根据实际需要根据本发明方法进行各种模块划分。
[0185] 以上已参照附图和实施例对本发明进行了详细描述,但是,应该理解,本发明并不限于以上所公开的具体实施例,任何本领域的技术人员在此基础之上容易想到的修改和变型都应包括在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈