專利名稱:從可移植電子文檔中提取文字部件的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及文檔處理和文檔理解,具體地涉及提取可移植電子文檔中的文 字區(qū)域。
背景技術(shù):
可移植的電子文檔,如PDF,PS等,具有在各種系統(tǒng)平臺中顯示格式、屬性不變的 特性,即具有可移植性,并在日常辦公室工作中被廣泛應(yīng)用。但是從可移植電子文檔中提取 部件還是一件難的工作。比如,在PDF文檔的格式說明書中,文字部件,比如段落,是由一組 獨立的文字片斷組成的,這使得從PDF文檔中提取高級文字部件很難。從電子文檔中提取 文字部件對于文檔重用以及文檔檢索等應(yīng)用有重要用途。美國專利6801673 B2提取PDF文檔中的詞。該專利通過查找文字片斷中的詞分 隔字符(空格)來提取詞或者是判斷相鄰文字片斷之間的距離,如果該距離大于一定門限 值,相鄰的文字片斷就被分為兩個詞。該專利的輸入是一個PDF文檔,輸出是該文檔所包含 的詞的集合。美國專利5832530提出了一個從PDF文檔中提取內(nèi)容片斷的工具。首先,用戶在 PDF瀏覽界面拖拽一個矩形,該工具提取該矩形內(nèi)包含的PDF文檔內(nèi)容片斷,并將提取的內(nèi) 容片斷存儲為一個新的PDF文檔。該工具提取和粘貼低級的PDF命令,高級文檔內(nèi)容如文 字部件并沒有提取。在現(xiàn)有技術(shù)中,一般僅僅手動簡單地提取所選中的文本流,而沒有自動地提取文 字部件。而且,上述提取詞匯或者提取文檔內(nèi)容片斷的技術(shù)中,均沒有保留關(guān)于詞匯或者 文檔內(nèi)容片斷在文檔中的位置信息,例如,沒有保留某內(nèi)容片斷是處于頁面的何處的位置 信息。當(dāng)然上述現(xiàn)有技術(shù)更沒有保留可移植電子文檔中各個文字部件之間,文字部件內(nèi)部 的文字行和文字行之間的位置信息。而位置信息對于文檔重用等應(yīng)用是非常重要的。
發(fā)明內(nèi)容
本發(fā)明的一個目的是提供一種能夠自動提取文字部件的裝置和方法。根據(jù)本發(fā)明的一個方面,提出了一種從可移植電子文檔中提取文字部件的裝置, 所述裝置包括文字命令和字體獲取單元,用于解析可移植電子文檔以獲取和文字相關(guān)的 命令和字體;文字片斷提取單元,用于通過處理所述和文字相關(guān)的命令和字體來提取文字 片斷以及文字片斷的位置;以及文字部件提取單元,用于根據(jù)提取的文字片斷和文字片斷 的位置提取文字部件。根據(jù)本發(fā)明的一個優(yōu)選實施例,所述文字部件提取單元還可以根據(jù)提取的文字片 斷和文字片斷的位置提取文字部件的位置信息。根據(jù)本發(fā)明的一個優(yōu)選實施例,所述文字部件提取單元還可以包括文字片斷合并單元,用于合并文字片斷到文字行;文字行合并單元,用于合并文字行到文字部件。
根據(jù)本發(fā)明的另一個方面,提出了一種從可移植電子文檔中提取文字部件的方 法,所述方法包括解析可移植電子文檔以獲取和文字相關(guān)的命令和字體;通過處理所述 和文字相關(guān)的命令和字體來提取文字片斷的內(nèi)容以及文字片斷的位置;以及根據(jù)提取的文 字片斷的內(nèi)容和文字片斷的位置提取文字部件。根據(jù)本發(fā)明的一個優(yōu)選實施例,本提取文字部件的方法還可以根據(jù)提取的文字片 斷和文字片斷的位置提取文字部件的位置信息。利用本發(fā)明的裝置和方法,可以自動地從可移植電子文檔中提取文字部件。進(jìn)一步地,利用本發(fā)明的方法和系統(tǒng),還可以提取所提取的文字部件的位置信息, 也能夠保持所提取的各個文字部件之間的位置關(guān)系。本發(fā)明提取的文字部件以及文字部件的位置信息可以為文檔重用和信息檢索等 應(yīng)用提供堅實基礎(chǔ)。
通過結(jié)合附圖對本發(fā)明各個實施例的詳細(xì)描述,本領(lǐng)域的技術(shù)人員可以更好地理 解本發(fā)明的上述和其它方面、特點和優(yōu)點,其中在所有附圖中使用相同或相似的附圖標(biāo)記 來表示相同或者相似的部件,在附圖中圖1示出了根據(jù)本發(fā)明一個實施例的從可移植電子文檔中提取文字部件的裝置 的構(gòu)成框圖;圖2示出了根據(jù)本發(fā)明一個實施例的文字部件提取單元的構(gòu)成框圖;圖3是示出了根據(jù)本發(fā)明一個實施例的從可移植電子文檔提取文字部件的方法 流程圖;圖4示出了根據(jù)本發(fā)明一個實施例的從可移植電子文檔中提取文字相關(guān)命令和 字體的流程圖;圖5示出了根據(jù)本發(fā)明一個實施例的文字片斷提取流程圖;圖6示出了根據(jù)本發(fā)明一個實施例的根據(jù)文字片斷和文字片斷位置提取文字部 件的流程圖;圖7示出了根據(jù)本發(fā)明一個實施例的文字片斷到文字行合并流程圖;圖8示出了根據(jù)本發(fā)明一個實施例的文字行到文字部件合并流程圖;圖9示出了根據(jù)本發(fā)明一個實施例的PDF文檔樹狀結(jié)構(gòu);圖10示出了根據(jù)本發(fā)明一個實施例的所提取的文字部件示例;以及圖11示出了用于實現(xiàn)本發(fā)明一個實施例的示例性計算機系統(tǒng)。
具體實施例方式下面將結(jié)合附圖詳細(xì)描述本發(fā)明的具體實施例。如果考慮到對某些相關(guān)現(xiàn)有技術(shù) 的詳細(xì)描述可能會混淆本發(fā)明的要點,則不會在這里提供其詳細(xì)描述。本發(fā)明中所述的文字部件(document component)是可移植電子文檔的組件,其和 表格部件,圖形部件等一起組成了可移植電子文檔。在本申請中,一個文字片斷例如和一個 文字顯示命令對應(yīng),一個文字片斷包含一個或多個字符,例如,文字顯示命令“Tj (hello) ” 中,“ (hello),,就是一個文字片斷。相對文字片斷,文字部件是更高級的文檔組成部件,它可以包含一個或者多個相鄰的段落,并且可以是標(biāo)題,作者,或者是頁碼。附圖10給出了文 字部件的一些示例,其中所框起來的長方形部分是文字部件的示例。但是,PDF文檔中并不 存在和這些文字部件對應(yīng)的命令,換句話說,PDF文檔并不知道哪些是文字部件。在文檔重用,信息檢索等技術(shù)領(lǐng)域,存在提取文字部件的需求。針對此,做出了本 發(fā)明。圖1示出了根據(jù)本發(fā)明一個實施例的從可移植電子文檔中提取文字部件的裝置 100的構(gòu)成框圖。如圖1所示,提取文件部件的裝置100可以包括文字命令和字體獲取 單元110,用于解析可移植電子文檔以獲取和文字相關(guān)的命令和字體;文字片斷提取單元 120,用于通過處理所述和文字相關(guān)的命令和字體來提取文字片斷以及文字片斷的位置;以 及文字部件提取單元130,用于根據(jù)提取的文字片斷和文字片斷的位置提取文字部件。圖2示出了根據(jù)本發(fā)明一個實施例的文字部件提取單元130的構(gòu)成框圖。根據(jù)該 實施例,文字部件提取單元130可以包括文字片斷合并單元131,用于合并文字片斷到文 字行;文字行合并單元132,用于合并文字行到文字部件。需要指出的是,文字片斷合并單 元131和文字行合并單元132對于文字部件提取單元130并非必需的。例如,在很多情況 下,可移植電子文檔中,一行就是一個文字片斷,此時顯然不需要文字片斷合并單元。再例 如,在圖10所示的文字部件示例中,對于文字部件1001、1002、1003、1004,每個文字部件就 是一個文字行,則顯然不需要文字行合并單元。舉例來說,如果某個應(yīng)用只需要提取頁碼、 簡短的大標(biāo)題這些文字部件,則很可能不需要文字片斷合并單元和文字行合并單元。圖3是示出了根據(jù)本發(fā)明一個實施例的從可移植電子文檔中提取文字部件的方 法3000的流程圖。根據(jù)該實施例的方法3000包括步驟3100,解析可移植電子文檔以獲 取和文字相關(guān)的命令和字體;步驟3200,通過處理所述和文字相關(guān)的命令和字體來提取文 字片斷的內(nèi)容以及文字片斷的位置;以及步驟3300,根據(jù)提取的文字片斷的內(nèi)容和文字片 斷的位置提取文字部件。圖10所示長方形為本實施例提取的文字部件示例。下面將參照圖4到圖8對于提取文字部件的方法的各個步驟進(jìn)行示例性詳細(xì)說 明。在下面的描述中,將以PDF文件作為可移植電子文檔的示例來加以說明。不過,本發(fā)明 并不局限于此,可移植電子文檔可以包括任何具有與系統(tǒng)平臺無關(guān)的特性的電子文檔,例 如,PS。圖4示出了根據(jù)本發(fā)明一個實施例的從可移植電子文檔中提取文字相關(guān)命令和 字體的流程圖。如圖4所示,在步驟3110,載入PDF文件。在步驟3120,解析并建立該PDF文檔對 應(yīng)的樹狀結(jié)構(gòu),通過該文檔結(jié)構(gòu),對PDF文檔每頁的內(nèi)容流和資源的訪問變得更加容易。當(dāng) 然,作為一個替代性實施例,可以不建立文檔樹狀結(jié)構(gòu),而直接提取需要的內(nèi)容流和資源。 圖9示出了 PDF文檔樹狀結(jié)構(gòu)的示例。在步驟3130,載入PDF文檔當(dāng)前頁的內(nèi)容流和資源,根據(jù)內(nèi)容流的編碼方式對內(nèi) 容流解碼。根據(jù)PDF文檔說明書,PDF文檔可以支持多種內(nèi)容流編碼方式,比如FlateDecode 和LZWDecode等。在步驟3130中實現(xiàn)對PDF支持的多種編碼方式解碼,由此得到了解碼后 的內(nèi)容流。解碼后的PDF內(nèi)容流包括PDF命令集合。在步驟3140,逐條解析解碼后PDF內(nèi)容流中的命令,提取那些和文字相關(guān)的命令。 和文字相關(guān)的命令包括但不限于文字顯示命令,文字定位命令以及文字狀態(tài)命令。例如,"Td x y”是文字定位命令,它把當(dāng)前文字插入點設(shè)為點(X,y),“Tj(hello)”是文字顯示命 令,它在當(dāng)前文字插入點顯示文字片斷” hello”,“Tc 0. 25”是文字狀態(tài)命令,它設(shè)置當(dāng)前字 符間距為0. 25,“Tf 18R10”是文字狀態(tài)命令,它設(shè)置當(dāng)前字體為R10,字體尺寸為18。在步驟3150,處理PDF文檔中每一頁的字體,獲取相關(guān)字體,可以把所提取的字體 添加到字體列表中。一般地,PDF文檔中文字的字體是作為字體資源存放在PDF文件中的, 字體設(shè)定了對應(yīng)該字體文字的解碼方式以及字符字形,字體決定文字編碼,字形等信息。字 體的示例包括例如楷體和宋體。在步驟3160,判斷PDF文檔是否還存在下一頁,如果存在下一頁,則繼續(xù)對下一頁 執(zhí)行步驟3130-3150。如果不存在下一頁,則在步驟3170返回所提取的文字相關(guān)命令和字 體,并結(jié)束處理。在本實施例中,對于整個PDF文檔提取所有文字部件。當(dāng)然,本發(fā)明不局 限于此,而是可以對于某些頁,某一頁,或者某一頁中的某具體部分來提取文字部件。圖5示出了根據(jù)本發(fā)明一個實施例的文字片斷提取流程圖。如圖5所示,步驟3210逐條載入步驟3100中返回的文字相關(guān)命令,如果不再存在 文字相關(guān)命令,則結(jié)束處理。如果存在文字相關(guān)命令,步驟3220根據(jù)不同的文字命令作相 應(yīng)處理,比如,文字顯示命令Tj創(chuàng)建一個文字片斷,并顯示于當(dāng)前文字插入點。步驟3220 中的文字顯示命令僅僅是一個示例,任何其它和文字顯示、創(chuàng)建相關(guān)的現(xiàn)有命令或者將來 出現(xiàn)的命令都可以作為文字片斷位置計算和片斷解碼操作中要分析的文字相關(guān)命令。在步驟3230,根據(jù)文字相關(guān)命令——例如最近的文字定位命令,文字狀態(tài)命 令——以及對應(yīng)文字片斷的字體計算每個文字片斷的位置信息。這里計算的文字片斷位置 信息可以是包含該文字片斷的最小長方形。舉例說明如下,假設(shè)PDF內(nèi)容流片斷為Tc 1Td 100 100Tj(hello)Tc 2Td 130 100Tj (world)這里文字定位命令Td 130 100是相對于文字顯示命令Tj (world)最近的文字定 位命令,而文字定位命令Td 100 100是相對于文字顯示命令Tj (hello)最近的文字定位 命令。通過文字定位命令Td 100 100,我們可以確定包含文字片斷“hello”的最小長方形 的左下角的位置。通過字體,我們可以確定每個字符的寬度和高度,通過文字狀態(tài)命令,我 們可以確定字符間距、詞間距、旋轉(zhuǎn),放縮,平移等。由此,可以通過計算得到包含文字片斷 “hello”的最小長方形的右上角的位置,從而得到了文字片斷的位置信息。在步驟3240,根據(jù)對應(yīng)文字片斷的字體中包含的映射表對文字片斷中的每個字符 進(jìn)行解碼。比如,通常的字體映射字符代碼97為字符”a”。不過,如果字體中規(guī)定了其他的 字符編碼方式,字符碼97也可以對應(yīng)其他字符。在步驟3250,檢測每個文字片斷中解碼后 的字符,如果一個文字片斷中包含至少一個非空格字符,那么步驟3260就把該文字片斷添 加到文字片斷集合。本示例不把全部空格作為文字片斷,當(dāng)然本發(fā)明不局限于此,也可以把 空格作為普通字符來處理,而把全為空格的字符串也作為文字片斷。在本實施例中,在步驟 3260,把水平文字片斷添加到水平文字集合,垂直文字片斷被添加到垂直文字集合。當(dāng)然,可以不區(qū)分水平文字片斷和垂直文字片斷,將所有字符片段添加到一個文字片斷集合中。圖6示出了根據(jù)本發(fā)明一個實施例的根據(jù)文字片斷和文字片斷位置提取文字部 件的流程圖。如圖6所示,提取文字部件的步驟3300可以包括文字片斷合并步驟3310, 用于合并文字片斷到文字行;文字行合并單元3320,用于合并文字行到文字部件。需要指 出的是,文字片斷合并步驟3310和文字行合并單元3320對于文字部件提取步驟3300并非 是必需的。例如,在很多情況下,可移植電子文檔中,一行就是一個文字片斷,此時顯然不需 要文字片斷合并步驟。再例如,在圖10所示的文字部件示例中,對于文字部件1001、1002、 1003、1004,每個文字部件就是一個文字行,則顯然不需要文字行步驟。舉例來說,如果某個 應(yīng)用只需要提取頁碼、簡短的大標(biāo)題這些文字部件,則很可能不需要文字片斷合并步驟和 文字行合并步驟。下面參照圖7和圖8,分別舉例說明合并文字片斷到文字行和合并文字行到文字 片斷的流程。圖7示出了根據(jù)本發(fā)明一個實施例的水平文字片斷到水平文字行合并流程圖。在 本實施例的文字片斷到文字行合并的方法中,根據(jù)文字片斷的位置對文字片斷排序;通過 比較相鄰文字片斷的位置關(guān)系合并文字片斷到文字行。具體地,如圖7所示,在步驟3311,首先對水平文字片斷集合中的文字片斷進(jìn)行排 序。這里的排序是根據(jù)位置信息進(jìn)行的,x和y坐標(biāo)相對較小的文字片斷排在前面。在步 驟3312中,片斷標(biāo)記或片段索引SEG_INDEX被初始化為0,當(dāng)前片斷⑶R_SEG被設(shè)為水平文 字片斷集合中對應(yīng)于片段標(biāo)記SEG_INDEX的文字片斷。在步驟3313中,下一個片斷NEXT_ SEG被設(shè)為水平文字片斷集合中對應(yīng)于片段標(biāo)記SEG_INDEX+1的文字片斷。在步驟3314,比較當(dāng)前片斷⑶R_SEG和下一個片斷NEXT_SEG的位置關(guān)系以決定他 們是否應(yīng)該合并。根據(jù)一個示例性實施例,如果相鄰文字片斷在與文字行的方向垂直的方 向上重疊,并且該相鄰文字片斷在文字行方向上彼此之間的距離小于預(yù)定門限,則合并該 相鄰文字片斷到文字行。下面,以本實施例中的水平文字片斷為例進(jìn)行說明。如果兩個水 平文字片斷在垂直方向重疊,并且他們在水平方向的距離小于給定門限T,那么判斷這兩個 水平文字片斷合并,否則判斷為不合并。所述門限T可以是根據(jù)經(jīng)驗設(shè)定的,或者可以是根 據(jù)待合并文字片斷對的尺寸信息計算的,例如門限T被設(shè)置為待合并文字片斷對中較短文 字片斷長度的10%。如果在步驟3314判斷合并當(dāng)前片斷CUR_SEG和下一個片斷NEXT_SEG,則繼續(xù)到步 驟3315。在步驟3315,合并兩個文字片斷,并將當(dāng)前片斷CUR_SEG設(shè)為合并后的文字片斷, 參數(shù)SEG_INDEX增加1。這里文字片斷合并包括位置信息合并以及字符連接。如果在步驟3314中,當(dāng)前片斷⑶R_SEG和下一個片斷NEXT_SEG被判斷為不合并, 則流程進(jìn)入步驟3316,其中當(dāng)前片斷CUR_SEG被添加到水平文字行集合。接下來,在步驟 3317中,參數(shù)CUR_SEG被更新為文字片斷集合中對應(yīng)CUR_INDEX+1的文字片斷,同時,參數(shù) CUR_INDEX 增加 1。在步驟3318檢查水平文字片斷集合中是否還有其他文字片斷,如果有,進(jìn)入步驟 3313和后續(xù)處理;如果沒有,處理結(jié)束。圖7以水平文字片斷為例說明了相鄰文字片斷合并到文字行的過程。對垂直文字 片斷的處理和水平文字片斷處理類似。比如,在判斷相鄰的兩個垂直文字片斷是否合并時,相應(yīng)的步驟3314處理為,如果兩個垂直文字片斷在水平方向重疊,并且它們在垂直方向上 的距離小于給定門限,那么判斷此兩個垂直文字片斷合并,否則判斷為不合并。圖8示出了根據(jù)本發(fā)明一個實施例的水平文字行到文字部件合并流程。在該示例 性方法中,根據(jù)一頁中文字行的分布計算行間距門限;如果相鄰兩行之間在與文字行的方 向垂直的方向上的距離小于行間距門限,且該相鄰兩行之間在文字行的方向上重疊的長度 大于重疊門限,則合并該相鄰兩行。具體地,如圖8所示,在步驟3321,根據(jù)水平文字行集合中的文字行分布計算一個 行間距門限Ts。本實施例計算所有相鄰文字行之間的距離,并計算行間距的直方圖。在行間 距直方圖中,找出出現(xiàn)頻率最高的行間距,并把該 行間距的1.2被設(shè)為行間距門限。當(dāng)然, 本發(fā)明不限于此,例如,可以取行間距的平均值的預(yù)定倍數(shù)作為行間距門限,或者可以根據(jù) 經(jīng)驗設(shè)定行間距門限。在步驟3322,初始化行標(biāo)記或行索引LINE_INDEX為0,并設(shè)置當(dāng)前 行OTR_LINE為水平文字行集合中對應(yīng)行標(biāo)記LINE_INDEX的文字行。在步驟3323,設(shè)置下 一文字行NEXT_LINE為水平文字行集合中對應(yīng)行標(biāo)記LINE_INDEX+1的文字行。在步驟3324,比較當(dāng)前行⑶R_LINE和下一行NEXT_LINE之間的位置關(guān)系以決定是 否進(jìn)行合并。根據(jù)一個示例性實施例,如果相鄰兩行之間在與文字行的方向垂直的方向上 的距離小于行間距門限,且該相鄰兩行之間在文字行的方向上重疊的長度大于重疊門限, 則合并該相鄰兩行。具體地,在本實施例中,如果兩個水平文字行在水平方向上的重疊區(qū)域 大于0. 4* (兩行中較短文字行的寬度),并且他們之間的行間距小于行間距門限Ts,則判斷 兩個文字行合并,否則判斷兩個文字行不合并。當(dāng)然,重疊門限并不限于此,而是可以根據(jù) 需要進(jìn)行任意設(shè)置。如果在步驟3324判斷合并當(dāng)前行CUR_LINE和下一行NEXT_LINE,則繼續(xù)到步驟 3325。在步驟3325,合并這兩個文字行,并設(shè)置當(dāng)前行CUR_LINE為合并后的文字行,同時行 標(biāo)記LINE_INDEX增加1。這里,文字行的合并可以包括位置的合并以及對應(yīng)文字的連接,由 此在本發(fā)明最后得到文字部件時,也可以得到文字部件的位置信息。如果在步驟3324中,判斷兩個文字行不合并,流程進(jìn)入步驟3326,添加當(dāng)前文字 行CUR_LINE到水平文字部件集合。在步驟3327設(shè)置當(dāng)前行CUR_LINE為水平文字行中對 應(yīng)CUR_INDEX+1的文字行,同時數(shù)CUR_INDEX增加1。在步驟3328檢測水平文字行中是否還有未處理文字行,如果有,則進(jìn)入步驟3323 和后續(xù)處理;如果沒有,處理結(jié)束,水平文字部件集合中的文字部件為最終提取的水平文字 部件。圖8以水平文字行為例說明了合并文字行到文字片斷的過程。對于垂直文字行 的處理和上面所述對水平文字行的處理相似。比如,在判斷相鄰的兩個垂直文字行是否合 并時,相應(yīng)的步驟3324處理為,如果兩個垂直文字行在垂直方向上的重疊區(qū)域大于預(yù)定門 限,并且它們在水平方向上的行間距小于給定門限,那么判斷此兩個垂直文字行合并,否則 判斷為不合并。根據(jù)本發(fā)明的上述實施例,提取的文字部件并不僅僅提取文字內(nèi)容,而且還保留 了文字行和文字行之間的相對關(guān)系,如保留了文字行所包含的字?jǐn)?shù)。而這是現(xiàn)有技術(shù)的提 取詞匯和提取文本流所沒有實現(xiàn)的。此外,如以上參照各實施例所描述的,在各個階段中,均保持了對應(yīng)的位置信息。例如,在提取文字片斷階段,提取文字片斷的位置信息。在合并文字片斷到文字行的階段, 獲取文字行的位置信息;合并文字行到文字部件的階段,獲取文字部件的位置信息。文字部 件的位置信息對于后續(xù)應(yīng)用是非常重要的,比如當(dāng)在相關(guān)顯示裝置上顯示提取的文字部件 時,就可以容易地確定各個文字部件之間的排列關(guān)系;以及在文檔理解領(lǐng)域,還可以將提取 的文字部件的位置信息輔助用于文檔語義理解。本發(fā)明的方法流程圖各步驟以順序方式示出,但是各步驟執(zhí)行并不局限于順序執(zhí) 行,而是可以并行執(zhí)行。例如,在圖5中所示的提取文字相關(guān)命令和處理字體是順序執(zhí)行 的,但是二者可以并行執(zhí)行。另外,在本發(fā)明示例性實施例中,水平文字片斷和垂直文字片斷,以及水平文字行 和垂直文字行的處理是獨立進(jìn)行的。當(dāng)然,本發(fā)明不局限于此,可以把所有的文字片斷放在 一個文字片斷集合中,把所有的文字行放在一個文字行集合中,在后續(xù)進(jìn)行處理時再進(jìn)行 判斷。此外,在本發(fā)明上述示例性實施例中,采用了先提取出所有文字片斷,然后再對文 字片斷進(jìn)行統(tǒng)一處理,例如合并文字片斷的方法。當(dāng)然,本發(fā)明不局限于此,而是可以一邊 提取文字片斷,一邊對于所提取文字片斷是否需要合并,以及得到的文字行是否需要合并 進(jìn)行判斷以及相應(yīng)的合并處理。此外,本發(fā)明圖5在解析文檔提取文字相關(guān)命令和字體時,示出了逐頁處理文檔。 但是,本發(fā)明不限于此,當(dāng)然,也可以僅僅處理文檔的某一頁,或者某頁中的某部分。另外,還需要說明的是,本發(fā)明的實施例可以通過硬件、軟件、固件或它們的結(jié)合 的方式來實現(xiàn),其實現(xiàn)方式不對本發(fā)明的范圍構(gòu)成限制。圖11示出了用于實現(xiàn)本發(fā)明一個實施例的示例性計算機系統(tǒng)10。如圖11所示,一個從PDF文檔中提取文字部件的示例性計算機系統(tǒng)10包括計算 機主機11,鍵盤16,監(jiān)視器17,打印機18,軟盤驅(qū)動器19,網(wǎng)絡(luò)接入器20以及硬盤驅(qū)動器 21。計算機主機11包括數(shù)據(jù)總線12,隨機存儲器(RAM)13,只讀存儲器(R0M)14,中心處理 器(CPU) 15以及外設(shè)總線22。根據(jù)從隨機存儲器13中接到的指令,中心處理器15控制輸入數(shù)據(jù)的接收和處理, 以及把數(shù)據(jù)輸出到監(jiān)視器17或者其他外設(shè)。在本實施例中,中心處理器15的一個功能就 是處理輸入的PDF文檔,提取文檔中包含的文字部件。提取的文字部件信息可以被中心處 理器15中的的其他應(yīng)用程序使用。中心處理器15通過數(shù)據(jù)總線12來訪問隨機存儲器13和只讀存儲器14。隨機存 儲器13被中心處理器15用作一塊可讀寫的內(nèi)存,用來作為各個進(jìn)程的工作區(qū)以及可變數(shù) 據(jù)存儲區(qū)。只讀存儲器14存儲諸如PDF文件的可移植電子文檔,文字部件提取程序以及其 他的應(yīng)用提取的文字部件的程序。外設(shè)總線22用于訪問和計算機主機11相連的輸入,輸出以及存儲等外圍設(shè)備。在 本實施例中,這些外圍設(shè)備包括監(jiān)視器17,打印機18,軟盤驅(qū)動器19,網(wǎng)絡(luò)接入器20以及 硬盤驅(qū)動器21。監(jiān)視器17通過外設(shè)總線22來顯示中心處理器15輸出的數(shù)據(jù)和圖像。它 可以是柵格式顯示設(shè)備如CRT或者是IXD顯示器。打印機18把中心處理器輸入的數(shù)據(jù)和 圖像打印到紙張或者是和紙張相似的媒介。為了在如監(jiān)視器17或打印機18等輸出設(shè)備上 顯示PDF文檔,計算機系統(tǒng)10需要實現(xiàn)某個過程來進(jìn)行從PDF文檔到其對應(yīng)圖像表示的轉(zhuǎn)換。在其他的實施例中,如打印機18等輸出設(shè)備上也可以包括中心處理器或相似的處理器以實現(xiàn)類似的PDF文檔到圖像轉(zhuǎn)換模塊。軟盤驅(qū)動器19以及硬盤驅(qū)動器21用來存儲PDF 文檔。通過軟盤驅(qū)動器19,PDF文檔可以在不同計算機系統(tǒng)之間傳遞。硬盤驅(qū)動器21存儲 空間更大,而且訪問速度更快。其他的存儲設(shè)備,比如閃存,也可以用來存儲PDF文件供計 算機系統(tǒng)10訪問。計算機系統(tǒng)10通過網(wǎng)絡(luò)接入器20在網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)和接收來自其他 計算機系統(tǒng)的數(shù)據(jù)。用戶通過鍵盤16輸入指令給計算機系統(tǒng)10。
雖然上面已經(jīng)結(jié)合附圖示出并描述了本發(fā)明的一些實施例,但是本領(lǐng)域的技術(shù)人 員應(yīng)當(dāng)理解,在不偏離本發(fā)明的原則和精神的情況下,可以對這些實施例做出變化和改變, 所做的變化和改變?nèi)匀宦湓诒景l(fā)明及其等價物的保護范圍之內(nèi)。
權(quán)利要求
一個從可移植電子文檔中提取文字部件的裝置,包括文字命令和字體獲取單元,用于解析可移植電子文檔以獲取和文字相關(guān)的命令和字體;文字片斷提取單元,用于通過處理所述和文字相關(guān)的命令和字體來提取文字片斷以及文字片斷的位置;以及文字部件提取單元,用于根據(jù)提取的文字片斷和文字片斷的位置提取文字部件。
2.權(quán)利要求1的裝置,其中,所述文字部件提取單元還根據(jù)提取的文字片斷和文字片 斷的位置提取文字部件的位置信息。
3.權(quán)利要求1的裝置,所述文字部件提取單元包括 文字片斷合并單元,用于合并文字片斷到文字行; 文字行合并單元,用于合并文字行到文字部件。
4.根據(jù)權(quán)利要求1的裝置,其中,所述文字命令和字體獲取單元執(zhí)行下述步驟 解析可移植電子文檔格式,提取內(nèi)容流并解碼;解析解碼后的內(nèi)容流以提取和文字相關(guān)的命令。
5.根據(jù)權(quán)利要求4的裝置,其中,所述文字相關(guān)的命令包含文字定位命令,文字顯示命 令以及文字狀態(tài)命令。
6.根據(jù)權(quán)利要求1的裝置,其中,所述文字片斷提取單元執(zhí)行以下步驟 根據(jù)文字相關(guān)命令和字體計算文字片斷位置;根據(jù)文字片斷對應(yīng)字體對文字片斷解碼。
7.根據(jù)權(quán)利要求3的裝置,所述文字片斷合并單元執(zhí)行以下步驟 根據(jù)文字片斷的位置對文字片斷排序;通過比較相鄰文字片斷的位置關(guān)系合并文字片斷到文字行。
8.根據(jù)權(quán)利要求7的裝置,其中如果相鄰文字片斷在與文字行的方向垂直的方向上重 疊,并且該相鄰文字片斷在文字行方向上彼此之間的距離小于預(yù)定門限,則所述文字片斷 合并單元合并該相鄰文字片斷到文字行。
9.根據(jù)權(quán)利要求8的裝置,其中所述門限是根據(jù)待合并文字片斷對的尺寸信息計算的。
10.根據(jù)權(quán)利要求3的裝置,所述文字行合并單元執(zhí)行以下步驟 根據(jù)一頁中文字行的分布計算行間距門限值;如果相鄰兩行之間在與文字行的方向垂直的方向上的距離小于行間距門限,且該相鄰 兩行之間在文字行的方向上重疊的長度大于重疊門限,則合并該相鄰兩行。
11.根據(jù)權(quán)利要求3的裝置,其中,所述文字片斷包括水平文字片斷和垂直文字片斷, 所述文字行包括水平文字行和垂直文字行,以及其中文字片斷合并單元對于水平文字片斷 和垂直文字片斷的處理是獨立的,以及文字行合并單元對于水平文字行和垂直文字行的處 理是獨立的。
12.一個從可移植電子文檔中提取文字部件的方法,包含以下步驟 解析可移植電子文檔以獲取和文字相關(guān)的命令和字體;通過處理所述和文字相關(guān)的命令和字體來提取文字片斷的內(nèi)容以及文字片斷的位置;以及根據(jù)提取的文字片斷的內(nèi)容和文字片斷的位置提取文字部件。
13.權(quán)利要求12的方法,還包括根據(jù)提取的文字片斷和文字片斷的位置提取文字部 件的位置信息。
14.權(quán)利要求12的方法,所述提取文字部件的步驟包括合并文字片斷到文字行;合并文字行到文字部件。
15.根據(jù)權(quán)利要求12的方法,其中,所述解析可移植電子文檔的步驟中包含以下步驟解析可移植電子文檔格式,提取內(nèi)容流并解碼;解析解碼后的內(nèi)容流以提取和文字相關(guān)的命令。
16.根據(jù)權(quán)利要求15的方法,其中,所述文字相關(guān)的命令包含文字定位命令,文字顯示 命令以及文字狀態(tài)命令。
17.根據(jù)權(quán)利要求12的方法,其中,所述提取文字片斷以及文字片斷的位置的步驟中 包含以下步驟根據(jù)文字相關(guān)命令和字體計算文字片斷位置;根據(jù)文字片斷對應(yīng)字體對文字片斷解碼。
18.根據(jù)權(quán)利要求14的方法,所述合并文字片斷到文字行的步驟包含以下步驟根據(jù)文字片斷的位置對文字片斷排序;通過比較相鄰文字片斷的位置關(guān)系合并文字片斷到文字行。
19.根據(jù)權(quán)利要求18的方法,其中如果相鄰文字片斷在與文字行的方向垂直的方向上 重疊,并且該相鄰文字片斷在文字行方向上彼此之間的距離小于預(yù)定門限,則合并該相鄰 文字片斷到文字行。
20.根據(jù)權(quán)利要求19的方法,其中所述預(yù)定門限是根據(jù)待合并文字片斷對的尺寸信息 計算的。
21.根據(jù)權(quán)利要求14的方法,所述合并文字行到文字部件的步驟包含以下步驟根據(jù)一頁中文字行的分布計算行間距門限;如果相鄰兩行之間在與文字行的方向垂直的方向上的距離小于行間距門限,且該相鄰 兩行之間在文字行的方向上重疊的長度大于重疊門限,則合并該相鄰兩行。
22.根據(jù)權(quán)利要求14的方法,其中,所述文字片斷包括水平文字片斷和垂直文字片斷, 所述文字行包括水平文字行和垂直文字行,以及其中對于水平文字片斷和垂直文字片斷的 處理,以及對于水平文字行和垂直文字行的處理是獨立的。
全文摘要
提出了一種從可移植電子文檔中提取文字部件的裝置和方法。所述提取文字部件的裝置包括文字命令和字體獲取單元,用于解析可移植電子文檔以獲取和文字相關(guān)的命令和字體;文字片斷提取單元,用于通過處理所述和文字相關(guān)的命令和字體來提取文字片斷以及文字片斷的位置;以及文字部件提取單元,用于根據(jù)提取的文字片斷和文字片斷的位置提取文字部件。上述文字部件提取單元還可以根據(jù)提取的文字片斷和文字片斷的位置提取文字部件的位置信息。利用本發(fā)明的裝置和方法,可以自動地從可移植電子文檔中提取文字部件,以及進(jìn)一步地還可以提取文字部件的位置信息。
文檔編號G06F17/30GK101833544SQ20091012666
公開日2010年9月15日 申請日期2009年3月10日 優(yōu)先權(quán)日2009年3月10日
發(fā)明者井上浩一, 杜成, 長谷川史裕 申請人:株式會社理光