欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種PDF轉(zhuǎn)Word場(chǎng)景下跨行、跨列單元格識(shí)別方法、系統(tǒng)、裝置及介質(zhì)與流程

文檔序號(hào):40635612發(fā)布日期:2025-01-10 18:41閱讀:3來(lái)源:國(guó)知局
一種PDF轉(zhuǎn)Word場(chǎng)景下跨行、跨列單元格識(shí)別方法、系統(tǒng)、裝置及介質(zhì)與流程

本發(fā)明屬于pdf文件解析,具體地說(shuō),是涉及一種pdf轉(zhuǎn)word場(chǎng)景下跨行、跨列單元格識(shí)別方法、系統(tǒng)、裝置及介質(zhì)。


背景技術(shù):

1、在pdf格式文件轉(zhuǎn)換成docx文件的場(chǎng)景中,pdf文件中常常會(huì)存在表格信息,雖然現(xiàn)有技術(shù)中有pdf表格信息識(shí)別的解決方案,但是針對(duì)pdf表格涉及跨行、跨列等特殊情況,現(xiàn)有技術(shù)并不能準(zhǔn)確的識(shí)別出。因此,在pdf文件的轉(zhuǎn)換過(guò)程中,如何在表格具有跨行、跨列等情況下,準(zhǔn)確的識(shí)別出完整且準(zhǔn)確的表格,就成為了本領(lǐng)域亟需解決的技術(shù)問(wèn)題。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明的目的在于提供一種pdf轉(zhuǎn)word場(chǎng)景下跨行、跨列單元格識(shí)別方法,以解決現(xiàn)有技術(shù)所存在的技術(shù)問(wèn)題。

2、為了實(shí)現(xiàn)上述目的,本發(fā)明采取的技術(shù)方案如下:

3、一種pdf轉(zhuǎn)word場(chǎng)景下跨行、跨列單元格識(shí)別方法,包括以下步驟:

4、步驟s1:通過(guò)pdf表格識(shí)別方法,獲取到所有的封閉圖形信息,封閉圖形信息具有top、bottom、left、right信息;

5、步驟s2:封閉圖形分類(lèi),并組合成表格的行信息:(2.1):將所有封閉圖形按照top信息從上到下、left信息從左到右進(jìn)行排序,構(gòu)成封閉圖形集合;(2.2):根據(jù)行信息遍歷方法遍歷封閉圖形集合;

6、步驟s3:二階段進(jìn)行列信息初始化:將封閉圖形分類(lèi),并組合成表格的列信息:(3.1):根據(jù)步驟s2獲得的表格的行信息,行信息包含至少一個(gè)封閉圖形,將所有封閉圖形按照l(shuí)eft從左到右的順序進(jìn)行排序,構(gòu)成封閉圖形集合;(3.2):根據(jù)列信息遍歷方法遍歷封閉圖形集合;(3.3):遍歷列信息集合,統(tǒng)計(jì)當(dāng)前行以行信息top作為基準(zhǔn)時(shí),當(dāng)前行的內(nèi)部存在多少行,記為rowcount,并且每一行的top所形成的集合,記為tops;

7、步驟s4:計(jì)算跨行、跨列數(shù);

8、步驟s5:根據(jù)計(jì)算的跨行、跨列數(shù),完成表格的構(gòu)建。

9、在一種實(shí)施方案中,所述行信息遍歷方法如下:

10、(2.2.1)如果當(dāng)前封閉圖形不存在行信息,以當(dāng)前封閉圖形的top信息作為基線(xiàn),創(chuàng)建新的行信息,將當(dāng)前封閉圖形加入所述新的行信息中;

11、(2.2.2)如果當(dāng)前封閉圖形存在行信息,則判斷當(dāng)前封閉圖形的top信息是否等于行信息top,并根據(jù)判斷結(jié)果執(zhí)行以下步驟:

12、(2.2.2.1)如果封閉圖形的top信息與行信息top相等,判斷行信息bottom是否需要更新,判斷當(dāng)前封閉圖形的boottom是否大于行信息的bottom,如果大于則更新,并將當(dāng)前行標(biāo)記為存在單元格合并,將當(dāng)前封閉圖形加入當(dāng)前行,如果不大于則不更新,并將當(dāng)前封閉圖形加入當(dāng)前行;

13、(2.2.2.2)如果封閉圖形的top信息與行信息的top不相等,并且當(dāng)前封閉圖形的top信息小于等于行信息的bottom,判斷當(dāng)前封閉圖形的boottom是否大于行信息的bottom:若是,則將當(dāng)前封閉圖形按照行信息的bottom進(jìn)行拆分,拆分為兩個(gè)封閉圖形,將兩個(gè)封閉圖形加入隊(duì)列,并照行信息的top從上到下、left信息從左到右進(jìn)行排序,再將當(dāng)前行標(biāo)記為存在單元格合并,將當(dāng)前拆分后小于行信息bottom的封閉圖形加入當(dāng)前行中;若否,將當(dāng)前行標(biāo)記為存在單元格合并,將當(dāng)前封閉圖形加入當(dāng)前行中;

14、(2.2.2.3)如果封閉圖形的top信息與行信息的top不相等,并且當(dāng)前封閉圖形的top信息大于行信息的bottom,將之前封閉圖形形成的行進(jìn)行保存,構(gòu)建新的行信息,將當(dāng)前封閉圖形加入新的行中。

15、在一種實(shí)施方案中,所述列信息遍歷方法如下:(3.2.1)如果當(dāng)前列信息集合為空,構(gòu)建新的列信息,并將當(dāng)前封閉圖形加入到新的列中;(3.2.2)如果當(dāng)前列集合不為空,判斷當(dāng)前封閉圖形是否被包含在某個(gè)列信息中,若是,則將當(dāng)前封閉圖形加入到當(dāng)前列中,若否,構(gòu)建一個(gè)新的列,將當(dāng)前封閉圖形加入到新的列中。

16、在一種實(shí)施方案中,所述步驟s4的具體方法如下:

17、(4.1):根據(jù)步驟s3中的標(biāo)記的存在單元格合并,判斷當(dāng)前行是否存在行合并,若否,執(zhí)行步驟(4.2),若是,則執(zhí)行步驟(4.3);

18、(4.2):直接根據(jù)行信息、列信息順序生成新的單元;

19、(4.3):

20、(4.3.1):遍歷當(dāng)前行信息中的列信息,找到當(dāng)前行信息下哪一列具有最多的行,記為rowcount;遍歷所有列信息,根據(jù)tops獲取每一行的最小高度,記為minheigh;

21、(4.3.2):遍歷所述步驟(4.3.1)中的rowcount進(jìn)行表格行生成,每行的生成以所述步驟(4.3.1)中的minheight作為當(dāng)前行的高度:

22、獲取當(dāng)前行的合并信息mergemaps,根據(jù)i從當(dāng)前列的tops中獲取行top,再根據(jù)top獲取當(dāng)前列有多少封閉圖形,遍歷封閉圖形集合,如果當(dāng)前mergemaps不為空,根據(jù)mergemaps信息,為當(dāng)前行進(jìn)行單元格補(bǔ)充,并為補(bǔ)充單元格補(bǔ)充虛線(xiàn)框樣式,計(jì)算出跨行數(shù);

23、(4.3.3):當(dāng)完成所有行的遍歷后,以minheight作為基準(zhǔn),創(chuàng)建一個(gè)補(bǔ)充單元格,用于行合并,并添加到行合并信息mergemap中;

24、(4.3.4):根據(jù)封閉圖形的left、right,與具有最多列的的行信息進(jìn)行計(jì)算,獲取當(dāng)前封閉圖形的跨列數(shù),計(jì)算出跨列數(shù)。

25、在一種實(shí)施方案中,所述步驟s1中,pdf表格識(shí)別方法包括:

26、步驟s1.1:構(gòu)建線(xiàn)段:獲取pdf中的坐標(biāo)信息,根據(jù)坐標(biāo)信息形成的路徑生成出所有的線(xiàn)段信息;

27、步驟s1.2:二維數(shù)組轉(zhuǎn)換:根據(jù)pdf的頁(yè)面的寬和高確定二維數(shù)組的規(guī)模:高做行,寬做列,根據(jù)步驟s1.1的得到的線(xiàn)段信息,確定線(xiàn)段在二維數(shù)組中所在的位置,將線(xiàn)段所在區(qū)域位置的值設(shè)置為1;

28、步驟s1.3:利用感染算法構(gòu)建表格區(qū)域:步驟s1.3.1:遍歷二維數(shù)組,當(dāng)遇到某個(gè)區(qū)域位置的值等于1時(shí),從當(dāng)前位置出發(fā),利用感染算法感染相鄰的所有的值為1的區(qū)域位置;步驟s1.3.2:將所述區(qū)域位置的值由1更改成2;步驟s1.3.3:獲得整體的感染范圍,基于感染范圍構(gòu)建表格區(qū)域;

29、步驟s1.4:利用孤島算法構(gòu)建單元格信息:基于所述步驟s3構(gòu)建的表格區(qū)域,遍歷表格區(qū)域,當(dāng)遇到某個(gè)區(qū)域位置的值等于0時(shí),從當(dāng)前出發(fā),利用孤島算法,獲取到表格區(qū)域中所有的孤島,每一個(gè)孤島即是每一個(gè)單元格;

30、步驟s1.5:獲取左右邊框和上下邊框信息,并根據(jù)左右邊框和上下邊框信息構(gòu)建邊框信息:

31、步驟s1.6:生成并校驗(yàn)封閉區(qū)域信息:利用所述步驟s1.4中的單元格信息,所述步驟s1.5中的邊框信息,組合構(gòu)成封閉圖形;

32、步驟s1.7:構(gòu)建表格信息:將步驟s1.6得到的封閉圖形按照從上到下、從左到右的順序進(jìn)行排序后,判斷封閉圖形之間的連續(xù)性,若任意一條邊相鄰或重疊,將他們進(jìn)存放在同一個(gè)集合中,最終確定出一個(gè)完整的帶邊框的表格。

33、為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種實(shí)現(xiàn)所述的pdf轉(zhuǎn)word場(chǎng)景下跨行、跨列單元格識(shí)別方法的系統(tǒng),包括:

34、pdf表格識(shí)別模塊:通過(guò)pdf表格識(shí)別方法,獲取到所有的封閉圖形信息,封閉圖形信息具有top、bottom、left、right信息;

35、封閉圖形分類(lèi)模塊:封閉圖形分類(lèi),并組合成表格的行信息:(2.1):將所有封閉圖形按照top信息從上到下、left信息從左到右進(jìn)行排序,構(gòu)成封閉圖形集合;(2.2):根據(jù)行信息遍歷方法遍歷封閉圖形集合;

36、列信息初始化模塊:二階段進(jìn)行列信息初始化:將封閉圖形分類(lèi),并組合成表格的列信息:(3.1):根據(jù)步驟s2獲得的表格的行信息,行信息包含至少一個(gè)封閉圖形,將所有封閉圖形按照l(shuí)eft從左到右的順序進(jìn)行排序,構(gòu)成封閉圖形集合;(3.2):根據(jù)列信息遍歷方法遍歷封閉圖形集合;(3.3):遍歷列信息集合,統(tǒng)計(jì)當(dāng)前行以行信息top作為基準(zhǔn)時(shí),當(dāng)前行的內(nèi)部存在多少行,記為rowcount,并且每一行的top所形成的集合,記為tops;

37、計(jì)算模塊:計(jì)算跨行、跨列數(shù);

38、表格構(gòu)建模塊:根據(jù)計(jì)算的跨行、跨列數(shù),完成表格的構(gòu)建。

39、為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行,以實(shí)現(xiàn)所述的pdf轉(zhuǎn)word場(chǎng)景下跨行、跨列單元格識(shí)別方法。

40、為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種pdf轉(zhuǎn)word場(chǎng)景下跨行、跨列單元格識(shí)別裝置,包括:處理器和存儲(chǔ)器;所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)程序;所述處理器與所述存儲(chǔ)器相連,用于執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)程序,以使得所述pdf轉(zhuǎn)word場(chǎng)景下跨行、跨列單元格識(shí)別裝置執(zhí)行所述的pdf轉(zhuǎn)word場(chǎng)景下跨行、跨列單元格識(shí)別方法。

41、與現(xiàn)有技術(shù)相比,本發(fā)明具備以下有益效果:

42、本發(fā)明通過(guò)基線(xiàn)top的概念對(duì)行進(jìn)行分類(lèi)組合,再通過(guò)生成的行信息,遍歷封閉圖形,對(duì)列進(jìn)行分類(lèi)組合,得到行、列信息后,通過(guò)minheight與tops的關(guān)系計(jì)算出跨行數(shù),通過(guò)left、right與具有最大列數(shù)的行的列信息之間的關(guān)系計(jì)算出跨列數(shù);識(shí)別出pdf中的封閉矩形后,可以準(zhǔn)確的識(shí)別出完整且準(zhǔn)確的表格,使得在pdf轉(zhuǎn)word的場(chǎng)景下,可以準(zhǔn)確并完整的轉(zhuǎn)換出表格信息,并且本發(fā)明使用純算法實(shí)現(xiàn),不需要借助任何三方工具,速度具有極大的優(yōu)勢(shì)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
古交市| 平定县| 山阴县| 鲜城| 栾城县| 阿图什市| 六盘水市| 金溪县| 射阳县| 汶川县| 松原市| 龙门县| 北流市| 连云港市| 大连市| 玛多县| 东港市| 恩施市| 永安市| 东安县| 清涧县| 光泽县| 凭祥市| 万山特区| 临高县| 临澧县| 东兰县| 多伦县| 徐闻县| 楚雄市| 广德县| 滨海县| 嘉黎县| 太仓市| 西平县| 齐河县| 江源县| 罗江县| 当涂县| 呼伦贝尔市| 朝阳区|