python 读取pdf图片_三种方法,Python轻松提取PDF中全部图片-程序员宅基地

技术标签: python 读取pdf图片  

今天就跟大家系统分享几种Python提取 PDF 图片的方法。其实没有非常完美的方法,每种方法提取效率都不是百分之百,因此可以考虑用多种方法进行互补,主要将涉及:

基于

fitz 库和正则搜索提取图片

基于

pdf2image 库的两种方法提取图片

基于 fitz 库和正则搜索

fitz 是 pymupdf 的子模块,需要先用命令行安装 pymupdf:

pip install pymupdf

但注意导入时使用 import fitz 导入模块!

下面的代码就利用 fitz 库提取图片需要通过正则匹配图片元素,将模板元素转化为像素后再以图片形式写出

import fitz

import re

import os

file_path = r'C:\xxx\xxx.pdf' # PDF 文件路径

dir_path = r'C:\xxx' # 存放图片的文件夹

def pdf2image1(path, pic_path):

checkIM = r"/Subtype(?= */Image)"

pdf = fitz.open(path)

lenXREF = pdf._getXrefLength()

count = 1

for i in range(1, lenXREF):

text = pdf._getXrefString(i)

isImage = re.search(checkIM, text)

if not isImage:

continue

pi

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42469578/article/details/114402783

智能推荐

libudev+V4L2 linux usb摄像头列表发现以及热拔插事件_libudev 打开usb相机-程序员宅基地

文章浏览阅读2.6k次。libudev+V4L2 linux usb摄像头列表发现以及热拔插事件简介最近工作计划本来是重写CameraCtrl 控制类以及实现推流。但是由于需求变动导致之前调研废弃,就暂时放这吧。libudev详细地址: libudev Reference Manulv4l2相关地址:v4l2-ctlVideo for Linux Two API Specificationv4l-utils思路设计初衷,当时设计思路为将CameraManager作为一个摄像头管理模块,用来管理摄像头列表,主要_libudev 打开usb相机

移动和桌面端 html5,html5 – 跨浏览器的datepicker组件(与移动和桌面浏览器兼容)和Bootstrap...-程序员宅基地

文章浏览阅读49次。JQuery UI是你的朋友……这里有一个示例var datefield=document.createElement("input")datefield.setAttribute("type", "date")if (datefield.type!="date"){ //if browser doesn't support input type="date", load files for jQ..._单纯html 原生移动端datepicker

Tensorflow用循环神经网络中的LSTM实现回归预测_lstm的做回归-程序员宅基地

文章浏览阅读4.8k次,点赞4次,收藏29次。 “微信公众号”一、回归预测要实现的问题这次我们会使用RNN来进行回归(Regression)的训练,使用自己创建的sin曲线预测一条cos曲线。如下图所示,我们用蓝色的sin曲线预测红色的cos曲线。二、回归预测要实现的效果经过RNN的回归训练,我们的网络预测结果和真实结果的一个比对图..._lstm的做回归

将pandas.DataFrame格式的数据,每一行转为元组tuple,所有数据以列表list输出_pandas to tuple-程序员宅基地

文章浏览阅读6.3k次,点赞6次,收藏13次。import pandas as pddf = pd.DataFrame([[1, 2, 3, 4], [5, 6, 7, 8], [1, 4, 5, 2]], columns=['a', 'b', 'c', 'd'])print(df)df = df.apply(lambda x: tuple(x), axis=1).values.tolist()print(df)输出结果: a b c d0 1 2 3 41 5 6 7 82 1 4 5 2[_pandas to tuple

ASP.NET2.0缓存(Cache)技术_"<%@ outputcache cacheprofile=\"productitemcachepr-程序员宅基地

文章浏览阅读685次。ASP.NET 2.0提供了一些新的用于提升程序性能的技术特性,其中,缓存技术是非常重要的一个特性,它提供了一种非常好的本地数据缓存机制,从而有效的提高数据访问的性能。 数据缓存(Data Caching)就是将数据暂存于内存缓存区中(有时也暂存于硬盘缓存区中)的一种技术.当数据本身改变得不怎么频繁,而被访问的频率又比较高时,采用这种技术将大大提高警惕数据访问的效率.1.网页输出缓存(_""

nvidia-361 : 依赖: lib32gcc1 但是它将不会被安装-程序员宅基地

文章浏览阅读4.4k次。安装GPU驱动时sudo apt install nvidia-361,出现问题:下列软件包有未满足的依赖关系:nvidia-361 : 依赖: lib32gcc1 但是它将不会被安装 依赖: libc6-i386 但是它将不会被安装E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。缺什么就安装什么sudo apt-g...

随便推点

基于C/C++实现 java项目工程加密安全防范_jar c++加密-程序员宅基地

文章浏览阅读4.5k次。工程加密场景介绍实现思路使用微信:13524503122场景介绍底层技术框架保密不被泄漏,项目不想被反编译泄漏内容,不想项目被拷走运行,需要做如下事:1.对编译后的JAR进行加密,未解密是启动不了的2.项目工程与机器绑定,未授权机器无法运行3.时间限定,授权时间到期自动停止总之:让公司的相关技术、相关业务项目不被泄漏实现思路1.对JAR进行加密,根据时间+MAC+密码生成授权文件2.使用c/c++ 解析授权文件解密、授权业务逻辑 生成动态连接库,支持跨平台3.编写java jni接口调_jar c++加密

家政服务系统小程序开发需要实现什么功能?_开源 小程序 家政服务 github-程序员宅基地

文章浏览阅读113次。随着家政服务行业的不断发展和普及,家政服务系统小程序已经成为了许多家政服务企业的首选。总之,家政服务系统小程序需要实现的功能包括用户注册和登录、服务项目展示、预约服务、支付功能、订单管理、评价服务和客服服务等方面。用户可以通过家政服务系统小程序对家政服务人员的服务进行评价,以便于家政服务企业及时改进和提高服务质量。用户可以通过家政服务系统小程序预约所需的服务项目和服务时间,以便于家政服务企业安排家政服务人员。用户可以通过家政服务系统小程序进行在线咨询和投诉,以便于家政服务企业及时解决用户的问题和需求。_开源 小程序 家政服务 github

ionic3中聚焦输入框时,内容被软键盘全部往上顶-程序员宅基地

文章浏览阅读109次。执行打包命令:ionic cordova build android --release然后会生成AndroidManifest.xml:image.png打开后,修改android:windowSoftInputMode="adjustPan|stateHidden"每次打包都需要记得修改这个属性,很麻烦,有没有直接修改编译前配置文件的办法?android:windowSo..._ionic3 聚焦输入框往下滚动

Docker镜像加速_国内可用的docker镜像加速-程序员宅基地

文章浏览阅读463次,点赞8次,收藏6次。确保安装好docker,_国内可用的docker镜像加速

Matlab:具有状态依赖时滞的延迟微分方程(DDE)_状态随着时滞变化的matlab代码-程序员宅基地

文章浏览阅读293次。在Matlab中,我们可以使用一些技巧来求解具有状态依赖时滞的DDE。ddeFunc是DDE的右侧函数,它定义了DDE的形式。在这个例子中,我们假设DDE的形式为dy(t)/dt = y(t) - y(t-τ)^2。为了使用Matlab求解这个DDE,我们需要将其转化为一个常微分方程(ODE)的问题。使用上述代码,我们可以求解具有状态依赖时滞的DDE,并得到数值解。其中,y(t)是未知函数,τ是一个给定的时滞,f是一个已知的函数。我们的目标是找到y(t)的解。最后,我们提取解的时间和数值,并绘制解的图像。_状态随着时滞变化的matlab代码

pytorch中的池化函数_pytorh global pooling-程序员宅基地

文章浏览阅读2.5k次,点赞3次,收藏13次。PyTorch 提供了多种池化函数,用于对输入数据进行不同类型的池化操作。这些池化函数允许你对不同维度的输入数据进行平均池化或最大池化,并且有自适应版本,可以自动调整输入大小以满足指定的输出大小。选择适当的池化函数取决于你的应用和输入数据的维度。_pytorh global pooling

推荐文章

热门文章

相关标签