Python pdf转image

2 篇文章 0 订阅
2 篇文章 0 订阅
一、背景

        wps需要会员才能将pdf转成图片,对于白嫖党来说是多不友好啊!网上扒拉了一下有实现的代码和方法,但是copy后都是各种运行报错,作者通过整理调试总结出此文章,希望对各位白嫖党有帮助。

二、准备

        wind11,python3.12

        poppler

        下载地址:https://github.com/oschwartz10612/poppler-windows/releases/

        poppler后解压,放在项目resource文件下否则到处放找的时候麻烦

        pip install pdf2image

三、项目结构

四、代码
#!/usr/bin/env python
# coding=utf-8

"""
@file: pdf2images.py
@Author: zhangshaohua
@date: 2024/7/11 17:48
@desc: pdf转图片
"""

import os
import pdf2image

def pdf_to_images(pdf_folder, images_folder):
    # 检查PDF文件是否存在
    if not os.path.exists(pdf_folder):
        print(f"错误:文件 {pdf_folder} 不存在。")
        return

    # 检查目标文件夹是否存在,如果不存在则创建
    if not os.path.exists(images_folder):
        os.makedirs(images_folder)

    # 遍历PDF文件夹中的每个文件
    for pdf_file in os.listdir(pdf_folder):
        if pdf_file.endswith('.pdf'):
            # 完整的PDF文件路径
            full_pdf_path = os.path.join(pdf_folder, pdf_file)
            # 生成对应的图像文件夹路径
            image_subfolder = os.path.join(images_folder, os.path.splitext(pdf_file)[0])
            # 检查图像文件夹是否存在,如果不存在则创建
            if not os.path.exists(image_subfolder):
                os.makedirs(image_subfolder)

            # 使用pdf2image将PDF转换为图像
            images = pdf2image.convert_from_path(full_pdf_path,poppler_path=r'resource/poppler-24.02.0/Library/bin')


            # 保存图像
            for i, image in enumerate(images):
                image_filename = f"page_{i + 1}.png"
                image_path = os.path.join(image_subfolder, image_filename)
                image.save(image_path)

            print(f"PDF文件 {pdf_file} 已成功转换为图像,并保存在 {image_subfolder} 文件夹中。")
        else:
            print(f"跳过非PDF文件:{pdf_file}")


pdf_folder = 'pdfs'
images_folder = 'images'
pdf_to_images(pdf_folder, images_folder)

pdf_folder: pdf文件存放路径,需要手动创建并存放pdf文件,如果没有pdf文件则报错,支持多个pdf文件转换速度取决于pdf文件大小

images_folder:图片保存的路径,如果不存在会自动创建

poppler_path: poppler存放路径,一定要指定否则报错

五、效果

Pythonpdf2image库是一个用于将PDF文件换为图像文件的工具。它基于Poppler工具库,可以将PDF文件中的每个页面换为一个单独的图像文件,支持换为多种图像格式,如JPEG、PNG等。 使用pdf2image库非常简单。首先,需要确保已经安装了Poppler工具库。然后,在Python中安装pdf2image库,可以使用pip命令进行安装。 安装完成后,就可以开始使用pdf2image库了。首先,需要导入相关的模块: ``` from pdf2image import convert_from_path, convert_from_bytes ``` PDF文件为图像文件有两个主要的方法:`convert_from_path`和`convert_from_bytes`。`convert_from_path`方法可以从文件路径中读取PDF文件并将其换为图像文件。示例如下: ``` images = convert_from_path('path/to/pdf/file.pdf') ``` `convert_from_bytes`方法可以从二进制数据中读取PDF文件并将其换为图像文件。示例如下: ``` with open('path/to/pdf/file.pdf', 'rb') as file: pdf_data = file.read() images = convert_from_bytes(pdf_data) ``` 换后的图像文件将会返回一个图像文件列表。可以循环遍历这个列表来处理每一页的图像文件,或者可以直接使用索引访问特定页的图像文件。 除了基本的换功能外,pdf2image库还提供了一些可选的参数,用于配置图像的换。通过这些参数,可以设置图像的分辨率、输出格式、图像质量等。 总之,Pythonpdf2image库是一个简单易用的工具,可以帮助我们将PDF文件换为图像文件,非常适合用于处理和操作PDF文件中的内容和数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值