当前位置: 首页 > article >正文

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

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

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)。

    conda install pdf2image
    

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

    • Windows:下载 Poppler 的二进制文件并将其添加到系统 PATH。
    • macOS:通过 brew install poppler 安装。
    • Linux:通过 apt install poppler-utils 安装。
  2. 运行脚本:
    将脚本保存为 convert_pdf_to_png.py,然后在包含 PDF 文件的目录下运行:

    python convert_pdf_to_png.py
    
  3. 结果保存:
    所有生成的 PNG 文件将保存到当前目录下的 pdf_to_png_output 文件夹中。

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


http://www.kler.cn/a/401384.html

相关文章:

  • 足球虚拟越位线技术FIFA OT(二)
  • 博客文章怎么设计分类与标签
  • Linux网络:HTTPS协议
  • 【蓝桥杯C/C++】I/O优化技巧:cin.tie(nullptr)的详解与应用
  • WPF MVVM框架
  • Unity 编辑器下 Android 平台 Addressable 加载模型粉红色,类似材质丢失
  • 无人机侦察打击方案(1)
  • React渲染和更新机制及其核心内容详解
  • ChatGPT-o1快速完成论文选题的9类提示词
  • ggplot2-scale_x_continuous()
  • 【面试】前端vue项目架构详细描述
  • 一文详解架构分层
  • Photoshop(PS)——人像磨皮
  • 并发专题(1)之深入理解并发、线程与等待通知机制
  • 24. 两两交换链表中的节点
  • 行列式的理解与计算:线性代数中的核心概念
  • 浅谈python
  • AI新闻周刊 | 最新AI资讯速递(11.11-11.17)
  • SMARTFORMS函数调用完整示例:打印工厂物料信息
  • 建造者模式(Builder Pattern)
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day11(Function ECO流程)
  • [控制理论]—位置式PID与增量式PID
  • 【大数据学习 | Spark】RDD的概念与Spark任务的执行流程
  • JMeter实战技巧:使用Java Request Sampler进行接口测试
  • MySQL高级SQL技巧:提升数据库性能与效率
  • 【机器学习】机器学习中用到的高等数学知识-8. 图论 (Graph Theory)