【python】提取pdf文件中的所有圖片


寫在前面

一個pdf文件中有很多頁,每頁有若干張圖片,如何將pdf文件中的所有圖片提取出來?

安裝模塊

pip install pymupdf

示例代碼

import fitz


def func(doc):
    for i in range(len(doc)):
        imglist = doc.getPageImageList(i)
        for j, img in enumerate(imglist):
            xref = img[0]
            pix = fitz.Pixmap(doc, xref)   # make pixmap from image
            if pix.n - pix.alpha < 4:      # can be saved as PNG
                pix.writePNG("p%s-%s.png" % (i+1, j+1))
            else:                          # CMYK: must convert first
                pix0 = fitz.Pixmap(fitz.csRGB, pix)
                pix0.writePNG("p%s-%s.png" % (i+1, j+1))
                pix0 = None                # free Pixmap resources
            pix = None                     # free Pixmap resources


if __name__ == "__main__":
    func(doc=fitz.open('xxx.pdf'))         # input the path of pdf file

參數說明

func(doc=fitz.open('xxx.pdf'))xxx.pdf更改為你的pdf文件所在的路徑即可。

pix.writePNG()中設置提取的圖片的保存路徑

業務邏輯

代碼邏輯很簡單:對pdf文件進行for循環,遍歷每一頁;然后對每一頁進行for循環,遍歷每一頁中的圖片。

引用參考

https://pymupdf.readthedocs.io/en/latest/document.html#other-examples


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM