Xps結構化數據的解析方法
【技術領域】
[0001]本發明涉及電子文檔處理技術領域,特別涉及一種XPS結構化數據的解析方法。
【背景技術】
[0002]XPS (XML Paper Specificat1n,XML文件規格書)是一種電子文件格式,它是微軟公司開發的一種文檔保存與查看的規范。XPS可以維護文檔的一致外觀(不管環境變量如何),實現所見即所得,也支持安全功能(例如,數字簽名),因此,被越來越廣泛地使用在各個領域。但是,XPS文檔類似于PDF文檔,是一種只讀文檔格式,其采用結構化數據形式保存數據,在使用計算機讀取文檔內容時,需要進行相應的解析和提取處理。
【發明內容】
[0003]本發明旨在提供一種XPS結構化數據的解析方法,以實現對XPS文檔內容進行自動識別和提取功能。
[0004]為達到上述目的,本發明采用如下技術方案。
[0005]本發明提供一種XPS結構化數據的解析方法,包括步驟:
初始化XPS文件;
識別XPS文件中所需的字段數據;
提取所述字段數據及其原始坐標;
按照預定算法對所述原始坐標進行計算,得到準確的相對坐標;
對所述相對坐標進彳丁排序,先排序Y坐標,后排序X坐標;
將排序后的文檔或鏈表輸出到指定路徑。
[0006]上述解析方法中,所述識別XPS文件中所需的字段數據的步驟具體包括:
利用關鍵字庫,通過Y坐標或X坐標或前后關鍵字來匹配所述字段數據。
[0007]上述解析方法中,所述按照預定算法對原始坐標進行計算,得到準確的相對坐標的步驟具體包括:
按照預設的坐標修正算法,分別對原始的X、Y坐標進行計算,分別得到所述字段數據相對于文檔左上角原點的X軸相對坐標和Y軸相對坐標。
[0008]上述解析方法中,所述X軸相對坐標和Y軸相對坐標的參照位置為所述字段數據的首個字符。
[0009]上述解析方法中,如果所述字段數據包含多個字符,則按照預定要求分別計算每個字符的相對坐標。
[0010]上述解析方法中,所述對所述相對坐標進行排序,先排序Y坐標,后排序X坐標的步驟具體包括:
根據排版要求,依照先頁后行再列的順序對所述字段數據及計算后得到的相對坐標進行重新排序。
[0011]上述解析方法中,所述將排序后的文檔輸出到指定路徑的步驟具體包括: 將排序后的文檔轉換成txt格式或xml格式,并將該文檔輸出到指定路徑,或者,
將排序后的包含字段數據及其相對坐標的文檔生成一個鏈表,并將該鏈表輸出到指定路徑。
[0012]本發明采用上述方法,不僅可以提高識別的準確度,而且通過直接輸出txt或xml文檔或鏈表到指定路徑供識別模塊讀取,可以降低對識別模塊的設計人員的能力要求,無需精通正則表達式。此外,本發明的上述方法還簡化了 XPS文檔中字段數據的提取難度,解決了 XPS文檔中原始坐標混亂的問題。
【附圖說明】
[0013]圖1為本發明實施例的XPS結構化數據的解析方法的流程示意圖。
【具體實施方式】
[0014]下面結合附圖和具體實施例對本發明的結構原理及功能特點作進一步說明,以便理解本發明的發明實質。
[0015]參照圖1所示,本實施例提供一種XPS結構化數據的解析方法,其主要包括以下步驟:
S10:初始化XPS文件;
S20:識別XPS文件中所需的字段數據;
S30:提取所述字段數據及其原始坐標;
S40:按照預定算法對所述原始坐標進行計算,得到準確的相對坐標;
S50:對所述相對坐標進彳丁排序,先排序Y坐標,后排序X坐標;
S60:將排序后的文檔或鏈表輸出到指定路徑。
[0016]在對需要識別的XPS文件進行初始化后,系統可以自動對XPS文件內的字段數據進行提取和識別。首先,需要建立關鍵字庫,將擬識別的文本內容全部添加到關鍵字庫中,并將關鍵字庫放在上述XPS文件所在的目錄下。然后利用該關鍵字庫,通過Y坐標和X坐標,或者利用前后關鍵字來匹配需要識別的字段數據。
[0017]匹配到某一字段數據后,進入下一步,即提取該字段數據及其原始坐標。
[0018]由于對XPS文件解析后,每個字段都對應有一個坐標,包括X坐標和Y坐標,以確定該字段在文檔頁面中的相對位置。但是,由于排版需要,字段之間會有各種插圖、標點符號或空格等,導致字段的原始坐標呈無序化狀態,無參考性,因此需要對這些坐標進行修正。
[0019]修正坐標的過程就是對原始坐標進行計算,得到準確的相對坐標,具體為:
按照預設的坐標修正算法,分別對原始的X、Y坐標進行計算,分別得到該字段數據相對于XPS文檔左上角原點的X軸相對坐標和Y軸相對坐標。
[0020]對于包含多個字符的字段數據,如何確定每個字符的相對位置呢,本實施例在計算X軸相對坐標和Y軸相對坐標時,當多個字符之間無空格或格式要求時,可以以該字段數據的首個字符作為參照位置,否則,可以按照預定格式或排版要求分別計算每個字符的相對坐標,即分別計算每個字符相對于文檔左上角原點的X軸相對坐標和Y軸相對坐標。
[0021]例如,在處理“姓名:”這一字段數據時,由于“姓”與“名:”之間無空格,只要確定了“姓”的相對坐標,那么“名:”的相對坐標便也跟著確定,因此,只需要計算“姓”字的X軸相對坐標和Y軸相對坐標,“名:”的X軸相對坐標為對前者的X坐標值進行“+2”處理,而Y軸相對坐標與前者的Y坐標值相同。而在處理類似于“姓(空格)(空格)……名:”這種字段數據時,由于“姓”與“名:”之間有若干空格,需要分別對“姓”和“名:”進行坐標計算,以確定該字段數據的相對坐標。
[0022]在得到所有字段數據及其相對坐標后,需要進行有序化處理,本實施例中,對上述相對坐標進彳丁排序,先排序Y坐標,后排序X坐標,具體為:
由于XPS文件是以頁為單位的一種文件格式,因此,根據頁面的排版要求,依照先頁后行再列的順序對所有字段數據及計算后得到的相對坐標進行重新排序,實現有序化識別處理。
[0023]通常地,在完成字段數據識別后,需要進行預處理,再將預處理結果輸入到識別模塊中,以讀取相應的字段和坐標。本實施例將排序后的文檔輸出到指定路徑,識別模塊可以從該路徑直接找到相應文檔進行識別。上述將排序后的文檔輸出到指定路徑的步驟可以是:
將排序后的文檔轉換為txt格式或xml格式,或者將該文檔以鏈表的形式輸出到上述指定路徑。
[0024]這樣,在進行識別模塊的設計時,設計人員無需精通正則表達式,便可以滿足設計團隊的技術能力要求,降低了技術門檻。
[0025]綜上所述,本發明采用上述方法,不僅可以提高識別的準確度,而且通過直接輸出txt或xml文檔或鏈表到指定路徑供識別模塊讀取,可以降低對識別模塊的設計人員的能力要求,無需精通正則表達式。此外,本發明的上述方法還簡化了 XPS文檔中字段數據的提取難度,解決了 XPS文檔中原始坐標混亂的問題。
[0026]以上所述僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍以權利要求的保護范圍為準。
【主權項】
1.一種XPS結構化數據的解析方法,包括步驟: 初始化XPS文件; 識別XPS文件中所需的字段數據; 提取所述字段數據及其原始坐標; 按照預定算法對所述原始坐標進行計算,得到準確的相對坐標; 對所述相對坐標進彳丁排序,先排序Y坐標,后排序X坐標; 將排序后的文檔或鏈表輸出到指定路徑。2.如權利要求1所述的XPS結構化數據的解析方法,其特征在于,所述識別XPS文件中所需的字段數據的步驟具體包括: 利用關鍵字庫,通過Y坐標或X坐標或前后關鍵字來匹配所述字段數據。3.如權利要求1所述的XPS結構化數據的解析方法,其特征在于,所述按照預定算法對原始坐標進行計算,得到準確的相對坐標的步驟具體包括: 按照預設的坐標修正算法,分別對原始的X、Y坐標進行計算,分別得到所述字段數據相對于文檔左上角原點的X軸相對坐標和Y軸相對坐標。4.如權利要求3所述的XPS結構化數據的解析方法,其特征在于,所述X軸相對坐標和Y軸相對坐標的參照位置為所述字段數據的首個字符。5.如權利要求3所述的XPS結構化數據的解析方法,其特征在于,如果所述字段數據包含多個字符,則按照預定要求分別計算每個字符的相對坐標。6.如權利要求1所述的XPS結構化數據的解析方法,其特征在于,所述對所述相對坐標進tx排序,先排序Y坐標,后排序X坐標的步驟具體包括: 根據排版要求,依照先頁后行再列的順序對所述字段數據及計算后得到的相對坐標進行重新排序。7.如權利要求1所述的XPS結構化數據的解析方法,其特征在于,所述將排序后的文檔輸出到指定路徑的步驟具體包括: 將排序后的文檔轉換成txt格式或xml格式,并將該文檔輸出到指定路徑,或者, 將排序后的包含字段數據及其相對坐標的文檔生成一個鏈表,并將該鏈表輸出到指定路徑。
【專利摘要】本發明涉及一種XPS結構化數據的解析方法,包括步驟:初始化XPS文件;識別XPS文件中所需的字段數據;提取所述字段數據及其原始坐標;按照預定算法對所述原始坐標進行計算,得到準確的相對坐標;對所述相對坐標進行排序,先排序Y坐標,后排序X坐標;將排序后的文檔或鏈表輸出到指定路徑。本發明不僅可以提高識別的準確度,而且簡化了XPS文檔中字段數據的提取難度,解決了XPS文檔中原始坐標混亂的問題。
【IPC分類】G06F9/45
【公開號】CN105302626
【申請號】CN201510751578
【發明人】劉春波, 黎濤
【申請人】深圳市依伴數字科技有限公司
【公開日】2016年2月3日
【申請日】2015年11月9日