一种利用结构化数据实现文档内容自动更新的方法及系统的制作方法

文档序号:6585230阅读:274来源:国知局
专利名称:一种利用结构化数据实现文档内容自动更新的方法及系统的制作方法
技术领域
本发明涉及计算机排版技术领域,尤其涉及一种利用结构化数据实现文档内容自 动更新的方法及系统。
背景技术
目前,在印刷排版行业中,出版社经常出版一些版式相同、内容不同的出版物,比 如,相同科目的试卷、政府机关的红头文件以及一些报表等等。出版社绝大多数均采用人工 修改模板的方式来实现文档内容的更新,这种方式费时费力、工作量大、周期长、出错率高, 所花费的成本也高。对于其他企事业单位和大多数个人,对于相同模板的内容更新,往往也 只能依靠人工修改来完成。因此,如何提高出版物和其它文档的排版效率,成为当前计算机 排版技术中的重要问题。在申请号为20061011M98. 6的中国专利申请“一种文字的可变数据排版的方法” 中,提出了 一种能够自动更新文档内容的方法。在该方法中,首先将设计好的文字流模板解 析,从段、行、可变内容项三个层次构建节点数,并将节点数与排版数据进行关联,然后根据 排版内容依次对段、行、可变内容项进行逐级展开,从而实现排版内容的多层次嵌套式的可 变数据排版。但是,这种方法必须依靠文档格式所对应应用程序的排版引擎,在没有应用程 序的排版引擎的情况下无法实现内容更新。

发明内容
为了解决现有技术中的以上问题,本发明提供一种利用结构化数据实现文档内容 自动更新的方法及系统,以在不依靠文档格式所对应应用程序的排版引擎的情况下实现文 档内容的自动更新。为了实现以上目的,本发明提供的利用结构化数据实现文档内容自动更新的方法 包括以下步骤将数据源中需要更新的内容生成结构化文件;利用文档格式开放的排版软 件设计并创建符合应用场景的文档模板;将所生成的结构化文件转换为所述开放文档格式 的模板组件;用转换后的组件替换文档模板中的相应组件,并根据该文档模板生成最终的 文档。相应地,提供一种利用结构化数据实现文档内容自动更新的系统,包括数据输入 单元,输入数据源,并将数据源发送给处理单元;处理单元,对从数据输入单元接收的数据 源进行处理,以生成其中相应内容被该数据源替换的文档,并将替换文档发送给文档输出 单元;文档数据单元,输出从处理单元接收的替换文档。本发明将数据源中需要更新的数据生成结构化文件,通过样式表将该结构化文件 转换为符合开放文档格式的模板组件,并用该组件替换该格式文档模板中的相应组件,从 而实现在文档版式、内容样式保留的情况下文档内容的自动更新。在文档模板制作完成之 后,不需要人为地进行任何排版操作,就能够利用数据源提供的数据和根据结构化文件而 创建的样式表快速而准确地更新文档内容。此外,由于本发明基于xml进行数据交换,所以可在不依靠文档格式所对应应用程序的排版引擎的情况下实现文档内容的自动更新。


图1是根据本发明的利用结构化数据实现文档内容自动更新的方法的流程图;图2是用于解释图1所示方法的示图;图3是所设计的文档模板效果图;图4是所设计的数据结构的示意图;图5是文档更新效果图;图6是根据本发明的利用结构化数据实现文档内容自动更新的系统的框图。
具体实施例方式本发明适用于任意文档格式开放的排版软件所输出的文档,目前文档格式开放的 排版软件,比如,微软office 2007 —般采用基于xml组件的格式规范。以下,将结合附图 和实施例对本发明进行详细描述。图1是根据本发明的利用结构化数据实现文档内容自动更新的方法的流程图,图 2是用于解释图1所示方法的示图。参照图1和图2,该方法包括以下步骤步骤Si、数据结构化步骤在该步骤中,将数据源中需要更新的内容生成结构化文件。具体地,设计文档所需更新内容的数据结构和规范化文件,提取数据源中需要更 新的内容生成结构化文件,并利用所设计的规范化文件对该结构化文件进行规范性验证, 以使该结构化文件符合所设计的结构化规范。这里,结构化文件一般为XML文件,规范化文 件为用于规范XML文件的khema或DTD文件。通常需要根据用户不同的要求制定khema 或DTD文件。这里,数据源可以是一个数据库中的数据,也可以是以其它形式保存的电子数 据。步骤S2、文档模板创建步骤在该步骤中,利用文档格式开放的排版软件设计并创建符合应用场景的文档模 板。这里,所述文档格式开放的排版软件是指该软件所生成的文档结构开放给所有用 户。比如,微软的Office 2007系列软件由于采用基于XML和Zip技术的00XML(0ffice Open XML)文档格式标准(相关内容可参见微软官方网站http//www. microsoft, com/ china/msdn/library/office/office/fford2007XMLFormat. mspx ? mfr = true),所以其文 档模板中的所有ml组件可以开放使用。在实际操作中,比如,对于word 2007,首先打开一 篇空白word文档,然后在该文档中根据需要创建模板,在模板创建完成之后,利用符合Zip 压缩规范的压缩工具对该模板进行解压,从而获得该文档模板中的所有XML组件。获得这 些xml组件之后,便可通过xml文件来更新其中的xml组件,从而更新文档内容。此外,所述符合应用场景的模板是指特定环境下的文档样式,比如,政府机关常采 用的红头文件等。步骤S3、转换步骤在该步骤中,将所生成的结构化文件转换为符合所用开放文档格式的模板组件。
在本发明中,可利用XSLT转换技术创建一个样式表文件,该样式表文件用于将根 据数据源生成的XML文件转换为一个符合所用开放文档格式的模板组件,即,一个新的XML 文件。XSLT转换技术为XML开发技术人员已知的一种转换技术,因此,省略其描述。当然, 也可使用其它任何XML转换技术来创建样式表文件。步骤S4、文档更新步骤在该步骤中,用转换后的组件替换文档模板中的相应组件,并根据该文档模板生 成最终的文档。比如,对于微软Office 2007,由于其文档为一个zip压缩文件,所以在文档模板 的组件更新之后需要利用符合Zip压缩规范的压缩工具对该模板中的所有文件夹和文件 进行压缩,从而生成最终的文档。从以上描述可看出,本发明将数据源中需要更新内容的数据生成xml文件,通过 xslt样式表将该xml文件转换为一个新的符合所利用的开放文档格式的xml文件,并用该 xml文件替换该开放文档格式文档模板中的相应xml文件,从而实现文档模板的更新,进而 更新文档内容。以下,将结合一个具体的示例对本发明进行进一步的说明。在该示例中,以word 2007作为本发明中所述文档格式开放的排版软件的示例进 行描述。首先,人工利用word 2007创建一个如图3所示的简历模板。在该简历模板中,所 需要更新的内容包括姓名、日期、地址、电话号码、电子邮件地址、网站地址、目标职位和教 育信息,其中,教育信息又包括毕业学校和毕业日期。对于这些需要更新的内容,建立如图 4所示的数据结构。然后,根据图4所示的数据结构将数据源中需要更新的这些内容生成以下xml文件。< ? xml version = “ 1.0〃 encoding = “ UTF-8" ? ><DocRoot><name> 李林 </name><picture>E:\ 我的照片.jpg</picture><date>20091102</date><address> 北京市海淀区 </address><tel>010-8253110</tel><email>lilnil26. com</email><web>www. lilin. com</web><post> 工程师 </post><education><university> 北京大学 </university><graduationData>2007-07-01</graduationData></education></DocRoot>接着,利用xslt样式表对以上xml文件进行转换,在转换过程中,需要将链接的资 源(如图3中picture节点所链接的图片)进行拷贝到Word组件word/media目录下,并 在组件doucmen. xml. rels中将转换后图片对应的资源Id与该图片拷贝后的位置(media/我的照片.jpg)关联起来,从而生成以下xml文件,该xml文件符合OOXML规范。以下xml 文件中省略了部分对段落,文字,表格属性的描述。< ? xml version = “ 1.0〃 encoding = “ UTF—8" standalone = “ yes" ? ><w document xmlns ve = “ http://schemas.openxmlformats.org/ markup-compatibility/2006“xmlns:o =“ urn:schemas-microsoft-com:office:office"xmlns:r = " http://schemas.openxmlformats.org/officeDocument/2006/ relationships"xmlns:m = " http://schemas.openxmlformats.org/officeDocument/2006/ math “xmlns:ν =" urn:schemas-microsoft-com:vml"xmlns: wp = " http://schemas.openxmlformats.org/drawingml/2006/ wordprocessingDrawing"xmlns:wlO = " urn:schemas-microsoft-com:office:word"xmlns:w = " http://schemas.openxmlformats.org/wordprocessingml/2006/ main"xmlns:wne = " http://schemas.microsoft.com/office/word/2006/wordml" ><w:body><w:sdt><w:sdtPr><w:alias w:val =“简历姓名〃 /><w:tag w:val =〃 简历姓名〃 /><w:id w:val = " 809426422〃 /><w:placeholder〉<w:docPartw:val = " BFACF5F3CFA24710BDC4D67586D0E78B"
/></w: placeholder〉<w:docPartList><w:docPartGallery w:val = " Quick Parts" /><w:docPartCategory w:val = 〃简历姓名〃 /></w:docPartList></w:sdtPr><w:sdtContent><w:tbl><w:tblGrid><w:gridCol w:w =" 2278〃 /><w:gridCol w:w =" 7577〃 /></w:tblGrid><w:tr w:rsidR = " 00B061EF" >
<w:trPr><w :trHeight w:val = “ 648〃 /></w:trPr><w:tc><w:p w:rsidR = " 00B061EF" w:rsidRDefault ="00B061EF" ></w:p></w:tc><w:tc><w:p w:rsidR = " 00B061EF" w:rsidRDefault ="009D42F5"w:rsidP = " 00BE7E26" ><w:sdt><w:sdtContent><w:r w:rsidR = " 00BE7E26" ><w:rPr><w:rFonts w:hint ="eastAsia" /></w:rPr><w:t> 李林 </w:t></w:r></w:sdtContent></w:sdt></w:p></w:tc></w:tr><w:tr w:rsidR = " 00B061EF" ><w:trPr><w :trHeight w:val = " 144〃 /></w:trPr><w:tc>......<w:sdt><w:sdtContent><w:p w:rsidR =" 00B061 EF"w:rsidRDefault = " 00BE7E26" ><w:r><w:t>2009-ll-2</w:t></w:r>
</w:p></w:sdtContent></w:sdt></w:tc><w:tc><w:p w:rsidR = " 00B061EF" w:rsidRDefault
=〃 00B061EF" />
="002368FA" >
="0" distL ='distR ='
="1222036" />
=〃 19050〃 t ='b=〃 0〃
图片 1〃 descr ='E:\ 我的照片.jpg" /><wp:cNvGraphicFramePr><a:graphicFrameLocksxmlns: a = " http://schemas.openxmlformats.org/drawingml/2006/ main"noChangeAspect =" 1" /></wp:cNvGraphicFramePr><a: graphicxmlns:a = " http://schemas.openxmlformats.org/drawingml/2006/main" ><a: graphicDatauri =" http://schemas.openxmlformats.org/drawingml/2006/picture" ><pic:picxmlns: pic = " http://schemas.openxmlformats.org/drawingml/2006/
picture" >
"O" "0〃 >
</w:tc> </w:tr>
<w:trw:rsidR = " 00B061EF" > <w:tc>
<w:p WirsidR = " 00B061EF" w:rsidRDefault
<w:r>
<w:drawing)
<wp: inline distT=" O" distB
<wp:extent cx =" 857250" cy
"0〃 r =" O"
/>
<wp:effectExtent 1
<wp:docPr id = ‘ 1 ‘ name =descr = “ E:\我的照片.jpg" />
<pic:nvPicPr>
<pic:cNvPr id=" 0"name = " Picture 1"
<pic:cNvPicPr>
<a:picLocksnoChangeAspect = " 1〃 noChangeArrowheads = “ 1“ />
pic:cNvPicPr>
pic:nvPicPr>
<pic:blipFill>
<a:blip r:embed=" rld8"
print
</ </estate ="
<a:srcRect/>
<a:stretch>
<a:fillRect/>
a:stretch>

bwMode = '’ auto" >
χ=" 0〃 y =" 0〃 />
cx=" 858030"cy=〃 1223148"
prst = " rect" >
“/>
</pic:blipFill> <pic:spPr
<a:xfrm>
<a:off
<a:ext
</a:xfrm> <a:prstGeom<a:avLst/></
a:prstGeom><a:noFill/><a:ln w
=〃 9525〃 >
<a:noFill/>
<a:miterIim = " 800000〃 />
<a:headEnd/>
<a:tailEnd/></a:ln></pic:spPr></pic:pic></a:graphicData></a: graphic)</wp: inline)</w: drawing)</w:r></w:p></w:tc><w:tc><w:p w:rsidR =" 00B061EF" w:rsidRDefault ="00BE7E26" ><w:pPr><w:pStyle w:val = " aff6" /></w:pPr><w:r><w:rPr><w:rFonts w:hint = " eastAsia" /></w:rPr><w:t>20091102</w:t></w:r><w:r><w:rPr>
<WrFouts Whint一”eastAsia”/>
</wrPr>
<Wt>北京市海淀区</wt>
</wr>
<Wr WFSidR一” OOE46824” >
<Wbr/>
</wr>
<Wr>
<WrPr>
<WrFonts Whint一” eastAsia” />
]</wrPr>
<Wt>010—8353llO</wt>
</wr>
<Wr WFSidR一” OOE46824” >
<Wbr/>
</wr>
<Wr>
<WrPr>
<WrFonts Whint一” eastAsia” />
</wrPr>
<Wt>lilin@126.com</wt>
</wr>
</wD>
<WD WFSidR一” OOg061EF” WFSidRDefaul七一”OOBE7E26”
WFSidP一”OOBE7E26”>
<WDPr>
<WpStyle Wval一”aff6”/>
</wDPr>
<Wr>
<WrPr>
<WrFonts Whint一” eastAsia” />
</wrPr>
<Wt>WWW.1ilin.com</wt>
</wr>
</wD>
</w:tc></w:tr></w:tbl><w:p w:rsidR = “ 00B061EF " w:rsidRDefault =〃 009D42F5" /></w:sdtContent></w:sdt><w:tbl><w:tblGrid><w:gridCol w:w = " 2309〃 /><w:gridCol w:w = " 7545〃 /></w:tblGrid><w:tr w:rsidR = " 00B061EF" ><w:tc><w:p w:rsidR = “ 00B061EF “ w:rsidRDefault ="00B061EF" ></w:p></w:tc><w:tc>
="00E46B24" >
="00BE7E26" >

="00E46B24" >
<w:p w:rsidR = “ 00B061EF “ w:rsidRDefault <w:r>
<w:t>目标职位</w:t> </w:r> </w:p>
<w:p w:rsidR = " 00B061EF" w:rsidRDefault
<w:r>
<w:t> 工程师 </w:t> </w:r> </w:p>
<w:p w:rsidR = " 00B061EF" w:rsidRDefault
<w:pPr>
<w:pStyle w:val =〃 a8〃 /> </w:pPr> <w:r>
<w:t> 学历 </w:t> </w:r>
</w:p><w:p w:rsidR = " 00B061EF" w:rsidRDefault ="00BE7E26" ><w:r><w: t> 北京大学 </w: t></w:r></w:p><w:p w:rsidR = " 00B061EF" w:rsidRDefault ="00BE7E26"w:rsidP = " 00BE7E26" ><w:r><w:t>2007-7-l</w:t></w:r></w:p></w:tc></w:tr></w:tbl></w:body></w: document)接着,将所建立的文档模板解压,获得该模板中的全部xml组件,并将以上xml文
件替换word模板中的document, xml文件,从而实现模板的更新。然后,将该模板压缩,形成 最终的文档,如图5所示。在图5中,在简历模板的相应位置中添加了需要更新的内容。相 应地,本发明提供一种利用结构化数据实现文档内容自动更新的系统。如图6所示,该系统 包括数据输入单元10,输入数据源,并将数据源发送给处理单元20 ;处理单元20,对从数 据输入单元10接收的数据源进行处理,以生成其中相应内容被该数据源替换的文档,并将 替换文档发送给文档输出单元30 ;文档数据单元30,输出从处理单元20接收的替换文档,其中,处理单元20包括设计单元22,设计用于规范数据结构的规范化文件和用 于将所述数据结构转换为相应的模板组件的样式表文件,并将规范化文件发送给文件生成 单元23,将样式表文件发送给转换单元M,此外,还利用文档格式开放的排版软件设计并 创建符合应用场景的文档模板,并将该文档模板发送给转换单元M ;文件生成单元23,根 据从设计单元22接收的规范化文件将从数据输入单元接收的数据源中需要更新的内容生 成结构化文件,并将该结构化文件发送给转换单元M ;转换单元对,利用从设计单元22接 收的样式表将从文件生成单元23接收的结构化文件转换为符合所用开放文档格式的模板 组件,并用该组件替换从设计单元接收的文档模板中的相应组件,然后将根据该文档模板 生成的最终文档发送给文档输出单元。比如,如果利用微软office系列软件创建文档模板,则设计单元利用该软件创建 文档模板之后,利用符合Zip压缩算法的压缩工具进行解压以获得所述文档模板中的所有 组件,并将这些组件发送给转换单元,转换单元在用转换后的组件替换文档模板中的相应 组件之后,对该文档模板进行压缩以获得最终的替换文档。个系统,对于利用文档格式开放的排版软件而创建的某一特定格式的文档 模板(比如,政府机关的红头文件和特定格式的报表等),利用系统预先为该格式创建好的 schema文件和xslt样式表,能够自动、快速地更新该文档模板中的相应组件,从而更新文 档,而不需要文档格式所对应应用程序的排版引擎。从以上描述可看出,对于目前任意文档格式开放的排版软件,由于可获得其文档 模板中的全部ml组件,因此,通过将所需更新内容的数据转换为模板中相应的xml组件, 就可实现模板的更新,从而实现文档的更新。具体地讲,在本发明中,首先将数据源中需要 更新的数据生成xml文件,通过样式表将该xml文件转换为一个新的符合所用开放文档格 式的xml文件,并用该xml文件替换文档模板中的相应文件,从而实现在文档版式、内容样 式保留的情况下文档内容的自动更新。在文档模板制作完成之后,不需要人为地进行任何 排版操作,就能够利用数据源提供的数据和根据结构化文件而创建的样式表快速而准确地 更新文档内容。此外,由于本发明基于xml进行数据交换,所以可在不依靠文档格式所对应 应用程序的排版引擎的情况下实现文档内容的自动更新。以上参考实施例描述了本发明。但是,本领域的技术人员应该理解,本发明不限于 所公开的实施例,在不脱离本发明的基本原理的情况下,任何类似的修改、替换或变形都应 包括在本发明的保护范围内。
权利要求
1.一种利用结构化数据实现文档内容自动更新的方法,包括以下步骤(1)将数据源中需要更新的内容生成结构化文件;(2)利用文档格式开放的排版软件设计并创建符合应用场景的文档模板;(3)将所生成的结构化文件转换为符合所述开放文档格式的模板组件;(4)用转换后的组件替换文档模板中的相应组件,并根据该文档模板生成最终的文档。
2.根据权利要求1所述的方法,其特征在于,所述步骤(1)包括以下步骤设计文档所需更新内容的数据结构和规范化文件;提取数据源中需要更新的内容生成符合所设计数据结构的结构化文件,并利用所设计 的规范化文件对该结构化文件进行规范性验证,以使该结构化文件符合所设计的结构化规范。
3.根据权利要求1所述的方法,其特征在于,所述步骤C3)还包括以下步骤利用样式表文件用于将所述结构化文件转换为符合所述开放文档格式的模板组件,其 中,所述样式表文件利用XSLT转换技术或其它XML转换技术根据所述结构化文件而创建。
4.根据权利要求1所述的方法,其特征在于,所述文档格式开放的排版软件为符合 OOXML规范的微软office系列软件,利用该软件创建文档模板之后,利用符合Zip压缩算法 的压缩工具进行解压以获得该文档模板中的所有组件,并且,在用转换后的组件替换文档 模板中的相应组件之后,对该文档模板进行压缩以获得最终的替换文档。
5.一种利用结构化数据实现文档内容自动更新的系统,包括数据输入单元,输入数据源,并将数据源发送给处理单元;处理单元,对从数据输入单元接收的数据源进行处理,以生成其中相应内容被该数据 源替换的文档,并将替换文档发送给文档输出单元;文档数据单元,输出从处理单元接收的替换文档,其中,所述处理单元包括设计单元,设计用于规范数据结构的规范化文件和用于将所述数据结构转换为相应的 模板组件的样式表文件,并将规范化文件发送给文件生成单元,将样式表文件发送给转换 单元,此外,还利用文档格式开放的排版软件设计并创建符合应用场景的文档模板,并将该 文档模板发送给转换单元;文件生成单元,根据从设计单元接收的规范化文件将从数据输入单元接收的数据源中 需要更新的内容生成结构化文件,并将该结构化文件发送给转换单元;转换单元,利用从设计单元接收的样式表将从文件生成单元接收的结构化文件转换为 符合所用开放文档格式的模板组件,并用该组件替换从设计单元接收的文档模板中的相应 组件,然后将根据该文档模板生成的最终文档发送给文档输出单元。
6.根据权利要求5所述的系统,其特征在于,所述样式表文件利用XSLT转换技术或其 它XML转换技术根据所述结构化文件而创建。
7.根据权利要求5所述的系统,其特征在于,所述文档格式开放的排版软件为符合 OOXML规范的微软office系列软件,此时,设计单元利用该软件创建文档模板之后,利用符 合Zip压缩算法的压缩工具进行解压以获得所述文档模板中的所有组件,并将这些组件发 送给转换单元,转换单元在用转换后的组件替换文档模板中的相应组件之后,对该文档模 板进行压缩以获得最终的替换文档。
全文摘要
本发明提供一种利用结构化数据实现文档内容自动更新的方法,包括将数据源中需要更新的内容生成结构化文件;利用文档格式开放的排版软件设计并创建符合应用场景的文档模板;将结构化文件转换为开放文档格式的模板组件;用转换后的组件替换文档模板中的相应组件,并根据该文档模板生成最终的文档。相应地,提供一种实现文档内容自动更新的系统。通过本发明,在文档模板制作完成之后,不需要人为地进行任何排版操作,就能够利用数据源提供的数据和根据结构化文件而创建的样式表快速而准确地更新文档内容,而且不依靠文档格式所对应应用程序的排版引擎。
文档编号G06F17/25GK102103591SQ20091024289
公开日2011年6月22日 申请日期2009年12月18日 优先权日2009年12月18日
发明者杨勇, 缪萍, 闫国龙 申请人:北京北大方正电子有限公司, 北大方正集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1