專利名稱:一種解析Word文件信息的方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可讀取、解析Word文件信息的系統(tǒng)領(lǐng)域,更具體的說,改進(jìn)涉及的是 一種解析Word文件信息的方法及其系統(tǒng)。
背景技術(shù):
Microsoft Word是微軟公司的一個文字處理應(yīng)用程序,在辦公自動化中, Microsoft Word得到了越來越多的應(yīng)用。然而,在自動化辦公應(yīng)用非常廣泛的今天,經(jīng)常需 要讀取并甄別有用信息,如何成批、快速的實(shí)現(xiàn)對Word文檔的解析,將直接影響到人們的 辦公效率。目前業(yè)界經(jīng)常使用的解析Word文件的方法大致有以下幾種方案一、通過調(diào)用MS-Word的自動化Com接口,按照Word的文檔結(jié)構(gòu)對Word文件 信息進(jìn)行解析。方案二、通過調(diào)用一些較為成熟的開源文檔編輯軟件的接口,實(shí)現(xiàn)對Word文件信 息的解析,較流行的是調(diào)用OpenOffice的API接口來實(shí)現(xiàn)讀取和解析。方案三、由于Word2007文件已公開格式,所以可以直接對Word2007格式文件進(jìn)行 解析。但是,對于方案一而言,每解析一個Word元素就需要一次Com調(diào)用,所以解析過程 的效率和穩(wěn)定性較低;另外,當(dāng)解析的屬性Word對象沒有設(shè)置值的時候,如果繼續(xù)解析,會 造成程序掛掉,因此直接影響程序的穩(wěn)定性。對于方案二而言,由于Open-Office等開源軟件對doc格式的文檔支持并不完美, 所以當(dāng)解析一些比較復(fù)雜的元素時,會出現(xiàn)屬性丟失的情況。對于方案三而言,此種方法僅能支持docx文檔;由于doc文件的格式并沒有公開, 所以此方法無法解析Word2003格式文件和Word2000格式文件,對Word文件的版本支持不完全。因此,現(xiàn)有技術(shù)尚有待改進(jìn)和發(fā)展。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種解析Word文件信息的方法及其系統(tǒng),可高效穩(wěn)定地 解析所有格式的Word文件信息,適合批量解析各種版本的Word文件信息。本發(fā)明的技術(shù)方案如下一種解析Word文件信息的方法,其中,包括以下步驟將待解析的Word文件轉(zhuǎn)換為Word_XML2003格式文檔的中間文件;解析Word_XML2003格式文檔中元素的基本信息,并將解析得到的信息按照Word 的規(guī)則進(jìn)行組合;將解析組合后的對象寫入XML文件。所述的解析Word文件信息的方法,其中,在轉(zhuǎn)換為Word_XML2003格式文檔的步驟中,具體包括以下步驟初始化Word對象;通過Word實(shí)例對象創(chuàng)建一個Word文檔對象;將Word對象設(shè)置為后臺運(yùn)行;使用文檔對象導(dǎo)入一個Word文件;將Word格式文檔另存為XML2003格式文檔。所述的解析Word文件信息的方法,其中,在解析Word_XML2003格式文檔的步驟 中,對于文本信息,還包括先讀取文本,后按照段落為基本單位將文檔分為若干個段落節(jié)點(diǎn) 的操作。所述的解析Word文件信息的方法,其中,在解析Word_XML2003格式文檔的步驟 中,對于圖元信息,還包括在圖元字段按照直線、橢圓、矩形的圖元不同的枚舉值得到圖元 的起始坐標(biāo)和區(qū)域的操作。所述的解析Word文件信息的方法,其中,在解析Word_XML2003格式文檔的步驟 中,對于圖像信息,還包括先在binData讀出圖片的文件流,后利用圖片庫將該圖片流寫出 的操作。所述的解析Word文件信息的方法,其中,在按照Word的規(guī)則進(jìn)行組合的步驟中, 對于文本,還包括以下操作將解析Word_XML2003格式文檔得到的基本段落信息按照節(jié)為單位進(jìn)行分組;將節(jié)中的文本按照欄為單位進(jìn)行進(jìn)一步劃分。所述的解析Word文件信息的方法,其中,在按照Word的規(guī)則進(jìn)行組合的步驟中, 對于圖元,還包括以下操作根據(jù)圖元所在的段位于的節(jié),判斷該圖元的節(jié)號;將該圖元設(shè)置為該節(jié)的背景元素。所述的解析Word文件信息的方法,其中,在按照Word的規(guī)則進(jìn)行組合的步驟中, 對于圖像,還包括以下操作根據(jù)圖像所在的段位于的節(jié),判斷該圖像的節(jié)號;將該圖像設(shè)置為該節(jié)的背景元素。一種解析Word文件信息的系統(tǒng),其中包括依次數(shù)據(jù)連接的XML2003文件轉(zhuǎn)換模 塊、解析排版模塊和XML文件寫入模塊,其中XML2003文件轉(zhuǎn)換模塊,用于將待解析的Word文件轉(zhuǎn)換為Word_XML2003格式文檔 的中間文件;解析排版模塊,用于解析Word_XML2003格式文檔中元素的基本信息,并將解析得 到的信息按照Word的規(guī)則進(jìn)行組合;XML文件寫入模塊,用于將解析組合后的對象寫入XML文件。所述的解析Word文件信息的系統(tǒng),其中,XML2003文件轉(zhuǎn)換模塊包括依次數(shù)據(jù)連 接的初始化單元、文檔創(chuàng)建單元、設(shè)置單元、導(dǎo)入單元和生成單元,其中初始化單元,用于初始化Word對象;文檔創(chuàng)建單元,用于通過Word實(shí)例對象創(chuàng)建一個Word文檔對象;設(shè)置單元,用于將Word對象設(shè)置為后臺運(yùn)行;
導(dǎo)入單元,用于使用文檔對象導(dǎo)入一個Word文件;生成單元,用于將Word格式文檔另存為XML2003格式文檔。本發(fā)明所提供的一種解析Word文件信息的方法及其系統(tǒng),由于采用了 Word_ XML2003格式文檔作為中間文件,并在解析Word_XML2003格式文檔后按照Word的規(guī)則進(jìn)行 組合,不僅在解析比較復(fù)雜的元素時不會造成屬性丟失,而且還避免了頻繁的調(diào)用Com接 口,節(jié)約了系統(tǒng)資源,從而高效穩(wěn)定地解析了所有格式的Word文件信息,特別適合滿足需 要批量解析各種版本的Word文件信息的情況下使用。
圖1是本發(fā)明解析Word文件信息方法的流程圖;圖2是本發(fā)明解析Word文件信息系統(tǒng)的結(jié)構(gòu)圖;圖3是本發(fā)明中XML2003文件轉(zhuǎn)換模塊的結(jié)構(gòu)圖;圖4是本發(fā)明中將Word文件轉(zhuǎn)換為Word_XML2003格式文檔的流程圖;圖5是本發(fā)明中解析XML2003元素以及整體排版的流程圖。
具體實(shí)施例方式以下將結(jié)合附圖,對本發(fā)明的具體實(shí)施方式
和實(shí)施例加以詳細(xì)說明,所描述的具 體實(shí)施例僅用以解釋本發(fā)明,并非用于限定本發(fā)明的具體實(shí)施方式
。本發(fā)明的一種解析Word文件信息的方法,其具體實(shí)施方式
之一,如附圖1所示,包 括以下步驟步驟S100、將待解析的Word文件轉(zhuǎn)換為Word_XML2003格式文檔的中間文件;步驟S200、解析Word_XML2003格式文檔中元素的基本信息,并將解析得到的信息 按照Word的規(guī)則進(jìn)行組合;步驟S300、將解析組合后的對象寫入XML (Extensible MarkupLanguage,可擴(kuò)展標(biāo) 記語言)文件?;谏鲜鼋馕龇椒?,本發(fā)明還提出了一種解析Word文件信息的系統(tǒng),如附圖2所 示,至少包括依次數(shù)據(jù)連接的XML2003文件轉(zhuǎn)換模塊100、解析排版模塊200和XML文件寫 入模塊300,其中XML2003文件轉(zhuǎn)換模塊100,用于將待解析的Word文件轉(zhuǎn)換為Word_XML2003格式 文檔的中間文件;解析排版模塊200,用于解析Word_XML2003格式文檔中元素的基本信息,并將解 析得到的信息按照Word的規(guī)則進(jìn)行組合;XML文件寫入模塊300,用于將解析組合后的對象寫入XML文件。Word的XML2003文件是一種可以記錄Word元素的XML文件,由于此文件支持Word 所有元素的顯示,而且可以被Word文件打開。基于這個原因,可以考慮以XML2003文件作 為中間文件進(jìn)行Word文件信息解析的策略??上扔肳ord的自動化Com接口在后臺將需要 解析的Word文檔另存為XML2003格式文件,之后再使用XML解析器對該文件進(jìn)行解析。這 樣做的好處在于,一是只調(diào)用了一次Com接口,提高了系統(tǒng)的效率和穩(wěn)定性,二是同時可以 支持doc格式文件和docx格式文件的解析。
6
作為本發(fā)明解析Word文件信息的方法及其系統(tǒng)的優(yōu)選實(shí)施方式1、在步驟S100中,XML2003文件轉(zhuǎn)換模塊100先初始化MS_Word的Com接口,再在 后臺將Word文件導(dǎo)入,如doc或docx文件;之后將該Word文件另存為Word_XML2003 格式文件。具體的,如附圖3所示,XML2003文件轉(zhuǎn)換模塊100包括依次數(shù)據(jù)連接的初始化 單元110、文檔創(chuàng)建單元120、設(shè)置單元130、導(dǎo)入單元140和生成單元150,其中,如附圖4 所示,步驟S100可包括以下步驟步驟S110、初始化單元110初始化Word對象,如實(shí)例化一個Word程序?qū)ο?ApplicationPtr 等;步驟S120、文檔創(chuàng)建單元120創(chuàng)建文檔對象,如通過Word實(shí)例對象創(chuàng)建一個 Word 文檔對象 DocumentPtr 等;步驟S 130、設(shè)置單元130設(shè)置Word后臺運(yùn)行,S卩,將Word對象設(shè)置為后臺運(yùn)行;步驟S140、導(dǎo)入單元140導(dǎo)入Word格式文檔,如使用文檔對象導(dǎo)入一個Word文 件;步驟S150、生成單元150在后臺將Word格式文檔另存為XML2003格式文檔。2、在步驟S200中,解析排版模塊200先提取并獲得文本、圖元和圖像等基本信息, 再進(jìn)行整體的排版。在提取過程中,對于文本信息,首先讀取文本,然后按照段落為基本單位將文檔分 為若干個段落節(jié)點(diǎn);對于圖元信息,可在圖元字段按照直線、橢圓、矩形的圖元不同的枚舉 值得到圖元的起始坐標(biāo)和區(qū)域;對于圖像信息,由于圖像在XML2003中都以文件流的形式 存在,所以需要在binData讀出圖片的文件流,完后利用圖片庫將該圖片流寫出;binData 為本領(lǐng)域技術(shù)名詞。提取的過程可包括讀取文檔屬性字段DocumentProperties,得到本 文檔的作者、版本號、頁數(shù)等信息;讀取段落樣式列表得到此文檔中使用的段落樣式類型; 讀取文檔顯示屬性字段,得到文檔的顯示比例等信息。在整體排版時,對于文本而言,首先,可將上文得到的基本段落信息按照節(jié)為單位 進(jìn)行分組,這樣就將文本分為了若干個節(jié),其次,需要將節(jié)中的文本按照欄為單位進(jìn)行進(jìn)一 步劃分;對于圖元和/或圖像而言,由于圖元和圖像分別位于不同的段中,所以可以根據(jù)該 圖元和/或圖像所在的段位于的節(jié),來判斷該圖元和/或圖像在哪個節(jié)中,并在得到節(jié)號 后,就將該圖元和/或圖像設(shè)置為該節(jié)的背景元素。具體的,如附圖5所示,步驟S200可包括以下步驟步驟S210、在開始解析之時,讀取文檔屬性字段DocumentProperties,得到本文 檔的作者、版本號、頁數(shù)等信息;步驟S220、讀取段落式樣字段,如段落式樣列表,得到此文檔中使用的段落樣式 類型;步驟S230、輸入排版信息,如讀取文檔顯示屬性字段,得到文檔的顯示比例等信 息;步驟S240、按照段落為單位,讀取每個段落的內(nèi)容;步驟S250、將段落合并為節(jié),可按照段落為基本單位將文檔分為若干個段落節(jié)
點(diǎn);步驟S260、將節(jié)的內(nèi)容分為欄,可先將上文得到的基本段落信息按照節(jié)為單位進(jìn)行分組,再將節(jié)中的文本按照欄為單位進(jìn)行進(jìn)一步劃分;步驟S272、讀取圖元,可在圖元字段按照直線、橢圓、矩形的圖元不同的枚舉值得 到圖元的起始坐標(biāo)和區(qū)域;步驟S274、讀取圖像,在binData讀出圖片的文件流后,利用圖片庫將該圖片流寫 出;步驟S280、將圖像的二進(jìn)制信息寫入文件;步驟S290、將圖元、圖像和文本進(jìn)行整體排版。3、在步驟S300中,XML文件寫入模塊300在將解析到的對象寫入XML文件的過程 中,可將一個整個文檔結(jié)構(gòu)放入一個文件〈Document〉結(jié)構(gòu)中,文檔結(jié)構(gòu)中分為文件屬性節(jié) 點(diǎn)<DocumentAttr>、參數(shù)屬性節(jié)點(diǎn)<ParaAttr>、選項(xiàng)節(jié)點(diǎn)<Sect> ;其中,選項(xiàng)節(jié)點(diǎn)<Sect> 又細(xì)分為列子節(jié)點(diǎn)〈Column〉、背景圖元子節(jié)點(diǎn)〈Graphic〉和背景圖像子節(jié)點(diǎn)<Pic>,具體結(jié) 構(gòu)可如下所示<Document><DocumentAttrX/DocumentAttr><ParaAttrX/ParaAttr><Sectl>〈Column1><ParalX/Paral><Para2X/Para2>......</Columnl><GraphiclX/Graphic2><Graphic2X/Graphics2>......<PiclX/Picl><Pic2X/Pic2>......</Sectl><Sect2></Sect2>......〈/Document〉本發(fā)明所提供的一種解析Word文件信息的方法及其系統(tǒng),由于采用了 Word_ XML2003格式文檔作為中間文件,并在解析Word_XML2003格式文檔后按照Word的規(guī)則進(jìn)行 組合,不僅在解析比較復(fù)雜的元素時不會造成屬性丟失,而且還避免了頻繁的調(diào)用Com接 口,節(jié)約了系統(tǒng)資源,從而高效穩(wěn)定地解析了所有格式的Word文件信息,特別適合滿足需 要批量解析各種版本的Word文件信息的情況下使用。應(yīng)當(dāng)理解的是,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不足以限制本發(fā)明的 技術(shù)方案,對本領(lǐng)域普通技術(shù)人員來說,在本發(fā)明的精神和原則之內(nèi),可以根據(jù)上述說明加
8以增減、替換、變換或改進(jìn),而所有這些增減、替換、變換或改進(jìn)后的技術(shù)方案,都應(yīng)屬于本 發(fā)明所附權(quán)利要求的保護(hù)范圍。
權(quán)利要求
一種解析Word文件信息的方法,其特征在于,包括以下步驟將待解析的Word文件轉(zhuǎn)換為Word_XML2003格式文檔的中間文件;解析Word_XML2003格式文檔中元素的基本信息,并將解析得到的信息按照Word的規(guī)則進(jìn)行組合;將解析組合后的對象寫入XML文件。
2.根據(jù)權(quán)利要求1所述的解析Word文件信息的方法,其特征在于,在轉(zhuǎn)換為Word_ XML2003格式文檔的步驟中,具體包括以下步驟初始化Word對象;通過Word實(shí)例對象創(chuàng)建一個Word文檔對象; 將Word對象設(shè)置為后臺運(yùn)行; 使用文檔對象導(dǎo)入一個Word文件; 將Word格式文檔另存為XML2003格式文檔。
3.根據(jù)權(quán)利要求1所述的解析Word文件信息的方法,其特征在于,在解析Word_ XML2003格式文檔的步驟中,對于文本信息,還包括先讀取文本,后按照段落為基本單位將 文檔分為若干個段落節(jié)點(diǎn)的操作。
4.根據(jù)權(quán)利要求1所述的解析Word文件信息的方法,其特征在于,在解析Word_ XML2003格式文檔的步驟中,對于圖元信息,還包括在圖元字段按照直線、橢圓、矩形的圖元 不同的枚舉值得到圖元的起始坐標(biāo)和區(qū)域的操作。
5.根據(jù)權(quán)利要求1所述的解析Word文件信息的方法,其特征在于,在解析Word_ XML2003格式文檔的步驟中,對于圖像信息,還包括先在binData讀出圖片的文件流,后利 用圖片庫將該圖片流寫出的操作。
6.根據(jù)權(quán)利要求1所述的解析Word文件信息的方法,其特征在于,在按照Word的規(guī)則 進(jìn)行組合的步驟中,對于文本,還包括以下操作將解析Word_XML2003格式文檔得到的基本段落信息按照節(jié)為單位進(jìn)行分組; 將節(jié)中的文本按照欄為單位進(jìn)行進(jìn)一步劃分。
7.根據(jù)權(quán)利要求1所述的解析Word文件信息的方法,其特征在于,在按照Word的規(guī)則 進(jìn)行組合的步驟中,對于圖元,還包括以下操作根據(jù)圖元所在的段位于的節(jié),判斷該圖元的節(jié)號; 將該圖元設(shè)置為該節(jié)的背景元素。
8.根據(jù)權(quán)利要求1所述的解析Word文件信息的方法,其特征在于,在按照Word的規(guī)則 進(jìn)行組合的步驟中,對于圖像,還包括以下操作根據(jù)圖像所在的段位于的節(jié),判斷該圖像的節(jié)號; 將該圖像設(shè)置為該節(jié)的背景元素。
9.一種解析Word文件信息的系統(tǒng),其特征在于包括依次數(shù)據(jù)連接的XML2003文件轉(zhuǎn) 換模塊、解析排版模塊和XML文件寫入模塊,其中XML2003文件轉(zhuǎn)換模塊,用于將待解析的Word文件轉(zhuǎn)換為Word_XML2003格式文檔的中 間文件;解析排版模塊,用于解析Word_XML2003格式文檔中元素的基本信息,并將解析得到的 信息按照Word的規(guī)則進(jìn)行組合;XML文件寫入模塊,用于將解析組合后的對象寫入XML文件。
10.根據(jù)權(quán)利要求9所述的解析Word文件信息的系統(tǒng),其特征在于,XML2003文件轉(zhuǎn)換 模塊包括依次數(shù)據(jù)連接的初始化單元、文檔創(chuàng)建單元、設(shè)置單元、導(dǎo)入單元和生成單元,其 中初始化單元,用于初始化Word對象;文檔創(chuàng)建單元,用于通過Word實(shí)例對象創(chuàng)建一個Word文檔對象; 設(shè)置單元,用于將Word對象設(shè)置為后臺運(yùn)行; 導(dǎo)入單元,用于使用文檔對象導(dǎo)入一個Word文件; 生成單元,用于將Word格式文檔另存為XML2003格式文檔。
全文摘要
本發(fā)明公開了一種解析Word文件信息的方法及其系統(tǒng),該方法包括將待解析的Word文件轉(zhuǎn)換為Word_XML2003格式文檔的中間文件;解析Word_XML2003格式文檔中元素的基本信息,并將解析得到的信息按照Word的規(guī)則進(jìn)行組合;將解析組合后的對象寫入XML文件。由于采用了Word_XML2003格式文檔作為中間文件,并在解析Word_XML2003格式文檔后按照Word的規(guī)則進(jìn)行組合,不僅在解析比較復(fù)雜的元素時不會造成屬性丟失,而且還避免了頻繁的調(diào)用Com接口,節(jié)約了系統(tǒng)資源,高效穩(wěn)定地解析了所有格式的Word文件信息,特別適合滿足需要批量解析各種版本的Word文件信息的情況下使用。
文檔編號G06F17/21GK101980183SQ20101028533
公開日2011年2月23日 申請日期2010年9月17日 優(yōu)先權(quán)日2010年9月17日
發(fā)明者解輝 申請人:深圳市萬興軟件有限公司