日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 三種方法提取pdf中的圖片

瀏覽:29日期:2022-06-28 09:42:37

有時我們需要將一份或者多份PDF文件中的圖片提取出來,如果采取在線的網站實現的話又擔心圖片泄漏,手動操作又覺得麻煩,其實用Python也可以輕松搞定!今天就跟大家系統分享幾種Python提取 PDF 圖片的方法。其實沒有非常完美的方法,每種方法提取效率都不是百分之百,因此可以考慮用多種方法進行互補,主要將涉及:

基于 fitz 庫和正則搜索提取圖片 基于 pdf2image 庫的兩種方法提取圖片 基于 fitz 庫和正則搜索

fitz 是 pymupdf 的子模塊,需要先用命令行安裝 pymupdf:

pip install pymupdf

但注意導入時使用 import fitz 導入模塊!

下面的代碼就利用 fitz 庫提取圖片需要通過正則匹配圖片元素,將模板元素轉化為像素后再以圖片形式寫出

import fitzimport reimport osfile_path = r’C:xxxxxx.pdf’ # PDF 文件路徑dir_path = r’C:xxx’ # 存放圖片的文件夾def pdf2image1(path, pic_path): checkIM = r'/Subtype(?= */Image)' pdf = fitz.open(path) lenXREF = pdf._getXrefLength() count = 1 for i in range(1, lenXREF): text = pdf._getXrefString(i) isImage = re.search(checkIM, text) if not isImage: continue pix = fitz.Pixmap(pdf, i) new_name = f'img_{count}.png' pix.writePNG(os.path.join(pic_path, new_name)) count += 1 pix = Nonepdf2image1(file_path, dir_path)

運行提取示例文件后結果如下:

python 三種方法提取pdf中的圖片

可以看到,有一些很小的色塊也被提取成圖片,那么怎么過濾掉它們呢?

有一個簡單的方法是通過大小過濾,pix 像素在 fitz 庫中存在一個重要的方法 pix.size 可以反映像素多少,簡單的色素塊該值較低,可以通過設置一個閾值過濾。以閾值 10000 為例過濾:

import fitzimport reimport osfile_path = r’C:xxxxxx.pdf’ # PDF 文件路徑dir_path = r’C:xxx’ # 存放圖片的文件夾def pdf2image1(path, pic_path): checkIM = r'/Subtype(?= */Image)' pdf = fitz.open(path) lenXREF = pdf._getXrefLength() count = 1 for i in range(1, lenXREF): text = pdf._getXrefString(i) isImage = re.search(checkIM, text) if not isImage: continue pix = 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 += 1 pix = Nonepdf2image1(file_path, dir_path)

python 三種方法提取pdf中的圖片

可以看到,全部圖片都被正常提取!

基于 pdf2image 庫的兩種方法

一看名字就知道這個庫的用處了,官方文檔為https://www.cnpython.com/pypi/pdf2image

可以簡單通過 pip install pdf2image 安裝,但poppler才是真正起做用的轉換器,因此需要額外安裝和配置:

windows用戶必須安裝poppler for Windows,然后將bin/文件夾添加到PATH Mac用戶必須安裝poppler for Mac

具體發揮作用的代碼官方文檔也給出了詳細的說明:

python 三種方法提取pdf中的圖片

那么我們就分別嘗試這兩種方法:

from pdf2image import convert_from_path,convert_from_bytesimport tempfilefrom pdf2image.exceptions import PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxErrorimport osfile_path = r’C:xxxxxx.pdf’ # PDF 文件路徑dir_path = r’C:xxx’ # 存放圖片的文件夾def pdf2image2(file_path, dir_path): images = convert_from_path(file_path, dpi=200) for image in images: if not os.path.exists(dir_path): os.makedirs(dir_path) image.save(file_path + f’img_{images.index(image)}.png’, ’PNG’)pdf2image2(file_path, dir_path)

可以成功提取圖片。再試試第二種方法:

from pdf2image import convert_from_path,convert_from_bytesimport tempfilefrom pdf2image.exceptions import PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxErrorimport osfile_path = r’C:xxxxxx.pdf’ # PDF 文件路徑dir_path = r’C:xxx’ # 存放圖片的文件夾def pdf2image3(file_path, dir_path): images = convert_from_bytes(open(file_path, ’rb’).read()) for image in images: if not os.path.exists(dir_path): os.makedirs(dir_path) image.save(file_path + f’img_{images.index(image)}.png’, ’PNG’)pdf2image3(file_path, dir_path)

python 三種方法提取pdf中的圖片

可以看到結果和之前一致,PDF中全部圖片都被提取出來!

再補充一下。核心方法covert_from_bytes包含大量參數,可以自行修改。幾個常用參數總結如下:

參數

意義

pdf_path

PDF 文檔路徑

dpi

圖像質量(如果是學術期刊雜志常見 300dpi)

output_folder

將生成的圖像寫入文件夾(而不是直接寫入內存)

first_page

起始轉換頁數

last_page

轉換至哪一頁

fmt

圖像格式,可以指定為 png,默認為 ppm

thread_count

允許參與轉換的線程數

userpw

PDF 的密碼

output_file

輸出文件名

poppler_path

指定 poppler 的安裝路徑,一開始配置好就無需指定

值得一提的是thread_count 參數,可以啟動多線程會大大加快轉換速度,尤其是 PDF 頁面較多時。有興趣的讀者可以做嘗試。

以上就是python 三種方法提取pdf中的圖片的詳細內容,更多關于python 提取pdf中的圖片的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
波多视频一区| 精品精品久久| 婷婷成人综合| 亚洲自啪免费| 少妇精品久久久一区二区| 亚洲深爱激情| 免播放器亚洲一区| 日韩不卡一区二区| 国产欧美一区二区精品久久久 | 91亚洲国产| 日韩欧美视频专区| 亚洲国产一区二区在线观看| 一级成人国产| 黄色网一区二区| 伊人影院久久| 色综合视频一区二区三区日韩| 91九色综合| 欧美精品日日操| 麻豆91精品| 三上亚洲一区二区| 伊人影院久久| 在线国产精品一区| 久久麻豆精品| 老牛国内精品亚洲成av人片 | 久久久久久久久丰满| 国产毛片久久| 日韩av一区二区在线影视| 久久精品福利| 丝袜亚洲另类欧美| 国产精品一区亚洲| 国产精品成人一区二区不卡| 99久久久国产精品美女| 亚洲综合色婷婷在线观看| 91综合视频| 青草综合视频| 影院欧美亚洲| 中文字幕在线高清| 日韩精品欧美大片| 亚洲一区网站| 欧美日韩精品一区二区视频| 国产日韩视频| 在线亚洲自拍| 久久久蜜桃一区二区人| 国产精品嫩草影院在线看| 亚洲午夜精品久久久久久app| 国产精品扒开腿做爽爽爽软件| 欧美日韩精品免费观看视完整| 国产精品自拍区| 97精品久久| 日本不卡一区二区| 亚洲综合小说| 热久久国产精品| 999精品一区| 亚洲性色av| 福利一区二区免费视频| 国产精品主播在线观看| 日本久久一区| 亚洲精品乱码日韩| 日韩欧美美女在线观看| 91久久久久| 中文字幕一区二区三区日韩精品| 99国产精品99久久久久久粉嫩| 亚洲黑丝一区二区| 久久久久欧美精品| 亚洲一区二区免费看| 日韩欧美一区二区三区免费看| 日本不卡免费高清视频在线| 国产不卡人人| 成人污污视频| 美女久久久久| 黄色欧美日韩| 欧美精品黄色| 亚洲第一区色| 精品午夜久久| 国产亚洲久久| 日韩午夜视频在线| 一区在线观看| 99久久亚洲精品| 日本蜜桃在线观看视频| 日韩亚洲一区在线| 久久国产免费| 欧美成人精品三级网站| 麻豆一区在线| 国产aⅴ精品一区二区三区久久| 精品一区二区三区中文字幕 | 中文精品电影| 亚洲欧美日韩精品一区二区| 亚洲手机视频| 丝袜诱惑制服诱惑色一区在线观看 | 日日夜夜免费精品视频| 亚洲成人一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲男女自偷自拍| 日韩高清三区| 久久激情一区| 在线看片日韩| 日韩精品国产精品| 另类欧美日韩国产在线| 国产私拍福利精品视频二区| 久久亚洲图片| 国产欧美高清| 亚洲欧洲美洲av| 久久激情五月婷婷| 日韩视频不卡| 精品一区在线| 久久精品99国产精品日本| 久久夜夜操妹子| 国产一区二区三区探花| 日韩一级网站| 久久精品国产网站| 欧美一区二区三区激情视频| 亚洲精品麻豆| 好看的亚洲午夜视频在线| 国产欧美在线| 午夜精品免费| 麻豆mv在线观看| 日韩国产在线不卡视频| 亚洲精品极品少妇16p| 精品三级国产| 综合精品一区| 综合色就爱涩涩涩综合婷婷| 女生影院久久| 一区二区不卡| 国产视频一区在线观看一区免费| 国产精品毛片久久久| 喷白浆一区二区| 亚洲一区二区三区中文字幕在线观看| 久久久久久网| 国产精品久久久久毛片大屁完整版| 国产偷自视频区视频一区二区| 97在线精品| 国产精品极品| 欧美精品1区| 奇米色欧美一区二区三区| 亚洲69av| 国产乱人伦精品一区| 老司机精品视频在线播放| 精品视频自拍| 98精品视频| 亚洲第一区色| 亚洲人成精品久久久| 热久久久久久| 国产成人精品一区二区免费看京 | 国产日韩欧美在线播放不卡| 久久国产免费看| 久久午夜影院| 99视频精品全国免费| 999在线观看精品免费不卡网站| 日韩影院免费视频| 奇米亚洲欧美| 欧美国产小视频| 狠狠操综合网| 日本亚洲视频在线| 国产成人免费视频网站视频社区| 亚洲人成在线网站| 99热精品在线观看| 久久国产人妖系列| 国产高清视频一区二区| 久久婷婷亚洲| 欧美日韩视频| 久久国内精品自在自线400部| 欧美aa一级| 日本99精品| 欧洲亚洲一区二区三区| 免费看黄色91| 日韩av片子| 日韩精品视频一区二区三区| 国产白浆在线免费观看| 在线免费观看亚洲| 国产精品三级| 亚洲永久精品唐人导航网址| 国产va在线视频| 亚洲精品裸体| 国产高清一区| 国产精品久久久久久久免费观看| 视频一区二区中文字幕| 青青青免费在线视频| 国产日韩精品视频一区二区三区| 自由日本语亚洲人高潮| 精品视频亚洲| 国产精品一区三区在线观看| 一区二区不卡| 最新国产精品视频| 亚洲一区免费| 在线视频精品| 国产精品7m凸凹视频分类| а√天堂8资源中文在线| 日本亚洲最大的色成网站www| 午夜在线视频观看日韩17c| 欧美.日韩.国产.一区.二区 | 国产精品字幕| 欧美黑人做爰爽爽爽| 国产亚洲电影| 国产精品中文| 老司机免费视频一区二区| 欧美成人一二区| 久久69成人| 日韩精品永久网址| 日韩精品一区二区三区免费观看| 久久久国产精品入口麻豆|