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

pdf转图片(png,jpg)的python脚本

pdf转图片(png,jpg)的python脚本

PDF转图片工具

1.安装库 pip install pymupdf

2.如果需要pdf转jpg的更改DEFAULT_FORMAT即可

3.一定注意要将脚本与待转化的.pdf文件放在同一个目录

4.运行脚本,将脚本所在目录所有.pdf文件转换成图片,并存放在对应名称的文件夹中

import os
import sys
import fitz
import time
from typing import List# 配置项
DEFAULT_ZOOM = 2.0
SUPPORTED_FORMATS = ['png', 'jpg']
DEFAULT_FORMAT = 'png'
JPEG_QUALITY = 95def get_script_dir() -> str:"""获取脚本所在的绝对目录路径"""return os.path.dirname(os.path.abspath(__file__))def get_pdf_files() -> List[str]:"""获取脚本目录下的PDF文件(返回完整路径)"""script_dir = get_script_dir()pdf_files = []try:for filename in os.listdir(script_dir):if filename.lower().endswith('.pdf'):full_path = os.path.join(script_dir, filename)if os.path.isfile(full_path):pdf_files.append(full_path)return pdf_filesexcept Exception as e:print(f"[ERROR] 扫描PDF失败: {str(e)}")return []def convert_pdf_to_images(pdf_path: str,output_format: str = DEFAULT_FORMAT,zoom: float = DEFAULT_ZOOM
) -> bool:"""转换PDF为图片(输出到脚本所在目录)"""try:script_dir = get_script_dir()pdf_name = os.path.splitext(os.path.basename(pdf_path))[0]# 在脚本目录下创建输出文件夹output_folder = os.path.join(script_dir, f"{pdf_name}_images")os.makedirs(output_folder, exist_ok=True)doc = fitz.open(pdf_path)total_pages = len(doc)print(f"\n转换中: {os.path.basename(pdf_path)} (共{total_pages}页)")print(f"输出到: {output_folder}")for pg in range(total_pages):page = doc[pg]pix = page.get_pixmap(matrix=fitz.Matrix(zoom, zoom))output_path = os.path.join(output_folder,f"{pdf_name}_page{pg+1:03d}.{output_format}")pix.save(output_path, jpg_quality=JPEG_QUALITY if output_format == 'jpg' else None)print(f"  ✓ 第 {pg+1}/{total_pages} 页")doc.close()print(f"✔ 转换完成!")return Trueexcept Exception as e:print(f"✕ 转换失败: {str(e)}")return Falseif __name__ == '__main__':print("="*50)print("PDF转图片工具(输出到脚本目录版)")print("="*50)pdf_files = get_pdf_files()if not pdf_files:print("\n! 未找到PDF文件!请确保:")print("  1. PDF文件与脚本在同一目录")print("  2. 文件扩展名是.pdf")input("\n按Enter键退出...")sys.exit()print("\n找到以下PDF文件:")for i, pdf in enumerate(pdf_files, 1):print(f"  {i}. {os.path.basename(pdf)}")input("\n按Enter键开始转换...")for pdf in pdf_files:convert_pdf_to_images(pdf)input("\n全部完成!按Enter键退出...")
http://www.lryc.cn/news/574554.html

相关文章:

  • 发布 npm 包完整指南(含账号注册、发布撤销与注意事项)
  • 【云计算】云测试
  • 成交量流动策略
  • Unity3D仿星露谷物语开发70之背景音乐
  • 软件测试报告机构如何保障软件质量与安全性?作用有哪些?
  • 使用 PyFluent 自动化 CFD
  • 用 Python 打造立体数据世界:3D 堆叠条形图绘制全解析
  • 【Pandas】pandas DataFrame update
  • 华为云Flexus+DeepSeek征文 | 华为云MaaS平台上的智能客服Agent开发:多渠道融合应用案例
  • 《C++初阶之类和对象》【初始化列表 + 自定义类型转换 + static成员】
  • 在 centos7部署kubephere
  • TortoiseSVN 安装教程
  • prometheus+grafana+MySQL监控
  • 云原生周刊:Argo CD v3.1 正式发布
  • 工程优化——WebSocket、WSS(WebSocket Secure)和SSE(Server-Sent Events)通信对比
  • Jenkins+Jmeter+Ant接口持续集成
  • 【人工智能agent】--dify实现文档内容的自动抽取
  • 论文阅读:2025 arxiv Qwen3 Technical Report
  • 【论文阅读 | CVPRW 2023 |CSSA :基于通道切换和空间注意力的多模态目标检测】
  • 【AI时代速通QT】第三节:Linux环境中安装QT并做测试调试
  • Starrocks 低基数全局字典优化
  • 【Vue】 keep-alive缓存组件实战指南
  • Dify携手代理商奇墨科技:加快企业AI应用构建
  • FTP原理、安装部署与案例应用全面指南
  • Unity3D下的RTSP/RTMP超低延迟直播播放器实践:跨平台、高性能与VR全景支持的完整解析
  • 创建首个 Spring Boot 登录项目
  • DD3118S:USB3.0+Type-c双头TF/SD二合一高速0TG多功能手机读卡器ic
  • 76、单元测试-参数化测试
  • 做上门私厨/上门做饭App小程序,到底是定制开发,还是选成品系统?
  • 随机森林详解:原理、优势与应用实践