專利名稱::一種文檔轉(zhuǎn)換中的表格處理方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于文檔應(yīng)用領(lǐng)域,具體涉及一種文檔轉(zhuǎn)換中的表格處理方法及裝置。
背景技術(shù):
:隨著電腦的不斷普及,無紙化辦公得到越來越多的應(yīng)用,各種各樣的文檔也大量的出現(xiàn)在用戶的面前。以可移植文檔格式(PortableDocumentFormat,PDF)、office文檔為例,PDF文件格式以其卓越的特性成為在Internet上進(jìn)行電子文檔發(fā)行和格式化信息傳播的理想文件格式,在將PDF格式的文檔轉(zhuǎn)換office格式的文檔時(shí),面臨較多的困難。譬如PDF格式文檔中的表象為表格的對象,在其內(nèi)部是由很多彼此無任何邏輯關(guān)系的線條或多邊形組成的。在將PDF轉(zhuǎn)換為其他格式的文檔,特別轉(zhuǎn)換為office類的文檔時(shí),由于PDF沒有表格元素,很難跟office類文檔兼容,使轉(zhuǎn)換出的文檔的排版、及編輯效果都很差。在將諸如PDF格式文檔等原文檔中的表格轉(zhuǎn)換為其他文檔格式的表格時(shí),如何提高轉(zhuǎn)換出的文檔的排版及編輯效果,是文檔應(yīng)用領(lǐng)域研究的方向之一。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種文檔轉(zhuǎn)換中的表格處理方法,目的在于在將諸如PDF格式文檔等原文檔中的表格轉(zhuǎn)換為其他文檔格式的表格時(shí),提高轉(zhuǎn)換出的文檔的排版及編輯效果。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種文檔轉(zhuǎn)換中的表格處理方法,所述方法包括以下步驟從原文檔中獲取所有的線段,其中,所述線段包括有組成多邊形的線段;對獲取的線段進(jìn)行表格識(shí)別預(yù)處理,根據(jù)識(shí)別出的線段確定各個(gè)表格區(qū)域;在劃分出的各個(gè)表格區(qū)域內(nèi)確定各個(gè)表格;在確定出的表格內(nèi)填充原文檔中對應(yīng)的內(nèi)容。本發(fā)明實(shí)施例的另一目的在于提供一種文檔轉(zhuǎn)換中的表格處理裝置,所述裝置包括線段獲取模塊,用于從原文檔中獲取所有的線段,其中,所述線段包括有組成多邊形的線段;表格區(qū)域確定模塊,用于對獲取的線段進(jìn)行表格識(shí)別預(yù)處理,根據(jù)識(shí)別出的線段確定各個(gè)表格區(qū)域;表格確定模塊,用于在劃分出的各個(gè)表格區(qū)域內(nèi)確定各個(gè)表格;表格填充模塊,用于在確定出的表格內(nèi)填充原文檔中對應(yīng)的內(nèi)容。本發(fā)明實(shí)施例通過從原文檔(PDF格式)中獲取所有的線段,包括多邊形的線段,對獲取的線段進(jìn)行表格識(shí)別預(yù)處理,根據(jù)識(shí)別出的線段確定各個(gè)表格區(qū)域,在劃分出的各個(gè)表格區(qū)域內(nèi)確定各個(gè)表格,在確定出的表格內(nèi)填充原文檔中對應(yīng)的內(nèi)容,將PDF文檔中由很多無邏輯關(guān)系的線段或多邊形組成的表象為表格的對象,識(shí)別為能用邏輯關(guān)系的結(jié)構(gòu)描述的表格對象,提高了轉(zhuǎn)換出的文檔的排版及編輯效果。圖1為本發(fā)明實(shí)施例提供的文檔轉(zhuǎn)換中的表格處理方法的流程圖;圖2為本發(fā)明實(shí)施例中表象為線段的多邊形;圖3為本發(fā)明實(shí)施例提供的文檔轉(zhuǎn)換中的表格處理裝置的結(jié)構(gòu)圖。具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖1示出了本發(fā)明實(shí)施例提供的文檔轉(zhuǎn)換中的表格處理方法的流程。在步驟SlOl中,從原文檔中獲取所有的線段,其中,所述線段包括有組成多邊形的線段。為便于說明,本發(fā)明實(shí)施例以原文檔為PDF文檔為例進(jìn)行說明。在步驟S102中,對獲取的線段進(jìn)行表格識(shí)別預(yù)處理,根據(jù)識(shí)別出的線段確定各個(gè)表格區(qū)域,該步驟具體的過程將在后文詳述。在步驟S103中,在劃分出的各個(gè)表格區(qū)域內(nèi)確定各個(gè)表格,該步驟具體的過程將在后文詳述。在步驟S104中,在確定出的表格內(nèi)填充原文檔中對應(yīng)的內(nèi)容,該步驟具體的過程將在后文詳述。在具體實(shí)施過程中,圖1中的步驟SlOl具體包括從PDF文檔中獲取所有的線段和多邊形,即解析PDF文檔,從PDF文檔中獲取各種元素,包括文本、線段、多邊形、圖像等,并將獲取的所有的線段存入線段集合Lines中,將獲取的所有多邊形存入多邊形集合Polygons中。在具體實(shí)施過程中,圖1中的步驟S102具體包括(A)、將細(xì)的多邊形識(shí)別為線段;(B)、提取多邊形的邊框,并去除細(xì)小的線段;(C)、從所有線段中提取水平和垂直線段;(D)、去除重疊及內(nèi)含線段;(E)、將可連接的線段識(shí)別為一條線段;(F)、去除沒有線段與其在兩端點(diǎn)正交的線段;(G)、劃分各個(gè)表格區(qū)域。下面將詳細(xì)的描述上述各個(gè)步驟的算法(A)、將細(xì)的多邊形識(shí)別為線段。該步驟(A)即判斷獲取的多邊形是否符合近似線段特征,若符合,將該多邊形識(shí)別為線段;若不符合,則提取該多邊形邊框的線段。在PDF文檔中,有些表象是線段的對象,其實(shí)從PDF文檔中提取出來是多邊形。此類對象的特征是組成多邊形的線段中,有兩條線段是彼此平行、且較其他的線段長的線段,而且多邊形的頂點(diǎn)都分布在這兩個(gè)線段的兩個(gè)端點(diǎn)的附近,在坐標(biāo)誤差范圍內(nèi),可視為重合的點(diǎn)(請參閱圖2)。而此類對象有可能是組成表格的元素,為了能使其表象與其描述結(jié)構(gòu)對應(yīng),故要將此類多邊形識(shí)別為線段。根據(jù)此類多變形的特點(diǎn),本發(fā)明實(shí)施例提供算法如下Al、此多邊形是否具有兩條在平行誤差范圍內(nèi)平行、且較其他線段特別長的線段,若有,則執(zhí)行A3;否則,執(zhí)行A2;A2、判斷此多邊形是否是多邊形集合Polygons中未處理的最后一個(gè)多邊形,若是,則退出此算法,否則,取下一個(gè)多邊形,執(zhí)行Al;A3、取此多邊形的所有頂點(diǎn),存入一個(gè)臨時(shí)的頂點(diǎn)集合Points中;A4、隨意取頂點(diǎn)集合Points中的一個(gè)頂點(diǎn)Pl,作為此輪處理的基準(zhǔn)判斷點(diǎn);A5、從頂點(diǎn)集合Points中剩下的頂點(diǎn)中再取一個(gè)頂點(diǎn)P2,判斷Pl與P2間的距離是否小于坐標(biāo)誤差,若是,則從頂點(diǎn)集合Points中刪除頂點(diǎn)P2,否則,重復(fù)執(zhí)行A5,至到將頂點(diǎn)集合Points中剩下的所有頂點(diǎn)處理一遍,然后從頂點(diǎn)集合Points中取出Pl;A6、再隨意從頂點(diǎn)集合Points中剩下的頂點(diǎn)中取一個(gè)頂點(diǎn)ΡΓ,作為此輪處理的基準(zhǔn)判斷點(diǎn);A7、從頂點(diǎn)集合Points中剩下的頂點(diǎn)中再取一個(gè)頂點(diǎn)判斷Pf與P2—間的距離是否小于坐標(biāo)誤差,若是,則從頂點(diǎn)集合Points中刪除頂點(diǎn)P2—,否則,重復(fù)執(zhí)行A7,至到將頂點(diǎn)集合Points中剩下的所有頂點(diǎn)處理一遍,然后從頂點(diǎn)集合Points中取出Pf;A8、執(zhí)行A4、A5、A6、A7后,判斷頂點(diǎn)集合Points中是否還剩有頂點(diǎn),若無,則將P1、pr作為新線段的兩端點(diǎn),新線段的寬度為pi與ργ橫坐標(biāo)之差,新線段的高度為pi與ργ縱坐標(biāo)之差,新線段的顏色為此多邊形的填充色,然后將此新線段存入線段集合Lines中,并從多邊形集合Polygons中刪除此多邊形。A9、重復(fù)A2。在具體實(shí)施過程中,對多邊形集合Polygons中的每個(gè)多邊形都執(zhí)行上述算法。(B)、提取多邊形的邊框,并去除細(xì)小的線段。在表格識(shí)別中,主要是用線段來進(jìn)行特征分析,判斷這些線段是否可以組合成表格。而多邊形的邊框是由線段組成的,這些線段也有可能是組成表格的線段,故要將多邊形的邊框中的線段提取出來存入線段集合Lines中,以便集體處理。而細(xì)小的線段是那些寬度和高度都小于坐標(biāo)誤差的線段。在線段處理中,這些細(xì)小的線段是對表格識(shí)別毫無意義的,且會(huì)嚴(yán)重影響算法效率,故將它們刪除,此(B)過程的算法如下Bi、對多邊形集合Polygons中每個(gè)多邊形,從多邊形中取出線段,存入線段集合Lines中,然后刪除多邊形集合Polygons;B2、對線段集合Lines中每個(gè)線段,判斷它的寬和高是否都小于坐標(biāo)誤差,如果是,則從線段集合Lines中刪除此線段,否則,保留此線段。(C)、從所有線段中提取水平和垂直線段。根據(jù)對各種格式的文檔中表格特征的分析可知,文檔中的表格幾乎都是由水平和垂直的線段組合而成的。故對其他非水平和非垂直的線段可以刪除,只提取水平線段和垂直線段。此過程算法如下Cl、構(gòu)造一個(gè)新的線段集合HLines,里面存放水平線段;在構(gòu)造一個(gè)新的線段集合VLines,里面存放垂直線段;C2、對線段集合Lines中每個(gè)線段,判斷在平行誤差范圍內(nèi),此線段是否和水平線平行,若平行,則將此線段存入水平線段集合HLines中,否則,判斷在垂直誤差范圍內(nèi),此線段是否和水平線垂直,若垂直,則將此線段存入垂直線段集合VLines中,否則,不處理。(D)、去除重疊及內(nèi)含線段。其中,重疊線段定義為在坐標(biāo)誤差范圍內(nèi),兩個(gè)線段的兩個(gè)端點(diǎn)是重合的。內(nèi)含線段定義為在坐標(biāo)誤差范圍內(nèi),此線段的兩個(gè)端點(diǎn)都在另一個(gè)線段上。幾個(gè)重疊的線段在表象上,其實(shí)是一條線段,故為了跟表象相符,應(yīng)該只取其中的一個(gè)線段,而將其他的線段刪除,當(dāng)一個(gè)線段處在另一個(gè)線段里時(shí),其實(shí)在表象上,它們也只是一個(gè)線段,故為了跟表象相符,應(yīng)該刪除處在另外線段中的線段。此過程算法如下D1、取水平線段集合HLines中第一條線段Li,作為此輪處理的基準(zhǔn)判斷線段;D2、從水平線段集合HLines中剩下的線段中取一條線段L,判斷Ll是否和L2重合,或者Ll是否包含L,若是,則刪除L,否則,重復(fù)B,至到水平線段集合HLines中剩下的線段都被處理過;D3、取水平線段集合HLines中第二條線段L2,作為此輪處理的基準(zhǔn)判斷線段。執(zhí)行D2;D4、......;D5、取水平線段集合HLines中第N條線段LN,作為此輪處理的基準(zhǔn)判斷線段。執(zhí)行B;D6、......;D7、取水平線段集合HLines中最后一條線段LL,作為此輪處理的基準(zhǔn)判斷線段。執(zhí)行B;D8、算法結(jié)束。同樣對垂直線段集合VLines中的線段做上述同樣處理。(E)、將可連接的線段識(shí)別為一條線段??蛇B接的線段的定義為在斜率誤差范圍內(nèi),兩條線段斜率相等,在坐標(biāo)誤差范圍內(nèi),兩條線段的首尾端點(diǎn)重合或兩條線段部分重合,則這兩條線段和連接在一起,作為一條線段。此過程算法如下E1、取水平線段集合HLines中一條線段Li,作為此輪處理的基準(zhǔn)判斷線段;E2、取下一條線段L2,判斷Ll與L2是否可連接,若能連接,則用這兩條線段構(gòu)造一條新的線段LX,并刪除此兩條線段,并用新的線段LX取代Ll;若L2是最后一條未處理線段,則重復(fù)El;若Ll是最后一條作為基準(zhǔn)線段的的線段,則執(zhí)行E4DE3、重復(fù)E2。E4、結(jié)束算法。同樣對垂直線段集合VLines中的線段做上述同樣處理。(F)、去除沒有線段與其在兩端點(diǎn)正交的線段。根據(jù)組成表格的線段的條件,只有在兩端點(diǎn)有與其正交的線段的線段才可能是組成表格的線段。故應(yīng)去除沒有線段與其在兩端點(diǎn)正交的線段。該過程的算法如下F1、取水平線段集合HLines中一條線段Li,作為此輪處理的基準(zhǔn)判斷線段。并創(chuàng)建兩個(gè)標(biāo)志變量FA,F(xiàn)B,FA表示線段Ll的A端點(diǎn)是否有交點(diǎn),F(xiàn)B表示線段Ll的B端點(diǎn)是否有交點(diǎn),初始化都為false;F2、取垂直線段集合VLines中一條線段L2;F3、FA是否為false,若是,則執(zhí)行F4。否則,執(zhí)行F6;F4、判斷Ll的A端點(diǎn)是否在L2上,若在,則執(zhí)行F5;F5、設(shè)置FA為true,并判斷FB是否為true,若是,則重復(fù)Fl,至到水平線段集合HLines中每條線段處理完畢,然后算法結(jié)束,否則重復(fù)F2,至到垂直線段集合VLines中每條線段都處理過。若至到垂直線段集合VLines中每條線段都處理過,且FA和FB不都為true,則刪除Ll;F6、FB是否為false,若是,則執(zhí)行F7;F7、判斷Ll的B端點(diǎn)是否在L2上,若在,則執(zhí)行F8;F8、設(shè)置FB為true,并判斷FA是否為true,若是,則重復(fù)Fl,至到水平線段集合HLines中每條線段處理完畢,然后算法結(jié)束。否則重復(fù)F2,至到垂直線段集合VLines中每條線段都處理過。若至到垂直線段集合VLines中每條線段都處理過,且FA和FB不都為true,則刪除Li。同理,對垂直線段集合VLines中每條線段進(jìn)行如上類似處理。(G)、劃分各個(gè)表格區(qū)域。此算法如下G1、構(gòu)造一個(gè)矩形區(qū)域集合Areas;G2、取水平線段集合HLines中一條線段,在垂直線段集合VLines中尋找與它在端點(diǎn)相交的線段,根據(jù)此兩條線段的坐標(biāo),可以構(gòu)造一個(gè)矩形區(qū)域A,此矩形區(qū)域的左上點(diǎn)是這兩線段的四個(gè)端點(diǎn)中最小點(diǎn),矩形區(qū)域的右下點(diǎn)是這兩線段的四個(gè)端點(diǎn)中最大點(diǎn)。將此矩形區(qū)域存入矩形區(qū)域集合Areas中;G3、重復(fù)G2,至到不再有更多的矩形區(qū)域可以構(gòu)造出來。繼續(xù)回到圖1中,其中,步驟S103,在各個(gè)表格區(qū)域內(nèi)識(shí)別各個(gè)表格。需要說明的是,以下算法中的area為矩形區(qū)域集合Areas中的一個(gè),為了識(shí)別出所有的表格,需要對矩形區(qū)域集合Areas中的每個(gè)矩形區(qū)域area進(jìn)行以下的算法。在本發(fā)明實(shí)施例中,用于描述表格的數(shù)據(jù)結(jié)構(gòu)的屬性包括一個(gè)用于存儲(chǔ)表格的基礎(chǔ)單元格的二維數(shù)組,一個(gè)用于存儲(chǔ)表格的邏輯單元格的一維鏈表,還有表格的位置及尚覓^[目息。步驟S103就是將表格區(qū)域中的一個(gè)表格,用此數(shù)據(jù)結(jié)構(gòu)描述出來。故要獲取表格的上述屬性,才能完整的描述一個(gè)表格。該過程主要包括以下的步驟(H)、提取一個(gè)表格區(qū)域內(nèi)的所有線段;(I)、去除在兩端無交點(diǎn)的線段;(J)、確定表格的基礎(chǔ)單元格,及行數(shù),列數(shù);(K)、確定表格的坐標(biāo)位置及寬高;(L)、確定表格的邏輯單元格。下面詳細(xì)的描述上述的步驟。(H)、提取一個(gè)表格區(qū)域內(nèi)的所有線段。此過程算法如下HI、構(gòu)造水平線段臨時(shí)集合THLines,和垂直線段臨時(shí)集合TVLines;H2、對水平線段集合HLines中每條線段HL,根據(jù)坐標(biāo)位置,在坐標(biāo)誤差范圍內(nèi),判斷HL是否在area中,若在,則將HL存入水平線段臨時(shí)集合THLines;H3、對垂直線段集合VLines中每條線段VL,根據(jù)坐標(biāo)位置,在坐標(biāo)誤差范圍內(nèi),判斷VL是否在area中,若在,則將VL存入水平線段臨時(shí)集合TVLines。(I)、去除在兩端無交點(diǎn)的線段。去除水平線段集合HLines中和垂直線段集合VLines中,在兩端無交點(diǎn)的線段,該算法在上文有述,此處不再贅述。(J)、確定表格的基礎(chǔ)單元格,及行數(shù),列數(shù)。該過程算法如下J1、在水平線段臨時(shí)集合THLines中,統(tǒng)計(jì)所有的水平線段的縱坐標(biāo)的不同個(gè)數(shù)M,則表格的行數(shù)就是M-I;J2、在垂直線段臨時(shí)集合TVLines中,統(tǒng)計(jì)所有的垂直線段的橫坐標(biāo)的不同個(gè)數(shù)N,則表格的列數(shù)就是N-I;J3、統(tǒng)計(jì)水平線段臨時(shí)集合THLines中的水平線段與垂直線段臨時(shí)集合TVLines中的垂直線段的交點(diǎn)坐標(biāo),并存入一個(gè)二維數(shù)組中;J4、則此表格的基礎(chǔ)單元格的個(gè)數(shù)為(M-I)X(N-I),每個(gè)邏輯單元格的坐標(biāo)信息都是對應(yīng)編號的交點(diǎn)的坐標(biāo)。寬度是對應(yīng)交點(diǎn)和下一個(gè)水平相鄰交點(diǎn)的橫坐標(biāo)之差,高度是對應(yīng)交點(diǎn)和下一個(gè)垂直相鄰交點(diǎn)的縱坐標(biāo)之差。(K)、確定表格的坐標(biāo)位置及寬高。此過程算法如下K1、表格的坐標(biāo)既最小編號的交點(diǎn)的坐標(biāo);K2、寬度是最大編號交點(diǎn)和最小編號交點(diǎn)的橫坐標(biāo)之差,高度是最大編號交點(diǎn)和最小編號交點(diǎn)的縱坐標(biāo)之差。(L)、確定表格的邏輯單元格。此過程算法如下Li、計(jì)算每個(gè)基礎(chǔ)單元格四個(gè)邊框的中點(diǎn)坐標(biāo),并根據(jù)組成表格的實(shí)際線段的坐標(biāo),判斷每個(gè)中點(diǎn)是實(shí)中點(diǎn),還是虛中點(diǎn),實(shí)中點(diǎn)就是處在實(shí)際線段上的中點(diǎn),虛中點(diǎn)就是不處在實(shí)際線段上的中點(diǎn);L2、根據(jù)虛中點(diǎn),合并相鄰的基礎(chǔ)單元格為一個(gè)邏輯單元格。繼續(xù)回到圖1,其中,步驟S104確定表格的各個(gè)邏輯單元格的內(nèi)容,具體包括將從PDF文檔中解析的所有元素,與每個(gè)邏輯單元格對比,在坐標(biāo)誤差范圍內(nèi),判斷此元素是否在此邏輯單元格中,若在,則將此元素存入邏輯單元格的內(nèi)容列表中,否則,不處理。本發(fā)明實(shí)施例還提供一種文檔轉(zhuǎn)換中的表格處理裝置,請參閱圖3。其中,線段獲取模塊31,用于從原文檔中獲取所有的線段,其中,所述線段包括有組成多邊形的線段;表格區(qū)域確定模塊32,用于對獲取的線段進(jìn)行表格識(shí)別,根據(jù)識(shí)別出的線段確定各個(gè)表格區(qū)域;表格確定模塊33,用于在劃分出的各個(gè)表格區(qū)域內(nèi)確定各個(gè)表格;表格填充模塊34,用于在確定出的表格內(nèi)填充原文檔中對應(yīng)的內(nèi)容。所述線段獲取模塊31,還用于,獲取原文檔中的所有線段和多邊形;判斷獲取的多邊形是否符合近似線段特征,若符合,將該多邊形識(shí)別為線段;若獲取的多邊形不符合近似線段特征,則提取該多邊形邊框的線段。所述表格區(qū)域確定模塊32,還用于,刪除重疊及內(nèi)含線段,以及在兩端點(diǎn)無正交的線段;將可連接的線段識(shí)別為同一條線段;在剩余的線段中獲取水平和垂直線段;根據(jù)獲取的線段劃分各個(gè)表格區(qū)域。所述表格確定模塊33還用于,獲取一個(gè)表格區(qū)域內(nèi)的所有線段;刪除在兩端無交點(diǎn)的線段;確定所述表格的基礎(chǔ)單元格、行數(shù)以及列數(shù);確定所述表格的坐標(biāo)位置及寬高;確定所述表格的邏輯單元格。所述表格填充模塊34,還用于,從原文檔中解析獲取所有元素;將獲取的元素與每個(gè)表格中的邏輯單元格進(jìn)行對比,在坐標(biāo)誤差范圍內(nèi),判斷獲取的元素是否在對應(yīng)表格中的邏輯單元格中;若在,則將獲取的元素填充進(jìn)所述邏輯單元格的內(nèi)容列表中。本發(fā)明實(shí)施例通過從原文檔(PDF格式)中獲取所有的線段,包括多邊形的線段,對獲取的線段進(jìn)行表格識(shí)別預(yù)處理,根據(jù)識(shí)別出的線段確定各個(gè)表格區(qū)域,在劃分出的各個(gè)表格區(qū)域內(nèi)確定各個(gè)表格,在確定出的表格內(nèi)填充原文檔中對應(yīng)的內(nèi)容,將PDF文檔中由很多無邏輯關(guān)系的線段或多邊形組成的表象為表格的對象,識(shí)別為能用邏輯關(guān)系的結(jié)構(gòu)描述的表格對象,提高了轉(zhuǎn)換出的文檔的排版及編輯效果。應(yīng)當(dāng)理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。權(quán)利要求一種文檔轉(zhuǎn)換中的表格處理方法,其特征在于,所述方法包括以下步驟從原文檔中獲取所有的線段,其中,所述線段包括有組成多邊形的線段;對獲取的線段進(jìn)行表格識(shí)別預(yù)處理,確定各個(gè)表格區(qū)域;在劃分出的各個(gè)表格區(qū)域內(nèi)確定各個(gè)表格;在確定出的表格內(nèi)填充原文檔中對應(yīng)的內(nèi)容。2.如權(quán)利要求1所述的文檔轉(zhuǎn)換中的表格處理方法,其特征在于,所述從原文檔中獲取所有的線段的步驟具體包括獲取原文檔中的所有線段和多邊形;判斷獲取的多邊形是否符合近似線段特征,若符合,將該多邊形識(shí)別為線段;若獲取的多邊形不符合近似線段特征,則提取該多邊形邊框的線段。3.如權(quán)利要求1所述的文檔轉(zhuǎn)換中的表格處理方法,其特征在于,所述對獲取的線段進(jìn)行表格識(shí)別預(yù)處理,確定各個(gè)表格區(qū)域的步驟具體包括刪除重疊及內(nèi)含線段,以及在兩端點(diǎn)無正交的線段;將可連接的線段識(shí)別為同一條線段;在剩余的線段中獲取水平和垂直線段;根據(jù)獲取的線段劃分各個(gè)表格區(qū)域。4.如權(quán)利要求1所述的文檔轉(zhuǎn)換中的表格處理方法,其特征在于,所述在劃分出的各個(gè)表格區(qū)域內(nèi)確定各個(gè)表格的步驟具體包括從水平及垂直線段集合中,獲取一個(gè)表格區(qū)域內(nèi)的所有線段;刪除在兩端無交點(diǎn)的線段;確定所述表格的基礎(chǔ)單元格、行數(shù)以及列數(shù);確定所述表格的坐標(biāo)位置及寬高;確定所述表格的邏輯單元格。5.如權(quán)利要求1所述的文檔轉(zhuǎn)換中的表格處理方法,其特征在于,所述在確定出的表格內(nèi)填充原文檔中對應(yīng)的內(nèi)容的步驟具體包括從原文檔中解析獲取所有元素;將獲取的元素與每個(gè)表格中的邏輯單元格進(jìn)行坐標(biāo)對比,在坐標(biāo)誤差范圍內(nèi),判斷獲取的元素是否在對應(yīng)表格中的邏輯單元格中;若在,則將獲取的元素填充進(jìn)所述邏輯單元格的內(nèi)容列表中。6.一種文檔轉(zhuǎn)換中的表格處理裝置,其特征在于,所述裝置包括線段獲取模塊,用于從原文檔中獲取所有的線段,其中,所述線段包括有組成多邊形的線段;表格區(qū)域確定模塊,用于對獲取的線段進(jìn)行表格識(shí)別預(yù)處理,根據(jù)識(shí)別出的線段確定各個(gè)表格區(qū)域;表格確定模塊,用于在劃分出的各個(gè)表格區(qū)域內(nèi)確定各個(gè)表格;表格填充模塊,用于在確定出的表格內(nèi)填充原文檔中對應(yīng)的內(nèi)容。7.如權(quán)利要求6所述的文檔轉(zhuǎn)換中的表格處理裝置,其特征在于,所述線段獲取模塊,還用于,獲取原文檔中的所有線段和多邊形;判斷獲取的多邊形是否符合近似線段特征;將多邊形識(shí)別為線段;提取多邊形邊框的線段。8.如權(quán)利要求6所述的文檔轉(zhuǎn)換中的表格處理裝置,其特征在于,所述表格區(qū)域確定模塊,還用于,刪除重疊及內(nèi)含線段,以及在兩端點(diǎn)無正交的線段;將可連接的線段識(shí)別為同一條線段;在剩余的線段中獲取水平和垂直線段;根據(jù)獲取的線段劃分各個(gè)表格區(qū)域。9.如權(quán)利要求6所述的文檔轉(zhuǎn)換中的表格處理裝置,其特征在于,所述表格確定模塊,還用于,從水平及垂直線段集合中,獲取一個(gè)表格區(qū)域內(nèi)的所有線段;刪除在兩端無交點(diǎn)的線段;確定所述表格的基礎(chǔ)單元格、行數(shù)以及列數(shù);確定所述表格的坐標(biāo)位置及寬高;以及,確定所述表格的邏輯單元格。10.如權(quán)利要求6所述的文檔轉(zhuǎn)換中的表格處理裝置,其特征在于,所述表格填充模塊,還用于,從原文檔中解析獲取所有元素;將獲取的元素與每個(gè)表格中的邏輯單元格進(jìn)行坐標(biāo)對比,在坐標(biāo)誤差范圍內(nèi),判斷獲取的元素是否在對應(yīng)表格中的邏輯單元格中;以及,將獲取的元素填充進(jìn)所述邏輯單元格的內(nèi)容列表中。全文摘要本發(fā)明屬于文檔應(yīng)用領(lǐng)域,公開了一種文檔轉(zhuǎn)換中的表格處理方法及裝置,所述方法包括從原文檔中獲取所有的線段,其中,所述線段包括有組成多邊形的線段;對獲取的線段進(jìn)行表格識(shí)別預(yù)處理,確定各個(gè)表格區(qū)域;在劃分出的各個(gè)表格區(qū)域內(nèi)確定各個(gè)表格;在確定出的表格內(nèi)填充原文檔中對應(yīng)的內(nèi)容。本發(fā)明將PDF文檔中由很多無邏輯關(guān)系的線段或多邊形組成的表象為表格的對象,識(shí)別為能用邏輯關(guān)系的結(jié)構(gòu)描述的表格對象,提高了轉(zhuǎn)換出的文檔的排版及編輯效果。文檔編號G06F17/24GK101866335SQ201010206608公開日2010年10月20日申請日期2010年6月14日優(yōu)先權(quán)日2010年6月14日發(fā)明者晏檢平,李瑩瑩申請人:深圳市萬興軟件有限公司