日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python成功将PDF文件转为图片,一次成功,不再踩坑!

發布時間:2024/1/18 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python成功将PDF文件转为图片,一次成功,不再踩坑! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網上有很多方法,但是包括PDF2image庫、PyMupdf庫等。

在摸索過程中我發現pdf的解析可以分為兩種:
1、標準的PDF文件
表現在字體清晰、無畸變。這類PDF文件是通過word等格式編輯好轉換的,可以通過某些包直接提取其中的表格、文字等。是一種比較好處理的。
2、非標準的PDF文件
表現在字體模糊、存在畸變。我懷疑這類PDF是通過圖片轉換得到的。它和標準PDF文件長得很像,但如果你要提取其中的信息,通過解析PDF文本會得到一片空白!!因為它本質屬于PDF一張圖片,因此需要通過提取PDF中圖片的方式,而不是提取文本或表格。

今天主要解決pymupdf庫的問題。在pymupdf這個庫上我參考了很多人的代碼,但是無論如何都顯示缺少文件。

其實很很可能是pymupdf版本不同。
通常使用pip install pymupdf會下載最新的版本,我當前默認下載的版本是1.20.0。
import fitz后
運行會報錯。

我這里使用

pip install pymupdf==1.18.17 -i https://pypi.tuna.tsinghua.edu.cn/simple

下載1.18.17版本的pymupdf,使用python3.8
運行如下代碼

import fitz import re import osfile_path = r'pdf/yourpdf.pdf' # PDF 文件路徑 dir_path = r'imgs' # 存放圖片的文件夾 def pdf2image1(path, pic_path):checkIM = r"/Subtype(?= */Image)" # 正則表達式pdf = fitz.open(path)lenXREF = pdf.xref_length() # 最新fitz庫是沒有._getXrefLength()count = 1for i in range(1, lenXREF):text = pdf.xref_object(i)# 最新fitz庫是沒有.getObjectString()isImage = re.search(checkIM, text)if not isImage:continuepix = fitz.Pixmap(pdf, i)if pix.size < 10000: # 在這里添加一處判斷一個循環continue # 不符合閾值則跳過至下new_name = f"img_{count}.png"pix.writePNG(os.path.join(pic_path, new_name))count += 1pix = Nonepdf2image1(file_path, dir_path)

可以正常提取pdf中的圖片

總結

以上是生活随笔為你收集整理的python成功将PDF文件转为图片,一次成功,不再踩坑!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。