python 读取pdf 将每页转成jpg

需要安装fitz

pip install PyMuPDF

这里我发现了问题,默认安装最新版本1.21.x 但是不支持大部分网上的api 所以分开两部分

1.21.x的

import fitz  # PyMuPDF
from PIL import Image

def extract_images_from_tiff(tiff_path, output_folder):
    # 打开 TIFF 文件
    pdf_document = fitz.open(tiff_path)

    # 遍历每个页面
    for page_number in range(pdf_document.page_count):
        # 获取页面
        page = pdf_document[page_number]

        # 获取像素图
        pixmap = page.get_pixmap()

        # 将像素图数据转为 PIL Image 对象
        pil_image = Image.frombytes("RGB", (pixmap.width, pixmap.height), pixmap.samples)

        # 保存为 JPG 格式
        jpg_file_path = f"{output_folder}/page_{page_number + 1}.jpg"
        pil_image.save(jpg_file_path, "JPEG")

    # 关闭 PDF 文件
    pdf_document.close()

# 示例用法
tiff_file_path = "./data/ISC-1226/02-121665-PB.tif"
output_folder_path = "./tif_output"
extract_images_from_tiff(tiff_file_path, output_folder_path)

1.18.0的代码


import os

import fitz  #pip install PyMuPDF


def pyMuPDF_fitz(pdfPath, imagePath):

    pdfDoc = fitz.open(pdfPath)
    for pg in range(pdfDoc.pageCount):
        page = pdfDoc[pg]
        rotate = int(0)
        # 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。
        # 此处若是不做设置,默认图片大小为:792X612, dpi=96
        zoom_x = 1.33333333  # (1.33333333-->1056x816)   (2-->1584x1224)
        zoom_y = 1.33333333
        mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
        pix = page.getPixmap(matrix=mat, alpha=False)

        if not os.path.exists(imagePath):  # 判断存放图片的文件夹是否存在
            os.makedirs(imagePath)  # 若图片文件夹不存在就创建

        pix.writePNG(imagePath + '/' + 'images_%s.png' % pg)  # 将图片写入指定的文件夹内

    print('pdf2img时间=', (endTime_pdf2img - startTime_pdf2img).seconds)


if __name__ == "__main__":
    # 1、PDF地址
    pdfPath = r"E:\Git\ImageOcr\data\kana\pdf\20240211450000.pdf"

    # 2、需要储存图片的目录
    imagePath = './data/kana/img/20240211450000'
    pyMuPDF_fitz(pdfPath, imagePath)

总结,建议使用1.18的版本,可以更改dpi,1.20以上的版本 我没研究api改成啥了

相关推荐

  1. python 读取pdf jpg

    2024-03-15 13:18:03       45 阅读
  2. Python 读取电子发票PDF Excel

    2024-03-15 13:18:03       57 阅读
  3. python把pngjpg

    2024-03-15 13:18:03       27 阅读
  4. python图片pdfpdf图片jpg

    2024-03-15 13:18:03       29 阅读
  5. pythonExcel的一个sheet生成PDF文件

    2024-03-15 13:18:03       56 阅读
  6. Asposedoc,pptpdf

    2024-03-15 13:18:03       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-15 13:18:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-15 13:18:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-15 13:18:03       82 阅读
  4. Python语言-面向对象

    2024-03-15 13:18:03       91 阅读

热门阅读

  1. C#使用Entity Framework Core处理数据库(一)

    2024-03-15 13:18:03       41 阅读
  2. 【趣味学算法】07_爱因斯坦的数学题

    2024-03-15 13:18:03       39 阅读
  3. C++ 纯虚函数定义语法,及作用

    2024-03-15 13:18:03       43 阅读
  4. 【设计模式】常见设计模式

    2024-03-15 13:18:03       34 阅读
  5. 【笔记】学习Android.mk(三)

    2024-03-15 13:18:03       38 阅读
  6. js手写实现 Promise.all

    2024-03-15 13:18:03       46 阅读