亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > python 三種方法提取pdf中的圖片

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

熱門標簽:申請辦個400電話號碼 400電話辦理費用收費 外呼系統(tǒng)前面有錄音播放嗎 鎮(zhèn)江人工外呼系統(tǒng)供應(yīng)商 高德地圖標注字母 騰訊地圖標注有什么版本 千呼ai電話機器人免費 柳州正規(guī)電銷機器人收費 深圳網(wǎng)絡(luò)外呼系統(tǒng)代理商

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

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

基于 fitz 庫和正則搜索

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

pip install pymupdf

但注意導(dǎo)入時使用 import fitz 導(dǎo)入模塊!

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

import fitz
import re
import os

file_path = r'C:\xxx\xxx.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 = None

pdf2image1(file_path, dir_path)

運行提取示例文件后結(jié)果如下:

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

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

import fitz
import re
import os

file_path = r'C:\xxx\xxx.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: # 在這里添加一處判斷一個循環(huán)
      continue # 不符合閾值則跳過至下
    new_name = f"img_{count}.png"
    pix.writePNG(os.path.join(pic_path, new_name))
    count += 1
    pix = None

pdf2image1(file_path, dir_path)

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

基于 pdf2image 庫的兩種方法

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

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

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

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

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

from pdf2image import convert_from_path,convert_from_bytes
import tempfile
from pdf2image.exceptions import PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
import os

file_path = r'C:\xxx\xxx.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_bytes
import tempfile
from pdf2image.exceptions import PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
import os

file_path = r'C:\xxx\xxx.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)

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

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

參數(shù)

意義

pdf_path

PDF 文檔路徑

dpi

圖像質(zhì)量(如果是學(xué)術(shù)期刊雜志常見 300dpi)

output_folder

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

first_page

起始轉(zhuǎn)換頁數(shù)

last_page

轉(zhuǎn)換至哪一頁

fmt

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

thread_count

允許參與轉(zhuǎn)換的線程數(shù)

userpw

PDF 的密碼

output_file

輸出文件名

poppler_path

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

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

以上就是python 三種方法提取pdf中的圖片的詳細內(nèi)容,更多關(guān)于python 提取pdf中的圖片的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python解析PDF程序代碼
  • python實現(xiàn)csdn全部博文下載并轉(zhuǎn)PDF
  • Python合并多張圖片成PDF
  • Python提取PDF指定內(nèi)容并生成新文件
  • 詳解用Python把PDF轉(zhuǎn)為Word方法總結(jié)
  • python操作mysql、excel、pdf的示例
  • python pdfkit 中文亂碼問題的解決方案
  • Python實現(xiàn)給PDF添加水印的方法
  • Python讀取pdf表格寫入excel的方法
  • Python 多張圖片合并成一個pdf的參考示例

標簽:平頂山 海南 大慶 烏蘭察布 郴州 烏蘭察布 合肥 哈爾濱

巨人網(wǎng)絡(luò)通訊聲明:本文標題《python 三種方法提取pdf中的圖片》,本文關(guān)鍵詞  python,三種,方法,提取,pdf,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python 三種方法提取pdf中的圖片》相關(guān)的同類信息!
  • 本頁收集關(guān)于python 三種方法提取pdf中的圖片的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    99热视热频这里只有精品| 99久久精品国产高清一区二区| 国产伦精品一区三区视频| 久久国产一久久高清| 九九久久国产精品大片| 久久精品免视看国产明星 | 欧美日本免费| 高清一级做a爱过程不卡视频| 欧美激情一区二区三区视频 | 麻豆污视频| 国产一区二区精品久| 欧美α片无限看在线观看免费| 黄色免费三级| a级毛片免费观看网站| 色综合久久天天综合观看| 免费一级片在线| 国产一区免费观看| 国产激情一区二区三区| 九九九在线视频| 国产成人欧美一区二区三区的| 午夜在线影院| 欧美激情伊人| 国产一区二区精品久久91| 九九热国产视频| 国产不卡在线看| 香蕉视频亚洲一级| 99久久精品国产高清一区二区| 精品在线免费播放| 欧美另类videosbestsex视频 | 亚洲第一视频在线播放| a级精品九九九大片免费看| 精品国产一区二区三区久久久蜜臀 | 日韩av成人| 亚洲精品中文一区不卡| 久久福利影视| 高清一级毛片一本到免费观看| 可以免费看毛片的网站| 中文字幕一区二区三区 精品| 九九精品影院| 免费一级片网站| 91麻豆国产福利精品| 日韩免费在线| 国产一区二区精品久久91| 色综合久久久久综合体桃花网| 日韩在线观看免费| 一级女性大黄生活片免费| 久久国产精品自由自在| 亚洲 国产精品 日韩| 国产精品自拍一区| 毛片高清| 麻豆污视频| 亚洲天堂在线播放| 久久国产影院| 国产a一级| 国产麻豆精品高清在线播放| 九九热精品免费观看| 色综合久久手机在线| 精品在线免费播放| 欧美激情一区二区三区视频高清| 国产网站在线| 美国一区二区三区| 亚洲第一页乱| 日本特黄特黄aaaaa大片| 国产一区二区福利久久| 日韩在线观看视频黄| 欧美另类videosbestsex| 国产伦精品一区三区视频| 黄视频网站在线免费观看| 国产精品免费久久| 亚洲 激情| 欧美大片aaaa一级毛片| 中文字幕97| 亚飞与亚基在线观看| 欧美一级视频免费观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日本伦理片网站| 国产麻豆精品视频| 欧美a级片视频| 天天做日日爱夜夜爽| 久久国产一久久高清| 欧美a级片免费看| 亚洲精品久久久中文字| 99色视频| 精品国产三级a| 亚州视频一区二区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产网站免费在线观看| 亚洲精品中文字幕久久久久久| 久久国产精品只做精品| 国产国语在线播放视频| 日本伦理黄色大片在线观看网站| 欧美a级v片不卡在线观看| 久久成人综合网| 四虎久久精品国产| 国产91丝袜高跟系列| 中文字幕97| 999精品在线| 美女免费精品高清毛片在线视| 美女免费精品视频在线观看| 麻豆午夜视频| 国产a毛片| 亚洲精品久久久中文字| 免费一级生活片| 亚洲精品永久一区| 亚洲 国产精品 日韩| 久草免费在线观看| 国产伦精品一区二区三区无广告 | 国产麻豆精品hdvideoss| 免费国产在线视频| 亚洲精品久久玖玖玖玖| 在线观看导航| 精品国产一区二区三区久久久蜜臀 | 精品在线观看一区| 国产国语在线播放视频| 国产伦精品一区二区三区无广告| 国产精品免费久久| 国产亚洲精品aaa大片| 成人高清视频免费观看| 精品毛片视频| 国产成人精品综合| 国产不卡在线播放| 国产网站在线| 99色视频在线| 精品视频免费在线| 中文字幕一区二区三区精彩视频| 亚洲精品中文一区不卡| 国产一区二区精品久久| a级精品九九九大片免费看| 亚欧乱色一区二区三区| 成人免费观看网欧美片| 国产激情一区二区三区| 国产美女在线观看| 久久国产精品永久免费网站| 国产一区二区精品| 精品视频一区二区| 91麻豆精品国产片在线观看| 欧美国产日韩在线| 天天色成人| 国产欧美精品| 成人高清免费| 成人免费网站视频ww| 一级女性大黄生活片免费| 91麻豆精品国产自产在线观看一区 | 成人免费网站久久久| 99色视频| 国产视频久久久久| 国产成人精品综合在线| 精品视频在线观看免费 | 黄色福利片| 成人在激情在线视频| 精品视频一区二区| 亚洲精品永久一区| 成人免费福利片在线观看| 麻豆网站在线看| 日韩在线观看网站| 九九免费高清在线观看视频| 四虎久久精品国产| 91麻豆精品国产自产在线| 精品国产亚一区二区三区| 久久99中文字幕久久| 四虎影视久久久免费| 日本在线www| 精品在线免费播放| 精品国产一区二区三区久久久狼| 韩国毛片 免费| 精品久久久久久中文字幕一区| 99热热久久| 国产原创中文字幕| 午夜欧美成人香蕉剧场| 99久久精品国产免费| 久草免费在线视频| 一a一级片| 国产一区精品| 国产一区二区高清视频| 999久久久免费精品国产牛牛| 四虎影视久久久免费| 精品在线观看一区| 成人在激情在线视频| 日本特黄一级| 久久精品欧美一区二区| 欧美电影免费看大全| 国产一区二区精品| 精品久久久久久中文| 久久99爰这里有精品国产| 999久久久免费精品国产牛牛| 日本乱中文字幕系列| 九九免费高清在线观看视频| a级精品九九九大片免费看| 青青久热| 国产一区二区精品| 日韩中文字幕在线播放| 午夜在线亚洲男人午在线| 欧美a级v片不卡在线观看| 亚飞与亚基在线观看| 日日爽天天| 国产视频在线免费观看| 日韩avdvd| 欧美日本免费| 久久久成人网| 国产韩国精品一区二区三区|