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

Python:PDF转长图像和分页图像

简介:随着电子化文档的普及,PDF文件的使用频率越来越高。有时我们需要将PDF中的内容转化为图片格式进行分享或编辑,那么如何才能轻松地完成此任务呢?本文将为你展示一个Python工具:如何将PDF文件转化为图片,包括将PDF转化为长图像和每页分别转为单独的图像。

历史攻略:

python:pdf 转 word

安装步骤:

# Ubuntu:
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install poppler-utils
pip3 install pdf2image
pip3 install Pillow# CentOS:
yum update
yum install python3-pip
yum install poppler-utils
pip3 install pdf2image
pip3 install Pillow# Windows 10:
安装Python:访问Python官网下载并安装Python。
安装poppler:下载poppler for Windows并解压。
设置poppler环境变量:将poppler的bin目录路径添加到系统PATH环境变量中。# 安装库
pip install pdf2image
pip install Pillow

参数说明:

pdf_path: 输入的PDF文件的路径。
output_image_path: 输出的长图像的路径。
output_folder: 输出的单页图像的文件夹路径。
poppler_path: poppler工具的bin目录路径,此路径是在Windows下必要的,因为pdf2image库需要它来进行PDF到图像的转换。

案例源码:

# -*- coding: utf-8 -*-
# time: 2023/10/23 15:53
# file: pdf2picture.py
# 公众号: 玩转测试开发import os
from pdf2image import convert_from_path
from PIL import Imagedef pdf_to_long_image(pdf_path, output_image_path):# 从PDF提取每一页为图像pages = convert_from_path(pdf_path, poppler_path='C:\\Users\\poppler-23.08.0\\Library\\bin')# 获取总的高度total_height = sum(page.height for page in pages)# 创建一个空白的长图像long_image = Image.new('RGB', (pages[0].width, total_height))# 将每一页的图像粘贴到长图像上y_offset = 0for page in pages:long_image.paste(page, (0, y_offset))y_offset += page.height# 保存长图像long_image.save(output_image_path)def pdf_to_images(pdf_path, output_folder):# 将PDF转换为PIL图像列表pages = convert_from_path(pdf_path, poppler_path='C:\\Users\\poppler-23.08.0\\Library\\bin')# 确保输出文件夹存在if not os.path.exists(output_folder):os.makedirs(output_folder)# 将每页保存为单独的图像for i, page in enumerate(pages):image_filename = os.path.join(output_folder, f"output_image_page_{i + 1}.png")page.save(image_filename, "PNG")if __name__ == '__main__':pdf_path = 'qp_01.pdf'output_folder = 'output_images'# 使用示例pdf_to_long_image('qp_01.pdf', 'output_image.png')pdf_to_images(pdf_path, output_folder)

运行结果:

图片

1、使用pdf_to_long_image函数,将得到合并了PDF所有页面长图像。

2、使用pdf_to_images函数,会在指定的输出文件夹中得到每一页PDF的单独图像文件,文件名格式为output_image_page_页码.png。

注意事项:

1、确保已经安装了所有必要的库和工具。

2、输入的PDF文件路径应该是有效的,否则程序会报错。

3、在Windows系统下,确保已经设置了poppler的环境变量或在代码中提供了正确的poppler路径。

4、生成的图像可能会占用较大存储空间,特别是当PDF文件页数较多时。

总结:通过Python可以轻松地实现PDF到图像的转换,不仅可以将整个PDF转为一个长图像,还可以将每一页分别转为单独的图像。这个小工具对于那些经常需要处理PDF的人来说非常有用。

相关文章:

Python:PDF转长图像和分页图像

简介:随着电子化文档的普及,PDF文件的使用频率越来越高。有时我们需要将PDF中的内容转化为图片格式进行分享或编辑,那么如何才能轻松地完成此任务呢?本文将为你展示一个Python工具:如何将PDF文件转化为图片&#xff0c…...

第48天:内置对象方法、 前端基础之BOM和DOM

内置对象方法 RegExp对象 // 定义正则表达式两种方式 var reg1 new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}"); var reg2 /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;// 正则校验数据 reg1.test(jason666) reg2.test(jason666)/*第一个注意事项,正则表达式中不能有空格…...

CMake系列EP02: 构建可执行程序和库

文章目录 cmake --buildmessage命令切换生成器使用ninja构建项目切换生成器的工作原理 构建和链接静态库和动态库add_library命令add_executable命令构建OBJECT类型的库条件编译opion命令option更多信息 指定编译器构建类型切换构建类型: 设置编译器选项cmake调试设…...

比亚迪今年的薪资。。

大家或许已经对比亚迪在西安的宣讲会有所耳闻,那场面真的是座无虚席。如果你稍微迟到了一些,那么你可能只能在门外或是走廊听了。 事实上,许多人早早地抵达了,只要稍微晚到,就可能错过了室内的位置。 更令人震惊的是&…...

【OpenCV实现图像找到轮廓的不同特征,就像面积,周长,质心,边界框等等。】

文章目录 概要图像矩凸包边界矩形 概要 OpenCV是一个流行的计算机视觉库,它提供了许多图像处理和分析功能,其中包括查找图像中物体的轮廓。通过查找轮廓,可以提取许多有用的特征,如面积、周长、质心、边界框等。 以下是几种使用…...

数仓建模—数仓建设概论

数仓建设概论 文章目录 数仓建设概论什么是数据仓库数据仓库对企业的意义1.全面掌握企业数据2.支持企业的决策制定3. 可靠性高怎么做数据仓库建1. 需求分析2. 设计数据仓库架构3. 数据采集4. 数据清洗5. 数据结构设计6. 数据分析7. 数据可视化8. 数据维护总结前面我们介绍了关于…...

Docker dnmp 多版本php安装 php8.2

Laravel9 开发需要用到php8.1以上的版本,而dnmp只支持到php8.0。安装php8.2的步骤如下: 1. 从/services/php80目录复制一份出来,重命名为php82,extensions目录只保留 install.sh 和 install-php-extensions 这两个文件 2. 修改.en…...

Distilling the Knowledge in a Neural Network【论文解析】

Distilling the Knowledge in a Neural Network 知识蒸馏 摘要1 引言摘要 提高几乎任何机器学习算法性能的一种非常简单的方法是在相同的数据上训练许多不同的模型,然后对它们的预测进行平均处理[3]。不幸的是,使用整个模型集合进行预测既繁琐又可能过于计算密集,特别是如果…...

基于深度学习的自动驾驶汽车语义分割与场景标注算法研究。

自动驾驶汽车是当前研究的热点领域之一,其中基于深度学习的语义分割与场景标注算法在自动驾驶汽车的视觉感知中具有重要作用。本文将围绕自动驾驶汽车的语义分割与场景标注算法展开研究。 一、研究背景 随着人工智能技术的不断发展,自动驾驶汽车逐渐成…...

国内可用超丝滑ChatGPT4.0(附网址及微信入口)

镜像网站的设置可以带来以下优势: 1.提高访问速度:由于镜像网站部署在全球不同的服务器上,用户可以从最近的服务器访问网站,从而减少延迟和提高加载速度。 2.增加可用性:如果主网站遭遇故障或网络拥堵,用…...

linux入门---线程的同步

目录标题 什么是同步生产者和消费者模型三者之间的关系消费者生产者模型改进生产者消费者模型特点条件变量的作用条件变量有关的函数条件变量的理解条件变量的使用 什么是同步 这里通过一个例子来带着大家了解一下什么是同步,在生活中大家肯定遇到过排队的情景比如…...

UI设计一定不能错过的4款常用工具

虽然设计审美很重要,但软件只是一种工具,但就像走楼梯和坐电梯到达顶层一样,电梯的效率显然更高,易于使用的设计工具也是如此。让我们了解一下UI设计的主流软件,以及如何选择合适的设计软件。 即时设计 软件介绍 即…...

JavaScript 基础 - 第2天

理解什么是流程控制,知道条件控制的种类并掌握其对应的语法规则,具备利用循环编写简易ATM取款机程序能力 运算符语句综合案例 运算符 算术运算符 数字是用来计算的,比如:乘法 * 、除法 / 、加法 、减法 - 等等,所以经…...

MyBatis和JDBC异同点

MyBatis和JDBC是两种不同的数据库访问技术,它们有以下几点区别: 抽象层级:JDBC(Java Database Connectivity)是Java提供的一种标准API,用于与数据库进行交互。它提供了一系列的接口和类,使开发人…...

关于yarn安装一些东西报错时的处理方法

The engine "node" is incompatible with this module. Expected version "^14.18.0 || ^16.14.0 || >18.0.0". Got "17.9.0"出现遮掩刮得错误时直接使用这个命令 yarn config set ignore-engines true 忽略错误就可以了 直接安装自己想安装…...

datagrip 使用自定义参数

两种使用方法: 1. 直接打问号❓,执行的时候会问你这个问号填什么 2. 设置参数,执行的时候会问你这个参数填什么 格式:${xxxx} xxxx是你定义的参数名字 SELECT ${column_name} FROM actor WHERE actor_id${actor_id} 执行就会问…...

css实现平行四边形按钮

当使用CSS实现平行四边形按钮时&#xff0c;可以使用transform属性和::before或::after伪元素来创建。下面是一个示例代码&#xff1a; <!DOCTYPE html> <html> <head> <style> .button {width: 150px;height: 50px;background-color: #4CAF50;color: …...

Jmeter只能做性能测试吗?

Jmeter除了可以性能测试&#xff0c;还能做接口测试 1、Jmeter和Fiddler&#xff0c;Postman有什么区别? Fiddler&#xff1a;虽然有接口测试功能&#xff0c;很少用来做接口测试。 一般用Fiddle来做抓包和异常测试&#xff0c;辅助接口测试。Postman&#xff1a; 是接口调试…...

Jmeter调用测试片段 —— 模块控制器

可以使用模块控制器调用测试片段。模块控制器提供了一种在运行时将测试片段替换为当前测试计划的机制。测试片段可以位于任何线程组中。 1、打开一个Jmeter窗口&#xff0c;添加好线程组、用户定义变量、模块控制器、测试片段、察看结果树。 2、用户定义变量同样定义好访问ip及…...

数组类型题目总结

跟着代码随想录的算法训练营进行训练 目前刷的数组 大部分都是需要遍历后 修改、移动、覆盖元素。 在不使用额外辅助空间的情况下&#xff1a; 在需要进行前后元素对比&#xff0c;使用双层for循环遍历的题目&#xff0c;有增删改查的操作时&#xff0c;就可以考虑使用双指针进…...

Git误操作急救手册(7)Git核心概念回顾:工作区、暂存区、版本库

Git误操作急救手册(7)Git核心概念回顾:工作区、暂存区、版本库 昨天隔壁组的小王跑过来,满头大汗地问我:“哥,我改了一下午的驱动代码,git status一看全红了,手一抖直接git checkout .,现在全没了,能救吗?”我叹了口气,打开终端敲了几行命令,用git fsck找回了他的…...

【3步修复】华硕游戏本色彩配置文件丢失解决方案

【3步修复】华硕游戏本色彩配置文件丢失解决方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, and other mo…...

2026年Magento独立站中国商家收单支付平台综合评估

2026年&#xff0c;全球收单市场持续分化。监管门槛抬升使支付牌照成为稀缺资源&#xff0c;资金周转效率从“加分项”变为“必选项”。对于使用Magento搭建独立站的中国商家&#xff0c;收单平台的选择已从单一的费率比较&#xff0c;升级为对合规深度、资金效率、本地化能力的…...

如何一步一步地获取和风天气的天气数据(2026版)

如何一步一步地获取和风天气的天气数据&#xff08;2026版&#xff09;一、和风天气核心优势二、前期准备2.1 注册和风天气开发者账号2.2 创建项目并获取认证密钥&#xff08;API 项目ID/JWT Token&#xff09;2.2.1 登录控制台 → 进入项目管理 → 点击创建项目。2.2.2 填写项…...

SClick进阶技巧:6个提升使用体验的实用功能

SClick是一款轻量级的防休眠工具&#xff0c;能够帮助用户解决Windows系统自动休眠带来的诸多不便。 软件体积仅有几十KB&#xff0c;绿色便携&#xff0c;无需安装&#xff0c;即用即走。 它通过模拟鼠标点击的方式&#xff0c;让系统以为用户一直在操作电脑&#xff0c;从而防…...

告别CNN!用Mask2Former+Swin Transformer实战图像分割,保姆级代码解析

从CNN到Transformer&#xff1a;Mask2Former与Swin Transformer在图像分割中的实战指南 图像分割技术正在经历一场静默的革命。传统卷积神经网络&#xff08;CNN&#xff09;主导的时代逐渐让位于基于Transformer的新型架构&#xff0c;这种转变不仅仅是技术栈的更新&#xff…...

考研408计算机学科专业基础综合——计算机网络复习

考研408计算机学科专业基础综合 计算机网络复习 核心说明&#xff1a;本笔记聚焦考研408计算机网络高频考点、必背知识点&#xff0c;贴合命题规律&#xff08;选择题为主、大题集中在核心协议&#xff09;&#xff0c;剔除冗余内容&#xff0c;突出重难点&#xff0c;适配冲刺…...

Midscene + 本地Ollama-Qwen3-VL 部署操作文档(含踩坑指南)

Midscene 本地Ollama-Qwen3-VL 部署操作文档&#xff08;含踩坑指南&#xff09; 一、文档说明 本文档适用于 Windows 环境&#xff08;以暗影精灵11为例&#xff1a;i9-14900HX 32G内存 RTX5070 8G&#xff09;&#xff0c;完整覆盖从环境安装、模型部署、脚本开发到调试…...

AI技术原理--AI上下文窗口:为什么AI没有真正的记忆

99%的人都理解错了一个问题&#xff1a;AI真的会记得你吗&#xff1f; 很多人信誓旦旦跟我说&#xff1a;昨天我跟GPT聊了好久&#xff0c;今天一打开还能接着聊&#xff0c;这不是记忆是什么&#xff1f; 但如果我告诉你&#xff0c;它根本就不记得你——你是不是直接懵了&…...

终极跨平台Iwara视频社区客户端:5个核心功能完全指南

终极跨平台Iwara视频社区客户端&#xff1a;5个核心功能完全指南 【免费下载链接】iwrqk Unofficial Iwara Flutter Client 项目地址: https://gitcode.com/gh_mirrors/iw/iwrqk IwrQk是一款基于Flutter框架开发的跨平台Iwara视频社区客户端应用&#xff0c;为你提供在i…...