一種從Word文檔中快速提取文字格式的方法和裝置製造方法
2023-10-09 19:01:49 2
一種從Word文檔中快速提取文字格式的方法和裝置製造方法
【專利摘要】本發明實施例提供了一種從Word文檔中快速提取文字格式的方法和裝置,包括以下步驟:將文檔切分為多個部分;將每個部分的文檔內容轉換為字符串格式,得到每個部分的文檔內容分別對應的字符串數據;提取所述字符串數據中所用字體及顏色集合;解析每個字符串數據,並按照樹形數據結構保存;從所述樹形數據結構中提取文字格式,將所有文字格式匯總。本發明將ms-com接口與字符串處理相結合,研究出一系列解析規則,即吸取了ms-com接口操作便利的優勢,又避免了反覆調用ms-com接口導致效率低下的缺點,能夠快速提取文檔中全部文字格式。可以與電子籤章等一些文檔處理相關應用程式相結合,具有很高的使用價值。
【專利說明】—種從Word文檔中快速提取文字格式的方法和裝置
【技術領域】
[0001]本發明涉及文檔處理、信息安全等領域,特別涉及電子籤章應用中一種從Word文檔中快速提取文字格式的方法和裝置。
【背景技術】
[0002]隨著技術的發展,越來越多的企事業單位及國家機關逐漸採取了電子化辦公,極大的提高了工作效率。隨之而來的便是電子辦公所帶來的安全性問題。由於電子文檔易被拷貝或篡改,所籤發的電子文檔是否被修改,是否為籤發人所籤發等問題隨之而來。電子籤章產品的出現解決了上述問題,為電子文檔的安全需求提供了技術依據。
[0003]Microsoft Word是微軟公司出品的一個文檔處理應用程式,Word文檔是目前電子文檔中的主流文檔格式。所有電子籤章產品均需要支持Word文檔格式,保證能夠檢測出Word文檔中文字是否經過篡改。
[0004]另一方面,很多情況下不僅文字起著重要作用,文字格式也發揮了很大作用。不同的文字格式含義可能完全不同,在一份電子合同或電子文檔中,如果更改了部分文字格式,可能會引起不同的含義,從而提取Word文檔所有文字格式,進行檢測具有很重要的意義。
[0005]目前常用的Word文檔文字格式提取的方法有以下幾種:方法一:調用ms-word所提供的Com接口,獲取每個文字對象,提取其屬性值;方法二:使用一些開源文檔處理軟體進行解析及提取,如調用OpenOffice接口進行解析文檔並提取文字格式;方法三:根據Word文檔格式解析,並提取文字格式。
[0006]對於方法一來說,是目前電子籤章產品獲取文檔格式的主流方法,使用簡單,與Word應用系統兼容性好,但是每解析一個Word元素均要調用一次Com接口,效率低下,運行時間長,文檔較大時運行速度非常緩慢,嚴重影響應用系統的使用,從而使用該方法的電子籤章產品均不支持對大文檔進行文字格式的籤章。
[0007]對於方法二來說,一方面與Word應用程式兼容不好,很難集成使用;另一方面對doc格式文檔支持不好,穩定性差,文檔較複雜時,容易出現獲取不到格式的情況。
[0008]對於方法三來說,目前只公布了 docx文檔格式,對於doc文檔格式不支持,從而無法支持Word2003與Word2000文檔。
[0009]因此,找到一種能夠快速提取Word文檔中所有文字格式的方法,對於保護文檔安全,具有很大意義。
【發明內容】
[0010]本發明實施例提供了一種從Word文檔中快速提取文字格式的方法和裝置,以實現在微軟Word應用程式中,快速提取文檔中文字格式,用於檢測電子文檔的安全性。
[0011]本發明解決上述技術問題的技術方案是,一種從Word文檔中快速提取文字格式的方法,包括以下步驟:
[0012]將文檔切分為多個部分;[0013]將每個部分的文檔內容轉換為字符串格式,得到每個部分的文檔內容分別對應的字符串數據;
[0014]提取所述字符串數據中所用字體及顏色集合;
[0015]解析每個字符串數據,並按照樹形數據結構保存;
[0016]從所述樹形數據結構中提取文字格式,將所有文字格式匯總。
[0017]以及一種從Word文檔中快速提取文字格式的裝置,所述裝置包括:
[0018]文檔處理模塊,用於將文檔切分為多個部分;
[0019]文檔轉換模塊,用於將每個部分的文檔內容轉換為字符串格式,得到每個部分的文檔內容分別對應的字符串數據;
[0020]字符串解析模塊,用於提取所述字符串數據中所用字體及顏色集合,解析每個字符串數據,並按照樹形數據結構保存,從所述樹形數據結構中提取文字格式,將所有文字格式匯總。
[0021]本發明將ms-com接口與字符串處理相結合,研究出一系列解析規則,即吸取了ms-com接口操作便利的優勢,又避免了反覆調用ms-com接口導致效率低下的缺點,能夠快速提取文檔中全部文字格式。可以與電子籤章等一些文檔處理相關應用程式相結合,具有很高的使用價值。
【專利附圖】
【附圖說明】
[0022]為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0023]圖1為本發明實施例提供的一種Word文檔中快速提取文字格式方法的處理流程圖。
[0024]圖2為本發明實施例提供的一種Word文檔中快速提取文字格式方法的裝置結構示意圖。
【具體實施方式】
[0025]為便於對本發明實施例的理解,下面將結合附圖並以具體實施例為例做進一步的解釋說明,且各個實施例並不構成對本發明的限定。
[0026]一種Word文檔中快速提取文字格式的方法,可以與文檔處理的一些應用程式相結合,快速提取文檔內所有文字格式。其具體實施之一,與電子籤章裝置相結合,在Word文檔中執行籤章驗章等操作時,需要提取當前文檔所有文字格式,如圖1所示,包括以下步驟:
[0027]步驟101,將文檔切分為多個部分。具體的,獲取上層電子籤章程序傳入的當前要處理的文檔的Com指針;調用ms-word Com接口查找文檔中的所有圖片與控制項;以圖片與控制項作為分隔點將文檔分隔為多個部分,每個部分中均不包含圖片及控制項,從而在步驟102中該部分轉化為字符串格式後,字符串數據小,解析速度快。
[0028]步驟102,將每個部分的文檔內容轉換為字符串格式,得到每個部分的文檔內容分別對應的字符串數據。具體的,使用ms-word Com接口 ;將每個部分的文檔內容設置為選中狀態,並且將每個部分的文檔內容複製到系統剪切板上;以RTF格式打開系統剪切板;提取系統剪切板中的字符串數據,得到每個部分的文檔內容分別對應的字符串數據。Word文檔的RTF格式是一種能夠記錄Word元素的文本格式,便於通過字符串解析提取元素。該步驟通過ms-word Com接口及剪切板的RFT格式,能快速及方便的將Word部分文檔內容轉化為字符串數據。
[0029]步驟103,提取字符串數據中所用字體及顏色集合。具體的,查找並提取描述字體集合與顏色集合的字符串數據,通過查找「{\\fonttbl」與相匹配的可以提取字體集合字符串,通過查找「 {\\colortbl」與相匹配的「} 」可以提取顏色集合字符串;解析該描述字體集合與顏色集合的字符串數據,查找字體名與所對應的序列號,查找顏色與所對應的序列號;將字體名對應的序列號、顏色對應的序列號保存,供解析文本時使用。由於不同文檔內容,不同文檔格式,其描述文本格式的顏色序列號與字體序列號所對應的顏色、字體可能都不同,從而需要先解析出對應關係,供後續操作取得字體名及顏色數據。
[0030]步驟104,解析每個字符串數據,並按照樹形數據結構保存。具體的,首先查找並提取描述文字集合的字符串數據,Word文檔的RTF格式字符串中,以嵌套的方式描述整個文檔內容,每個部分用H劃分;遞歸解析描述文字集合的字符串數據,查找所有H中包含的元素內容,以樹形數據結構保存,因為這些元素內容最適合樹形數據結構表示,每個節點可表示該部分文字元素,包括文字格式如顏色、大小、字體、粗體等;判斷樹形數據結構中每個節點是否包含文字內容,如果不包含則捨去該節點,從而每個節點均表示文字內容與文字格式,如顏色、大小、字體、粗體等。
[0031]步驟105,從樹形數據結構中提取文字格式,將所有文字格式匯總。具體的,遍歷樹形數據結構,提取所有節點內容;從每個節點內容中獲取文字及文字格式;將文字格式中的顏色序列號轉化為顏色數據,字體序列號轉化為字體名稱;合併相鄰且具有相同格式的文字格式,樹形數據結構中每個節點均包含文字元素,根據標籤解析出文字格式,由於大部分相鄰文字的格式是相同的,合併後有利於極大的壓縮最終內容;將文檔各個部分的文字格式合併,獲取整個文檔的文字格式。
[0032]基於上述提取方法,本發明還提出了 一種從Word文檔中快速提取文字格式的裝置結構。如圖2所示,該裝置結構至少包括文檔處理模塊100、文檔轉換模塊200和字符串解析模塊300,其中:
[0033]文檔處理模塊100,用於將文檔切分為多個部分。具體的,文檔處理模塊100首先獲取上層電子籤章程序傳入的當前要處理文檔的Com指針,調用ms-word Com接口查找文檔中所有圖片及控制項。在Word文檔中,所有元素均有一個起點及終點位置編號,按順序排列,從而根據圖片及控制項在文檔中的位置,以圖片與控制項作為分隔點將文檔分隔為多個部分,每部分中均不包含圖片及控制項。
[0034]文檔轉換模塊200,用於將每個部分的文檔內容轉換為字符串格式,得到每個部分的文檔內容分別對應的字符串數據。具體的,使用ms-word Com接口,將每個部分的文檔內容設置為選中狀態,並且複製到系統剪切板系統剪切板。以RTF格式打開剪切板,提取所述系統剪切板系統剪切板中的字符串數據,得到每個部分的文檔內容分別對應的字符串數據,即獲得該部分文檔內容的字符串格式數據。文檔轉換模塊200通過ms-word Com接口及系統剪切板系統剪切板,能夠快速且方便的將每個部分的Word文檔內容轉換為字符串格式。
[0035]字符串解析模塊300,用於提取字符串數據中所用字體及顏色集合,解析每個字符串數據,並按照樹形數據結構保存,從樹形數據結構中提取文字格式,將所有文字格式匯總。具體的:
[0036]在步驟103中,字符串解析模塊300首先從待解析字符串數據中查找並提取字體集合字符串與顏色集合字符串數據,通過查找「 {\\fonttbl」與相匹配的「} 」可以提取字體集合字符串,通過查找「{\\colortbl」與相匹配的可以提取顏色集合字符串。從字體集合字符串中提取每個字體元素,每個字體名均對應一個序列號,將對應關係保存,供後續操作使用;從顏色集合字符串中提取每個顏色元素,每個顏色的紅綠藍屬性均對應一個序列號,將對應關係保存,供後續操作使用。
[0037]在步驟104中,字符串解析模塊300從待解析字符串中提取描述文檔內容的字符串數據。首先查找並提取描述文字集合的字符串數據,Word文檔的RTF格式字符串中,以嵌套的方式描述文檔中所有元素內容,每個元素用H劃分。通過遞歸方式解析描述文字集合的字符串數據,查找所有H中包含的元素內容,以樹形數據結構保存,因為這些元素內容最適合樹形數據結構表示,每個節點可表示該部分文字元素,包括文字格式如顏色、大小、字體、粗體等。判斷樹形數據結構中每個節點是否包含文字內容,如果不包含捨去該節點,從而每個節點均表示文字內容與文字格式,如顏色、大小、字體、粗體等。
[0038]在步驟105中,字符串解析模塊300遍歷步驟104中所產生的樹形數據結構,通過深度優先檢索方式進行檢索,提取所有節點內容。從每個節點內容中獲取文字及文字格式,包括通過查詢「13」、「1」、「&廣、「^、「(^」等關鍵詞提取粗細、傾斜、字體、大小、顏色等文字格式。使用步驟103中獲得的對應關係,將文字格式中的顏色序列號轉化為顏色數據,字體序列號轉化為字體名稱。合併相鄰且具有相同格式的文字格式,壓縮數據。最後將步驟101中切分文檔後各個部分的文字格式合併,獲取整個文檔的文字格式。
[0039]用本發明實施例的裝置從Word文檔中快速提取文字格式的具體過程與前述方法實施例類似,此處不再贅述。
[0040]應當理解的是, 以上所述僅為本發明的較佳實施例而已,並不足以限制本發明的技術方案,對本領域普通技術人員來說,在本發明的精神和原則之內,可以根據上述說明加以增減、替換、變換或改進,而所有這些增減、替換、變換或改進後的技術方案,都應屬於本發明所附權利要求的保護範圍。
【權利要求】
1.一種從Word文檔中快速提取文字格式的方法,其特徵在於,包括以下步驟: 將文檔切分為多個部分; 將每個部分的文檔內容轉換為字符串格式,得到每個部分的文檔內容分別對應的字符串數據; 提取所述字符串數據中所用字體及顏色集合; 解析每個字符串數據,並按照樹形數據結構保存; 從所述樹形數據結構中提取文字格式,將所有文字格式匯總。
2.根據權利要求1所述的一種從Word文檔中快速提取文字格式的方法,其特徵在於,所述將文檔切分為多個部分具體包括: 獲取上層電子籤章程序傳入的當前要處理的文檔的Com指針; 調用ms-word Com接口查找所述文檔中的所有圖片與控制項; 以圖片與控制項作為分隔點將所述文檔分隔為多個部分,每個部分中均不包含圖片及控制項。
3.根據權利要求1所述 的一種從Word文檔中快速提取文字格式的方法,其特徵在於,所述將每個部分的文檔內容轉換為字符串格式,得到每個部分的文檔內容分別對應的字符串數據具體包括: 使用ms-word Com接口將每個部分的文檔內容設置為選中狀態,並且將每個部分的文檔內容複製到系統剪切板系統剪切板上; 以RTF格式打開所述系統剪切板系統剪切板; 提取所述系統剪切板系統剪切板中的字符串數據,得到每個部分的文檔內容分別對應的字符串數據。
4.根據權利要求1所述的一種從Word文檔中快速提取文字格式的方法,其特徵在於,所述提取所述字符串數據中所用字體及顏色集合具體包括: 查找並提取描述字體集合與顏色集合的字符串數據; 解析所述描述字體集合與顏色集合的字符串數據,查找字體名與所對應的序列號,查找顏色與所對應的序列號; 將字體名對應的序列號、顏色對應的序列號保存,供解析文本時使用。
5.根據權利要求4所述的一種從Word文檔中快速提取文字格式的方法,其特徵在於,所述的查找並提取描述字體集合與顏色集合的字符串數據,包括: 通過查找「{\\fonttbl」與相匹配的提取字體集合字符串,通過查找「 {\\colortbl」與相匹配的「} 」提取顏色集合字符串。
6.根據權利要求1所述的一種從Word文檔中快速提取文字格式的方法,其特徵在於,所述解析每個字符串數據,並按照樹形數據結構保存具體包括: 查找並提取描述文字集合的字符串數據; 遞歸解析所述描述文字集合的字符串數據,查找所有H中包含的元素內容,以樹形數據結構保存; 判斷樹形數據結構中每個節點是否包含文字內容,如果不包含則捨去該節點。
7.根據權利要求1所述的一種從Word文檔中快速提取文字格式的方法,其特徵在於,所述從所述樹形數據結構中提取文字格式,將所有文字格式匯總具體包括:遍歷樹形數據結構,提取所有節點內容; 從每個節點內容中獲取文字及文字格式; 將所述文字格式中的顏色序列號轉化為顏色數據,字體序列號轉化為字體名稱; 合併相鄰且具有相同格式的文字格式; 將文檔各個部分的文字格式合併,獲取整個文檔的文字格式。
8.—種從Word文檔中快速提取文字格式的裝置,其特徵在於,所述裝置包括: 文檔處理模塊,用於將文檔切分為多個部分; 文檔轉換模塊,用於將每個部分的文檔內容轉換為字符串格式,得到每個部分的文檔內容分別對應的字符串數據; 字符串解析模塊,用於提取所述字符串數據中所用字體及顏色集合,解析每個字符串數據,並按照樹形數據結構保存,從所述樹形數據結構中提取文字格式,將所有文字格式匯總。
9.根據權利要求8所述的一種從Word文檔中快速提取文字格式的裝置,其特徵在於: 所述的文檔處理模塊,具體用於獲取上層電子籤章程序傳入的當前要處理的文檔的Com指針; 調用ms-word Com接口查找所述文檔中的所有圖片與控制項; 以圖片與控制項作為分隔點將所述文檔分隔為多個部分,每個部分中均不包含圖片及控制項。
10.根據權利要求8所述的一種從Word文檔中快速提取文字格式的裝置,其特徵在於: 所述的文檔轉換模塊,具體用於使用ms-word Com接口將每個部分的文檔內容設置為選中狀態,並且將每個部分的文檔內容複製到系統剪切板系統剪切板上; 以RTF格式打開所述系統剪切板系統剪切板; 提取所述系統剪切板系統剪切板中的字符串數據,得到每個部分的文檔內容分別對應的字符串數據。
11.根據權利要求8所述的一種從Word文檔中快速提取文字格式的裝置,其特徵在於: 所述的字符串解析模塊,具體用於查找並提取描述字體集合與顏色集合的字符串數據,解析所述描述字體集合與顏色集合的字符串數據,查找字體名與所對應的序列號,查找顏色與所對應的序列號,將字體名對應的序列號、顏色對應的序列號保存; 查找並提取描述文字集合的字符串數據,遞歸解析所述描述文字集合的字符串數據,查找所有H中包含的元素內容,以樹形數據結構保存,判斷樹形數據結構中每個節點是否包含文字內容,如果不包含則捨去該節點; 從每個節點內容中獲取文字及文字格式,將所述文字格式中的顏色序列號轉化為顏色數據,字體序列號轉化為字體名稱,合併相鄰且具有相同格式的文字格式,將文檔各個部分的文字格式合併,獲取整個文檔的文字格式。
【文檔編號】G06F21/60GK103902918SQ201210587758
【公開日】2014年7月2日 申請日期:2012年12月30日 優先權日:2012年12月30日
【發明者】王申, 金端峰, 郭向國 申請人:航天信息股份有限公司