国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

工具分享 | PDF文檔解析工具PyMuPDF

這篇具有很好參考價值的文章主要介紹了工具分享 | PDF文檔解析工具PyMuPDF。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 需求描述

最近工作需要從PDF文檔中按照章節(jié)解析出對應的文本和圖片(后續(xù)可能還會有表格),經過調研,找到了一個功能強大的解析工具MuPDF,對應的Python包是PyMuPDF。本篇博客記錄使用它來實現(xiàn)具體功能。

官方文檔:https://pymupdf.readthedocs.io/en/latest/index.html

2 利用書簽中標題劃分章節(jié)

在PDF中,點擊書簽或者目錄頁中具體一個標題時,文檔頁面會跳轉到對應的章節(jié),“跳轉”的實現(xiàn)說明了其背后有一套機制(交叉引用),記錄了各級標題和正文頁面的對應關系。

PyMuPDF解析書簽中各層級標題的接口為Document.get_toc(),該接口可以返回書簽的層級、名稱、點擊它跳轉到的頁碼及具體到目標頁的哪個位置。

  • 接口介紹

    get_toc(simple=True/False)
    
    # 參數(shù)simple=True時,返回簡單版本的各級目錄,包括[標題層級, 標題名稱,跳轉到的頁碼],例如:
    [
    2,             // 第二級
    '旅行規(guī)劃',     // 名稱
    9,             // 對應正文的第9(該字段index從1開始)
    ]
    
    # 參數(shù)simple=False時,在跳轉到的頁碼基礎上,增加了'to'指向跳轉頁具體的坐標點(x, y)
    [2, '用戶手冊介紹 ', 9, 
    {'kind': 1, 'xref': 3112, 
    'page': 8, 'to': Point(43.937, 29.877015), 
    'zoom': 0.0, 'collapse': False
    }]
    
  • 詳細文檔

    工具分享 | PDF文檔解析工具PyMuPDF,Python,數(shù)據(jù)處理,python,pdf解析
    ?

利用對書簽的解析,獲取到了:
(1)文檔的層級關系: 包含多少第一級大標題、每個第一級標題下又有多少二級標題,以此類推可以獲取完整的文檔結構;
(2)每一級標題在正文中的頁面范圍,例如從第3頁(43,40)到第5頁的(253, 400)。

因此可以實現(xiàn)按照章節(jié)的拆分。

3 基于章節(jié)的文本解析

劃分章節(jié)后,每一章節(jié)在正文中的位置由:起始頁面、起始頁面的坐標、結束頁面、結束頁面坐標描述,例如,start_page = 5, (start_x = 43, start_y = 36),end_page = 8, (end_x = 134, end_y=238)。

  • 起始頁和結束頁只需要解析該章節(jié)范圍內的文字,選擇使用Page.get_textbox()方法獲取矩形框rect范圍內的文字:

    工具分享 | PDF文檔解析工具PyMuPDF,Python,數(shù)據(jù)處理,python,pdf解析
    ?
    工具分享 | PDF文檔解析工具PyMuPDF,Python,數(shù)據(jù)處理,python,pdf解析
    ?
  • 中間頁需要在獲取頁面全部范圍內的文字后,過濾頁眉和頁腳。因此選擇使用Page.get_text(“blocks”)方法按塊獲取該頁內所有段落的坐標、文字內容及類型(文本、圖片),然后根據(jù)坐標過濾掉頁眉、頁碼等不需要的文字內容。

    工具分享 | PDF文檔解析工具PyMuPDF,Python,數(shù)據(jù)處理,python,pdf解析
    ?
  • 文本亂序問題:作者插入順序可能不是按照閱讀順序,導致解析出來的文字出現(xiàn)了亂序,例如第5行的文字解析出來之后在第10行文字的后面;解決亂序問題主要是通過設置參數(shù)sort=True(默認為False),將解析的文本按照坐標排序,來獲得按照自然閱讀順序的文本。

  • 單雙列布局問題:雙列布局的頁面,根據(jù)頁碼的坐標來區(qū)分是左側還是右側。

4 掃描PDF解析

圖片掃描成的PDF并不是按照PDF標準形成的文檔,沒有包含文本信息,按照 3 中的方法獲取的文本是空的。

其中一種解決方法是使用OCR獲取圖片中的文本:

(1)OCR的工具有多種,如PyMuPDF文檔提及的OCRMyPDF(免費)。選擇OCRMyPDF的話需要配置依賴的兩個軟件:tesseract和gs,并且由于OCRMyPDF默認的文字識別模型支持英文,在中文情況下需下載對應的中文識別模型。



工具分享 | PDF文檔解析工具PyMuPDF,Python,數(shù)據(jù)處理,python,pdf解析




?

(2)OCR獲取文字會存在識別錯誤的情況,要考慮識別錯誤對后續(xù)處理是否會造成影響。

5 基于章節(jié)的圖片解析

  • 使用Page.get_image_info(hashes=False, xrefs=False)接口獲取圖片的元信息,包括圖片的原始寬高、嵌入到pdf后的bbox以及交叉引用的序號xref;獲取元信息主要是為了使用位置信息來判斷圖片屬于哪個章節(jié);

    工具分享 | PDF文檔解析工具PyMuPDF,Python,數(shù)據(jù)處理,python,pdf解析
    ?
  • 然后使用Document.extract_image(xref)根據(jù)元信息中的xref獲取存儲的圖片信息并保存;文章來源地址http://www.zghlxwxcb.cn/news/detail-680495.html

    工具分享 | PDF文檔解析工具PyMuPDF,Python,數(shù)據(jù)處理,python,pdf解析
    ?

6 小結

  • 最近解析文檔最大收獲在于:要明確自己的需求,根據(jù)需求去選擇工具;PyMuPDF提供的接口功能很強大,面對布局多樣的文檔,不要急于動手,可以多查閱官方文檔尋找更合適的接口,在此基礎上設計方案。
  • 分享發(fā)現(xiàn)的寶藏博客,博主的系列文章記錄了使用PyMuPDF將pdf文檔轉為word的過程。

到了這里,關于工具分享 | PDF文檔解析工具PyMuPDF的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【Python】好用的辦公能手:利用OCR進行PDF文檔解析(附教程)

    【Python】好用的辦公能手:利用OCR進行PDF文檔解析(附教程)

    OCR (Optical Character Recognition,光學字符識別)是通過計算機視覺對圖像中的文本進行檢測和提取的過程。它是在第一次世界大戰(zhàn)期間發(fā)明的,當時以色列科學家伊曼紐爾·戈德堡(Emanuel Goldberg)發(fā)明了一臺能讀取字符并將其轉換為電報代碼的機器。到了現(xiàn)在該領域已經達到了一個非

    2024年02月15日
    瀏覽(17)
  • Java【代碼 16】將word、excel文件轉換為pdf格式和將pdf文檔轉換為image格式工具類分享(Gitee源碼)aspose轉換中文亂碼問題處理

    感謝小伙伴兒的分享: ● 不羈 ● 郭中天 整合調整后的工具類Gitee地址:https://gitee.com/yuanzhengme/java_application_aspose_demo ● WordToPdfUtil用于將word文檔轉換為pdf格式的工具類 ● ExcelToPdfUtil用于將excel文檔轉換為pdf格式的工具類 ● PdfToImageUtil用于將pdf文檔轉換為image格式的工具類

    2024年01月24日
    瀏覽(33)
  • python之pdfminer:從PDF文檔中抽取信息的工具

    pdfminer是一個用于從PDF文檔中抽取信息的Python庫。它提供了一系列的功能,使我們能夠讀取和解析PDF文件,并從中提取文本內容、元數(shù)據(jù)、頁面布局和圖片等。本文將詳細介紹pdfminer庫的使用示例,包括安裝、解析文檔、提取文本和圖片等操作。 首先,我們需要安裝pdfminer庫。

    2024年02月11日
    瀏覽(16)
  • 使用PyMuPDF添加PDF水印

    使用PyMuPDF添加PDF水印

    使用Python添加PDF水印的博客文章。 C:pythoncodenewpdfwatermark.py 在日常工作中,我們經常需要對PDF文件進行處理。其中一項常見的需求是向PDF文件添加水印,以保護文件的版權或標識文件的來源。本文將介紹如何使用Python編程語言和PyMuPDF庫在PDF文件中添加水印。 在開始之前,確

    2024年02月11日
    瀏覽(43)
  • PyMuPDF`庫實現(xiàn)PDF旋轉功能

    PyMuPDF`庫實現(xiàn)PDF旋轉功能

    本文介紹了一個簡單的Python應用程序,用于將PDF文件轉換為旋轉90度的PDF文件。主要用于csdn網站中導出的博客pdf是橫向的,看起來不是很方便,才想到用python編制一個將pdf從橫向轉為縱向的功能。 該PDF轉換工具具有以下功能: 選擇PDF文件:通過點擊“選擇文件”按鈕,用戶

    2024年02月12日
    瀏覽(14)
  • ????Java開發(fā)者的Python快速實戰(zhàn)指南:實用工具之PDF轉DOCX文檔(可視化界面)

    ????Java開發(fā)者的Python快速實戰(zhàn)指南:實用工具之PDF轉DOCX文檔(可視化界面)

    首先,大家對Python語法的了解已經基本完成,現(xiàn)在我們需要開始進行各種練習。我為大家準備了一些練習題目,比如之前的向量數(shù)據(jù)庫等,這些題目可以參考第三方的SDK來進行操作,文檔也是比較完善的。這個過程有點像我們之前使用Java對接第三方接口的方式,所以今天我想

    2024年02月05日
    瀏覽(27)
  • Java開發(fā)者的Python快速實戰(zhàn)指南:實用工具之PDF轉DOCX文檔(可視化界面)

    Java開發(fā)者的Python快速實戰(zhàn)指南:實用工具之PDF轉DOCX文檔(可視化界面)

    首先,大家對Python語法的了解已經基本完成,現(xiàn)在我們需要開始進行各種練習。我為大家準備了一些練習題目,比如之前的向量數(shù)據(jù)庫等,這些題目可以參考第三方的SDK來進行操作,文檔也是比較完善的。這個過程有點像我們之前使用Java對接第三方接口的方式,所以今天我想

    2024年02月05日
    瀏覽(24)
  • SpringBoot與文檔excel,pdf集成案例分享

    Excel一款電子表格軟件。直觀的界面、出色的計算功能和圖表工具,在系統(tǒng)開發(fā)中,經常用來把數(shù)據(jù)轉存到Excel文件,或者Excel數(shù)據(jù)導入系統(tǒng)中,這就涉及數(shù)據(jù)轉換問題。 PDF是可移植文檔格式,是一種電子文件格式,具有許多其他電子文檔格式無法相比的優(yōu)點。PDF文件格式可以

    2024年02月16日
    瀏覽(18)
  • Word怎么轉換成PDF文檔?多個Word轉換成PDF步驟分享

    Word怎么轉換成PDF文檔?多個Word轉換成PDF步驟分享

    word文檔是一種非常好用的文件格式,可以幫助用戶們很好的保存圖片和文字內容,不過并不是只有word這一種文檔類文件格式,還有一種pdf文檔也深受用戶們的歡迎,在工作或者學習過程中這兩種文檔是可以互相轉換格式的,那么Word怎么轉換成PDF文檔?下面小編就為大家介紹一

    2024年02月12日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包