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

python转换并提取pdf文件中的图片

#安装fitz包
pip install pymupdf 

脚本如下所示:

import fitz
import re
import os
import time
import sysarguments = sys.argvfor arg in arguments:print(arg)def file_name_list(base_dir):for i, j, k in os.walk(base_dir):name = [i.replace('.pdf', '') for i in k]return namedef pdfExtractPic(filePath, pic_path):ret = {}try:iNum = 0with fitz.open(filePath) as doc:for page in range(len(doc)):for image in doc.get_page_images(page):xref = image[0]pix = fitz.Pixmap(doc, xref)iNum += 1fileName = ("%s\%d.png"%(pic_path, iNum))if pix.n < 5:pix.save(fileName)else:pix1 = fitz.Pixmap(fitz.csRGB, pix)pix1.save(fileName)pix1 = Noneexcept Exception as e:print(e)return retdef pdf2image(path, pic_path, image_name):try:with fitz.open(path) as pdf:for pg in range(0, pdf.page_count):page = pdf[pg]# 设置缩放和旋转系数,zoom_x, zoom_y取相同值,表示等比例缩放mat = fitz.Matrix(2, 2)pm = page.get_pixmap(matrix=mat, alpha=False)# if width or height > 2000 pixels, don't enlarge the imageif pm.width > 2000 or pm.height > 2000:pm = page.get_pixmap(matrix=fitz.Matrix(1, 1), alpha=False)page_num = pg + 1  # 页码从1开始new_name = '%s_img_%d.png' % (image_name, page_num)pm.save(os.path.join(pic_path, new_name)) except Exception as error:print(error)                if __name__ == '__main__':if len(arguments) < 2:print("请输入pdf所在目录的路径.")sys.exit(1)base_dir = arguments[1]name_list = file_name_list(base_dir)start = time.time()for name in name_list:image_name = namefile_name = r'\%s.pdf' % name  # PDF 文件路径file_path = base_dir + file_namepic_name = r'\pic\%s' % name  # 存放图片的文件夹pic_path = base_dir + pic_nametry:os.makedirs(pic_path)   # 根据路径,创建对应路径下的文件夹except Exception as error:print(error)        pdf2image(file_path, pic_path, image_name)#print(pic_path)pic_path += "\\sub\\"try:os.makedirs(pic_path)   # 根据路径,创建对应路径下的文件夹except Exception as error:print(error)   pdfExtractPic(file_path, pic_path)end = time.time()print('task is over: %.2f' % (end-start))

如果执行的时候报错:

RuntimeError: Directory ‘static‘ does not exist

说明fitz安装错了版本,参考:PyMuPDF: AttributeError:模块‘fitz‘没有属性‘open’_attributeerror: module 'fitz' has no attribute 'op-CSDN博客

相关文章:

python转换并提取pdf文件中的图片

#安装fitz包 pip install pymupdf 脚本如下所示&#xff1a; import fitz import re import os import time import sysarguments sys.argvfor arg in arguments:print(arg)def file_name_list(base_dir):for i, j, k in os.walk(base_dir):name [i.replace(.pdf, ) for i …...

【MySQL】MySQL常用的数据类型——表的操作

前言&#xff1a; &#x1f31f;&#x1f31f;本期讲解关于MySQL常用数据类型&#xff0c;表的简单使用&#xff0c;希望能帮到屏幕前的你。 &#x1f308;上期博客在这里&#xff1a;http://t.csdnimg.cn/wwaqe &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondl…...

自然语言处理系列五十三》文本聚类算法》文本聚类介绍及相关算法

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列五十三文本聚类算法》文本聚类介绍及相关算法K…...

计算机网络(一) —— 网络基础入门

目录 一&#xff0c;关于网络 二&#xff0c;协议 2.1 协议是什么&#xff0c;有什么用&#xff1f; 2.2 协议标准谁定的&#xff1f; 2.3 协议分层 2.4 OSI 七层模型 2.5 TCP/IP 四层模型 三&#xff0c;网络传输基本流程 3.1 局域网中两台主机通信* 3.2 报文的封装与…...

从监控到智能:EasyCVR视频汇聚平台助力加油站安全监管升级转型

随着科技的不断进步&#xff0c;视频监控技术在各个行业的应用日益广泛&#xff0c;尤其在加油站这一关键领域&#xff0c;视频智能监管系统的应用显得尤为重要。TSINGSEE青犀视频EasyCVR视频汇聚平台作为一款基于“云-边-端”一体化架构的视频融合与AI智能分析平台&#xff0c…...

日志服务管理

系统日志管理 sysklogd 系统日志服务 在 CentOS5 以及之前的发行版中&#xff0c;其采用的 sysklogd 服务来记录和管理系统日志的。 sysklogd 服务有两个模块&#xff1a; klogd&#xff1a; 用于记录 linux kernel 相关的日志 syslogd&#xff1a;用于记录用户空间应用日志…...

ROS 工具箱系统要求

ROS 工具箱系统要求 要为 ROS 或 ROS 2 生成自定义消息&#xff0c;或从 MATLAB 或 Simulink 软件中部署 ROS 或 ROS 2 节点&#xff0c;您必须构建必要的 ROS 或 ROS 2 软件包。要构建这些软件包&#xff0c;您必须具备 Python 软件、CMake 软件以及适用于您的平台的 C 编译器…...

CSS解析:定位和层叠上下文

许多开发人员对定位的理解很粗略&#xff0c;如果不完全了解定位&#xff0c;就很容易给自己挖坑。有时候可能会把错误的元素放在其他元素前面&#xff0c;要解决这个问题却没有那么简单。 一般的布局方法是用各种操作来控制文档流的行为。定位则不同&#xff1a;它将元素彻底…...

无名管道与有名管道的区别(C语言)

目录 一、引言 二、无名管道&#xff08;匿名管道&#xff09; 1.概念 2.特点 3.使用方法 三、有名管道&#xff08;命名管道&#xff09; 1.概念 2.特点 3.使用方法 四、总结 本文将详细介绍在C语言中无名管道&#xff08;匿名管道&#xff09;与有名管道&#xff08;命名…...

Vue+Nginx前端项目多种方式部署一文搞定(练习源码自取)

目录 介绍 本地项目部署 nginx部署 云端服务器部署 介绍 对于Vue项目而言&#xff0c;Nginx可以轻松地配置来处理SPA的路由问题&#xff0c;即对于所有未定义的路径请求返回index.html&#xff0c;这样前端路由机制就可以接管URL的处理。此外&#xff0c;Nginx支持反向代理设…...

MATLAB 中双引号 ““ 和单引号 ‘‘ 的区别详解

在 MATLAB 中&#xff0c;双引号 "" 和单引号 都可以用来表示字符串&#xff0c;但它们的作用和底层类型是不同的。理解它们之间的区别&#xff0c;对于正确使用字符串处理功能非常重要。本文将深入探讨 MATLAB 中 "" 和 的区别&#xff0c;以及在实际编…...

Linux概述、远程连接、常用命令

Linux介绍 Linux操作系统介绍 Linux操作系统的特点 开源免费安全稳定可移植性好 Linux可以安装在不同的设备上 高性能 Linux的使用领域 应用服务器数据库服务器网络服务器虚拟化云计算嵌入式领域个人PC移动手机 Linux文件系统和目录 /&#xff1a;根目录&#xff0c;唯一/h…...

闯关leetcode——1.Two Sum

大纲 题目地址内容 解题 题目 地址 https://leetcode.com/problems/two-sum/description/ 内容 Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would hav…...

02 Shell Script注释和debug

Shell Script注释和debug 一、ShellScript注释 ​ # 代表不解释不执行 ​ 语法&#xff1a;# # 创建myshell.sh文件 [rootlocalhost ~]# vi myshell.sh # 写入内容 #!/bin/bash# 打印hello world&#xff08;正确&#xff09; echo "hello world" echo "he…...

如何设计项目架构

设计项目架构是软件开发过程中的关键步骤之一&#xff0c;它涉及到如何组织系统的各个部分以及它们之间的交互方式。良好的架构设计能够提高系统的可维护性、扩展性和性能。以下是设计C项目架构的一些基本原则和步骤&#xff1a; 1. 明确需求 在设计任何系统之前&#xff0c;…...

OTG配置为USB盘之二

在前面一节中&#xff0c;描述了otg配置U盘时涉及到的知识点&#xff0c;本篇用统一的脚本完成。 目标 将3588开发板子配置为一个U盘。 配置文件和脚本 配置文件 说明&#xff1a; 1&#xff09;USB_FUNCS是将开发板配置为什么类型的设备&#xff0c;例如u盘&#xff0c;配置um…...

如何使用 PHP 函数与其他 Web 服务交互?

在 PHP 中&#xff0c;我们可以使用 cURL 或者 file_get_contents 函数与其他 Web 服务进行交互。 使用 cURL 函数 cURL 是一个库&#xff0c;它允许你使用各种类型的协议来发送数据&#xff0c;并从服务器获取数据。 $curl curl_init(‘http://example.com/api’); curl_s…...

.NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.

实现目标。点击图片上传头像 效果图 前端部分图片上传关键代码 <div class"avatar-wrap"><el-imagestyle"width: 154px; height: 154px":src"form.headPic":fit"fit"/></div><div class"upload-box"…...

机器学习如何用于音频分析?

机器学习如何用于音频分析&#xff1f; 一、说明 近十年来&#xff0c;机器学习越来越受欢迎。事实上&#xff0c;它被用于医疗保健、农业和制造业等众多行业。随着技术和计算能力的进步&#xff0c;机器学习有很多潜在的应用正在被创造出来。由于数据以多种格式大量可用&…...

适合程序员在周末阅读的历史书籍:理解人性和世界

一、《人类简史&#xff1a;从动物到上帝》 这本书提供了对人类历史和社会发展的深刻洞察&#xff0c;帮助读者理解人类过去、现在和可能的未来。 《人类简史&#xff1a;从动物到上帝》是以色列历史学家尤瓦尔赫拉利&#xff08;Yuval Noah Harari&#xff09;创作的一部极具影…...

利用快马AI平台,十分钟快速生成企业网站响应式原型

最近在帮朋友的公司搭建官网&#xff0c;发现传统建站流程实在太耗时——从设计到开发至少一两周起步。尝试用InsCode(快马)平台的AI生成功能后&#xff0c;居然10分钟就搞定了响应式网站原型&#xff01;分享下这个高效流程&#xff1a; 明确需求框架 企业官网最基础的结构包括…...

鸣潮帧率解锁:用WaveTools轻松突破60FPS限制的终极指南

鸣潮帧率解锁&#xff1a;用WaveTools轻松突破60FPS限制的终极指南 【免费下载链接】WaveTools &#x1f9f0;鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 还在为鸣潮被锁定在60FPS而烦恼吗&#xff1f;明明拥有高性能硬件&#xff0c;却只能在低…...

深入解析AdminBSB:Bootstrap 3.x与Material Design完美融合的终极指南

深入解析AdminBSB&#xff1a;Bootstrap 3.x与Material Design完美融合的终极指南 【免费下载链接】AdminBSBMaterialDesign AdminBSB - Free admin panel that is based on Bootstrap 3.x with Material Design 项目地址: https://gitcode.com/gh_mirrors/ad/AdminBSBMateri…...

OmX与自然语言处理:NLP应用开发的终极AI助手指南

OmX与自然语言处理&#xff1a;NLP应用开发的终极AI助手指南 【免费下载链接】oh-my-codex OmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more. 项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-codex OmX (Oh My …...

AI赋能:让Kimi和DeepSeek在快马平台上帮你智能解决opencode安装难题

最近在折腾opencv的安装配置时&#xff0c;真是被各种依赖项和环境问题折磨得够呛。直到发现了InsCode(快马)平台的AI辅助开发功能&#xff0c;整个过程突然变得轻松多了。今天就想分享一下&#xff0c;如何用平台集成的Kimi和DeepSeek模型&#xff0c;打造一个智能化的opencv安…...

拯救者BIOS终极解锁:告别隐藏设置,完全掌控你的笔记本电脑

拯救者BIOS终极解锁&#xff1a;告别隐藏设置&#xff0c;完全掌控你的笔记本电脑 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具&#xff0c;例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.c…...

突破性插件本地化方案:Obsidian-i18n全攻略

突破性插件本地化方案&#xff1a;Obsidian-i18n全攻略 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 在全球化的今天&#xff0c;Obsidian作为一款强大的知识管理工具&#xff0c;其丰富的插件生态极大地扩展了功能边界…...

明日方舟游戏资源解析:从数据提取到应用开发的技术实践

明日方舟游戏资源解析&#xff1a;从数据提取到应用开发的技术实践 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 在移动游戏开发领域&#xff0c;获取高质量的游戏资源并进行二次开发…...

OpCore-Simplify终极指南:3分钟打造完美黑苹果EFI配置

OpCore-Simplify终极指南&#xff1a;3分钟打造完美黑苹果EFI配置 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 想要体验macOS的强大功能&#xff0…...

无需会员!本地工具如何让城通网盘下载速度提升20倍

无需会员&#xff01;本地工具如何让城通网盘下载速度提升20倍 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否也曾在下载重要文件时&#xff0c;看着浏览器进度条龟速前进而心急如焚&#xff1f…...