一:步骤

1、使用input输入路径

2、生成图片存户路径同存放路径

3、生成图片为PNG格式

4、支持自定义截取页数,建议为第一页

二:安装扩展类

pip install PyMuPDF

三:示例代码

# coding:utf-8
import os
import fitz # 解析
def analysis(file_path, save_path, num):
# 资源列表
file_array = []
if os.path.isdir(file_path):
# 目录循环压入
file_count = get_path_file(file_path)
for v in file_count:
file_array.append(v)
else:
# 单文件,单次调用
file_array.append(file_path) # 判断为空情况
if not file_array:
print("此目录下无文件")
# 执行解析
file_count_num = len(file_array)
print("程序运行中,共计%s个文件" % file_count_num)
for v in file_array:
# print("文件路径:%s" % v)
# 获取文件名称及类型
file_name = os.path.basename(v)
# print("文件信息:%s" % file_name)
if '.pdf' not in file_name:
print("此文件非PDF文件")
# 打开PDF文件,生成一个对象
doc = fitz.open(v)
# 总页数
count_page = doc.pageCount
# print("文件共计:%s页" % count_page)
if count_page > 1:
page = doc[num]
rotate = int(0)
# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
zoom_x = 2.0
zoom_y = 2.0
trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
pm = page.getPixmap(matrix=trans, alpha=False)
# 保存路径
p_1 = v.replace(file_path, save_path)
p_2 = p_1.replace(file_name, '')
if not os.path.exists(p_2):
os.makedirs(p_2)
new_file_name = file_name.replace(".pdf", "")
pm.writePNG(p_2 + '%s.png' % new_file_name)
print("运行完成")
else:
print("此文档无内容,跳出")
continue # 返回目录下所有文件
def get_path_file(files_path):
data = []
for root, dirs, files in os.walk(files_path, topdown=False):
for name in files:
f_p = os.path.join(root, name).replace("\\", "/")
data.append(f_p)
return data if __name__ == '__main__':
print("|---------------------------------|")
print("| |")
print("| PDF 批量生成封面 |")
print("| |")
print("|---------------------------------|") # 当前目录下的文件
now_path = os.getcwd()
print("当前位置:%s" % now_path)
# 保存路径
print("请输入参数,以 / 结尾,处理完成后会自动退出")
save_path = input("图片保存地址:")
exit()
# 判断目录
save_path_status = os.path.exists(save_path)
if not save_path_status:
os.mkdir(save_path)
# 截取页数
num = 0
# 路径或文件名
file_path = input("PDF文件地址:")
# 调用方法
analysis(file_path, save_path, num)

注:可打包成exe文件使用噢

本文转载于:https://cloud.tencent.com/developer/article/1584421

(转)python批量提取PDF第一页输出为图片的更多相关文章

  1. 【PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异常】

    public static void main(String[] args) throws IOException { /** * PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异 ...

  2. 第一节:python提取PDF文档中的图片

    由于项目需要将PDF文档当中的图片转换成图片,所以参考了这篇文章https://blog.csdn.net/qq_15969343/article/details/81673302后项目得以解决. 1 ...

  3. python 批量打印PDF

    有一批PDF文件,好几百个,每个只打印第2,3页,双面打印. 网上搜索一波,方案如下: 安装Ghostscript,GhostView,使用gsprint命令打印pdf文件. gsprint命令参数说 ...

  4. 个人永久性免费-Excel催化剂功能第88波-批量提取pdf文件信息(图片、表格、文本等)

    日常办公场合中,除了常规的Excel.Word.PPT等文档外,还有一个不可忽略的文件格式是pdf格式,而对于想从pdf文件中获取信息时,常规方法将变得非常痛苦和麻烦.此篇给大家送一pdf文件提取信息 ...

  5. 使用Python批量合并PDF文件(带书签功能)

    网上找了几个合并pdf的软件,发现不是很好用,一般都没有添加书签的功能. 又去找了下python合并pdf的脚本,发现也没有添加书签的功能的. 于是自己动手编写了一个小工具,使用了PyPDF2. 下面 ...

  6. python批量提取eml附件

    从批量eml文件中提取附件,使用方式如下 代码如下 import email import os import sys #获取eml附件信息 def Get_Annex_Message(FilePat ...

  7. python爬取糗百第一页的笑话

    自学python网络爬虫,发现request比urllib还是要好用一些,因此利用request和BeautifulSoup来实现糗百的首页笑话的抓取.BeautifulSoup通过find和find ...

  8. python批量提取哔哩哔哩bilibili视频

    # -*- coding: utf-8 -*- """ Created on Tue Jan 29 13:26:41 2019 @author: kwy "&q ...

  9. java实现pdf按页切分成图片

    package com.ces.component.pictrueCut.entity; import java.awt.Image; import java.awt.Rectangle; impor ...

  10. java实现截取PDF指定页并进行图片格式转换

    1.引入依赖 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox& ...

随机推荐

  1. 『Python底层原理』--CPython如何编译代码

    前一篇我们介绍了CPython VM的运行机制,它基于一系列字节码指令来实现程序逻辑. 不过,Python字节码在完整描述代码功能上存在局限性,于是代码对象应运而生.像模块.函数这类代码块的执行,本质 ...

  2. 容器的优势,在Docker中运行Tomcat

    本文分享自天翼云开发者社区<容器的优势,在Docker中运行Tomcat>,作者:d****e 一.容器与虚拟机的区别是什么 虚拟机:虚拟机是通过Hypervisor(虚拟机管理系统,常见 ...

  3. Google 常用语法说明

    Google 常用语法说明 背景 Google Hacking,作为一种利用谷歌搜索引擎的强大能力来挖掘互联网中敏感或未公开信息的技巧,已成为安全研究.漏洞挖掘及信息搜集领域的重要工具. 通过精心构造 ...

  4. 闲话 717 - LGV 引理的小应用

    这是我们的某一天的联考题目: \(n\le 500\). 显然使用平面图完美匹配计数可以获得 \(O(n^6)\),但是有一种神秘的对路径的双射.当时我们都认为这是超级人类智慧,但是今天看书发现是书上 ...

  5. 自适应 Simpson 积分法学习笔记

    自适应 Simpson 积分法,是一种计算一段区间内,形态奇怪的函数和的算法,例如面积并和难以直接用通项公式计算的函数. Simpson 积分 我们都知道,求解微积分需要求解一个导数的原函数,但这显然 ...

  6. c#securityexception不允许所请求的注册表访问权

    开机自启动程序如下: if (!System.IO.File.Exists(filename))                    throw new Exception("该文件不存在 ...

  7. JavaScript 之 高级程序设计 基础篇 (一)

    导读 此篇文章为作者拜读JavaScrpit 第四版(红宝石)的笔记内容.适用于有经验的程序员阅读:作者 java开发出身.在之前前后端不分离的时代 使用esayUI JQuery的时代 经常写 js ...

  8. Maven - 项目的JDK编译level是1.5,修改不掉??

    背景   idea中的maven项目,父项目和子项目的Project Structure的language level都是1.5,怎么修改为8?尝试修改并应用后会失效,还是会自动恢复为1.5. 1.S ...

  9. 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!

    3月6日最新消息,阿里云通义千问官方宣布推出最新推理模型 QwQ-32B,这一模型仅有 32B 参数,但在效果上与拥有 671B 参数的 DeepSeek-R1 相媲美.如果你自己部署 DeepSee ...

  10. npm 如何更新项目最新依赖包

    NPM 是什么? Node 软件包管理器(NPM)提供了各种功能来帮助你安装和维护项目的依赖关系. 由于错误修复.新功能和其他更新,依赖关系可能会随着时间的推移而变得过时.你的项目依赖越多,就越难跟上 ...