精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Python—PDF文本與圖片抽取

PDF是人們日常使用最多的跨平臺文檔。其是一種用獨立于應用程序、硬件、操作系統的方式呈現文檔的文件格式。每個PDF文件包含固定布局的平面文檔的完整描述,包括文本、字形、圖形及其他需要顯示的信息。因此,具有良好的跨平臺特性,但同時,也為抽取其內容帶來了不便。

PDF最初版本于1993發行,最新版本為2.0。

今天,我們使得Python來抽取PDF文檔中的文本與圖片。

文本抽取

PDF文本抽取相對容易,效果最好的是pdfminer(https://github.com/euske/pdfminer)。基本能抽取出所有文本。

pdfminer是開源的純Python編寫,支持最新至PDF 1.7版本。

pdfminer的使用比較簡單

安裝:

pip install pdfminer

使用:

python pdf2txt.py -o <抽取保存的文本文件名> -t text -O <源pdf文件>

如上就實現了文本抽取,抽取的是純文本,無格式、字體等信息。

原文

抽取出的文本

pdfminer有個麻煩的地方,對于CJK編碼的PDF文檔,需要手動安裝也能正常抽取文字。

圖片抽取

PDF圖片抽取是個比較難的問題,目前Python可以調用的比較好的庫是PyMuPDF(https://github.com/pymupdf/PyMuPDF)。PyPDF2(https://github.com/mstamy2/PyPDF2)庫也可以實現部分功能,但已于2018年停止更新。

這些庫的問題是,無法抽取出所有的圖片,同時,抽取出的圖片問題不一。

這里以 https://arxiv.org/pdf/1703.10135.pdf 文件為例。

使用PyMuPDF 代碼如下:

import fitz # PyMuPDFdef get_pixmaps_in_pdf(pdf_filename): doc = fitz.open(pdf_filename) xrefs = set() for page_index in range(doc.pageCount): for image in doc.getPageImageList(page_index): xrefs.add(image[0]) # Add XREFs to set so duplicates are ignored pixmaps = [fitz.Pixmap(doc, xref) for xref in xrefs] doc.close() return pixmapsdef write_pixmaps_to_pngs(pixmaps): for i, pixmap in enumerate(pixmaps): pixmap.writePNG(f'{i}.png') # Might want to come up with a better namepixmaps = get_pixmaps_in_pdf('Wang_et_al_2017_Tacotron.pdf')write_pixmaps_to_pngs(pixmaps)

抽取效果如下。整篇PDF文檔,只抽取出如下的幾個圖片。

比如,第二頁的圖片就無法抽取出來。

理想狀態下,第6頁的圖片與示例應該合并一成一張圖抽取出來,但實際上是分開抽取。

好的。Python抽取PDF文字與圖片的介紹就到這里。

大家有更好的圖片抽取工具或方法,歡迎留言貢獻,謝謝

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用Python操作PDF:常用PDF庫總結
如何利用python將pdf文件轉化為txt文件?
3個Python PDF庫,提取信息、轉換格式、分割剪裁有它就夠了!
Python 辦公自動化之 PDF 最強操作手冊
python讀取pdf和docx
Python讀取PDF內容
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 栖霞市| 东阿县| 千阳县| 米林县| 万安县| 井陉县| 桃江县| 尖扎县| 定州市| 永新县| 比如县| 乌海市| 贵溪市| 东阿县| 宾阳县| 抚远县| 海晏县| 涞水县| 丹东市| 东海县| 栾川县| 随州市| 威信县| 苗栗县| 五家渠市| 清水河县| 米泉市| 卓尼县| 砚山县| 华宁县| 谢通门县| 博罗县| 阿拉善右旗| 通海县| 茌平县| 锡林郭勒盟| 稷山县| 辉南县| 温宿县| 资源县| 通辽市|