利用python 检测当前目录下的所有PDF 并转化为png 格式

以下是一个完整的 Python 脚本,用于检测当前目录下的所有 PDF 文件并将每一页转换为 PNG 格式:

python 复制代码
import os
from pdf2image import convert_from_path

# 设置输出图像的 DPI(分辨率)
DPI = 300

# 获取当前目录
current_directory = os.getcwd()

# 获取所有 PDF 文件
pdf_files = [file for file in os.listdir(current_directory) if file.endswith('.pdf')]

# 检查是否有 PDF 文件
if not pdf_files:
    print("当前目录没有找到任何 PDF 文件。")
else:
    # 创建保存 PNG 文件的文件夹
    output_directory = os.path.join(current_directory, "pdf_to_png_output")
    os.makedirs(output_directory, exist_ok=True)
    
    for pdf_file in pdf_files:
        pdf_path = os.path.join(current_directory, pdf_file)
        print(f"正在处理: {pdf_file}")
        
        # 转换 PDF 为图像
        try:
            images = convert_from_path(pdf_path, dpi=DPI)
            for i, image in enumerate(images):
                output_file = os.path.join(output_directory, f"{os.path.splitext(pdf_file)[0]}_page_{i+1}.png")
                image.save(output_file, "PNG")
                print(f"已保存: {output_file}")
        except Exception as e:
            print(f"处理文件 {pdf_file} 时出错: {e}")

print("转换完成。")

使用说明

  1. 安装依赖:

    请确保安装了 pdf2imagepopplerpdf2image 需要依赖 poppler-utils)。

    bash 复制代码
    conda install pdf2image

    对于 poppler,可以根据你的操作系统安装:

    • Windows:下载 Poppler 的二进制文件并将其添加到系统 PATH。
    • macOS :通过 brew install poppler 安装。
    • Linux :通过 apt install poppler-utils 安装。
  2. 运行脚本:

    将脚本保存为 convert_pdf_to_png.py,然后在包含 PDF 文件的目录下运行:

    bash 复制代码
    python convert_pdf_to_png.py
  3. 结果保存:

    所有生成的 PNG 文件将保存到当前目录下的 pdf_to_png_output 文件夹中。

如果需要修改 DPI(影响图像质量),可以调整脚本中的 DPI 变量值。

相关推荐
cui_ruicheng8 小时前
FastAPI 应用开发(二):请求响应、Pydantic 模型与依赖注入
python·fastapi·web
DeepVisionary8 小时前
SoundHound 完成收购 LivePerson:股权对价 4300 万美元,实际总成本约 3.04 亿
python·自动化
deepseek238 小时前
Google Gemini Agentic Video 上线:88% 少 token 的主动取样如何改写长视频理解
python·多模态·ai agent·gemini·视频理解
Zane19949 小时前
只重写了 __eq__,为什么类突然变得不可哈希了?常用魔法方法大盘点
后端·python
2601_962885729 小时前
如何用 Python 做 A 股全市场扫描选股?(多条件筛选实战)
开发语言·python
零域码客9 小时前
一文掌握 jQuery + Flask 全栈核心知识点(前端交互 + 后端接口 + 前后端联调)
前端·python·ajax·flask·jquery·前后端联调·web全栈
BYSJMG9 小时前
计算机毕设选题做什么好?基于大数据的用户美食数据分析与可视化,PySpark预处理+ECharts大屏,含Isolation Forest异常检测算法
大数据·python·信息可视化·数据分析·spark·课程设计·美食
奈斯先生Vector9 小时前
AIGC 视频生成换个拍法:用 Kling Video 把一张人物图变成可剪辑的短故事
开发语言·人工智能·windows·python·aigc·音视频
卷无止境9 小时前
当"精简主义"住进AI编程助手:Ponytail深度解读
后端·python·fastapi
2601_962298279 小时前
交易开拓者通常使用什么编程语言?这种语言如何帮助自动化交易?
java·c++·python·编程语言·自动化交易