利用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.mzph.cn/bicheng/61253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

24. 正则表达式

一、什么是正则表达式 正则表达式(regular expression)又称 规则表达式,是一种文本模式(pattern)。正则表达式使用一个字符串来描述、匹配具有相同规格的字符串,通常被用来检索、替换那些符合某个模式&…

MATLAB绘制克莱因瓶

MATLAB绘制克莱因瓶 clc;close all;clear all;warning off;% clear all rand(seed, 100); randn(seed, 100); format long g;% Parameters u_range linspace(0, 2*pi, 100); v_range linspace(0, pi, 50); [U, V] meshgrid(u_range, v_range);% Parametric equations for t…

2、 家庭网络发展现状

上一篇我们讲了了解家庭网络历史(https://blog.csdn.net/xld_hung/article/details/143639618?spm1001.2014.3001.5502),感兴趣的同学可以看对应的文章,本章我们主要讲家庭网络发展现状。 关于家庭网络发展现状,我们会从国内大户型和小户型的网络说起&…

Java基础语法(一)

一、基础语法 数据类型 基本数据类型: 整数类型:包括 byte(1 字节,范围是 - 128 到 127)、short(2 字节,范围是 - 32768 到 32767)、int(4 字节,范围是 - 214…

Vue3 -- 项目配置之eslint【企业级项目配置保姆级教程1】

下面是项目级完整配置1➡eslint:【吐血分享,博主踩过的坑你跳过去!!跳不过去?太过分了给博主打钱】 浏览器自动打开项目: 你想释放双手吗?你想每天早上打开电脑运行完项目自动在浏览器打开吗&a…

【SQL】E-R模型(实体-联系模型)

目录 一、介绍 1、实体集 定义和性质 属性 E-R图表示 2. 联系集 定义和性质 属性 E-R图表示 一、介绍 实体-联系数据模型(E-R数据模型)被开发来方便数据库的设计,它是通过允许定义代表数据库全局逻辑结构的企业模式&#xf…

LLM - 计算 多模态大语言模型 的参数量(Qwen2-VL、Llama-3.1) 教程

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/143749468 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 影响 (…

基于Java Springboot成都旅游网

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…

css 使用图片作为元素边框

先看原始图片 再看效果 边框的四个角灭有拉伸变形,但是图片的中部是拉伸的 代码 border-style: solid;/* 设置边框图像的来源 */border-image-source: url(/static/images/mmwz/index/bk_hd3x.png);/* 设置如何切割图像 */border-image-slice: 66;/* 设置边框的宽度 */border…

【阅读记录-章节1】Build a Large Language Model (From Scratch)

目录 1. Understanding large language models1.1 What is an LLM?补充介绍人工智能、机器学习和深度学习的关系机器学习 vs 深度学习传统机器学习 vs 深度学习(以垃圾邮件分类为例) 1.2 Applications of LLMs1.3 Stages of building and using LLMs1.4…

【WSL+Ubuntu】默认用户被意外变更为 root 后切回原来的默认用户

引言 在使用 Windows Subsystem for Linux (WSL) Ubuntu 时,在 ~ 目录下使用 ls 命令,发现所有文件都消失了,让我误以为文件被清空了。实际上是因为WSL Ubuntu的默认用户被意外地改变为了 root。那么,如何恢复并切回原来的默认用…

Cookie 与 Session:差异剖析与应用实战

一、引言 在 JavaWeb 开发领域,Cookie 和 Session 是用于跟踪用户状态和在不同页面间传递信息的重要机制。它们在实现用户登录状态保持、个性化推荐、购物车功能等方面发挥着关键作用,但二者在工作原理、存储位置、生命周期等方面存在明显区别。深入理解…

Java策略模式应用实战

Java策略模式应用实战 推送内容并预检 import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger;// DTO class class DataDTO {private String type;…

36.矩阵格式的等差数列 C语言

第一行&#xff0c;每个数差2&#xff0c;之后是3、4、5&#xff0c;最后一行是10 仅仅是练习目的 #define _CRT_SECURE_NO_WARNINGS // 禁用在 Visual Studio 中有关不安全函数的警告 #include <stdio.h> // 引入标准输入输出库int main() {int i; // 外层循环的变量…

深入剖析:Java 中 @RequestBody 注解的正确使用

在 Spring Web 开发中&#xff0c;RequestBody 是一个常见而又强大的注解。它能够帮助我们轻松地将 HTTP 请求体中的 JSON 数据转换为 Java 对象&#xff0c;从而减少了繁琐的手工解析操作。但看似简单的注解&#xff0c;背后却隐藏着一些坑点和细节。今天&#xff0c;我们将深…

OPC UA 服务器

OPC UA&#xff08;OPC Unified Architecture&#xff09; 是一种平台无关的通信协议&#xff0c;广泛用于工业自动化领域。它由 OPC 基金会开发&#xff0c;主要设计目标是实现安全、可靠和互操作性的数据交换&#xff0c;适用于各种设备和系统之间的通信。 什么是 OPC UA 服务…

模式:每个服务一个数据库

Pattern: Database per service。 背景 如用微服务架构模式开发一个在线商店应用程序。大多数服务需要在某种数据库中持久化数据。如&#xff0c;订单服务存储订单信息&#xff0c;而客户服务存储客户信息。 问题 微服务应用程序中的数据库架构是什么&#xff1f; 驱动力…

<websocket><PLC>使用js和html实现webscoket,与PLC进行socket通讯的实例

前言 本文是为了实现从网页端通过websocket与PLC端的socket进行数据通讯。 环境配置 系统:windows 平台:visual studio code 语言:javascript、html、PLC 库:node.js 概述 本文的目的是通过网页端与PLC进行socket通讯,但web端一般并不是直接使用socket,而是websocket,…

Acme PHP - Let‘s Encrypt

Lets Encrypt是一个于2015年三季度推出的数字证书认证机构&#xff0c;旨在以自动化流程消除手动创建和安装证书的复杂流程&#xff0c;并推广使万维网服务器的加密连接无所不在&#xff0c;为安全网站提供免费的SSL/TLS证书。 使用PHP来更新证书&#xff1a; Acme PHP | Rob…

高效管理 SSH 免密码登录:多客户端与多服务器实践指南20241118

高效管理 SSH 免密码登录&#xff1a;多客户端与多服务器实践指南 引言 在日常开发中&#xff0c;安全高效地管理多个客户端与服务器之间的 SSH 连接是一个常见需求。尤其对于运维工程师和开发者&#xff0c;避免频繁输入密码并保障安全性是实现高效工作的关键。本文结合实际案…