用python将pdf转成图片转换成对应的word文件

*科管系统**报告只能上传word,但是有些盖章文件只有pdf版本,因此有这个需求,目前市面上没这软件,只能自己python写一个。

要将PDF中的页面以图片的形式存储到Word文档中,你需要完成以下几个步骤:

从PDF中提取每一页的图像。
将这些图像插入到Word文档中。
这里提供一个使用Python实现的示例流程,其中使用PyMuPDF(也称为fitz)来读取PDF并提取图像,使用python-docx来创建Word文档并插入图像。

安装所需库
首先确保安装了所需的库:

pip install pymupdf python-docx

示例代码

以下是一个简单的脚本,演示如何将PDF中的页面作为图像保存,并将这些图像插入到Word文档中:

import fitz  # PyMuPDF
from docx import Document
from docx.shared import Inchesdef pdf_to_images(pdf_path, output_folder):# 打开PDF文件with fitz.open(pdf_path) as doc:# 遍历每一页for page_num in range(len(doc)):page = doc[page_num]# 将PDF页面渲染为图像pix = page.get_pixmap(dpi=300)  # dpi可以根据需要调整image_path = f"{output_folder}/page_{page_num + 1}.png"pix.save(image_path)  # 保存图像到磁盘yield image_pathdef images_to_word(image_paths, word_path):# 创建一个新的Word文档doc = Document()# 遍历所有图像并将它们插入到Word文档中for image_path in image_paths:doc.add_picture(image_path, width=Inches(6))  # 调整宽度以适应页面doc.add_page_break()  # 添加一个新页面# 保存Word文档doc.save(word_path)# 主函数
def main(pdf_path, output_folder, word_path):# 从PDF中提取图像image_paths = list(pdf_to_images(pdf_path, output_folder))# 将图像插入到Word文档中images_to_word(image_paths, word_path)if __name__ == "__main__":# 定义输入输出路径pdf_path = 'F:\python\pdf2word\测试分册.pdf' # PDF文件路径output_folder = "output_images"  # 图像输出文件夹word_path = "output_ceshi.docx"  # Word文档输出路径# 创建输出文件夹import osif not os.path.exists(output_folder):os.makedirs(output_folder)# 调用主函数main(pdf_path, output_folder, word_path)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/58238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java虚拟机的历程(jvm01)

Java虚拟机的历程(jvm01) Java虚拟机(JVM)作为Java语言的核心技术之一,自诞生以来经历了多次迭代与演变。不同的虚拟机在性能、功能以及适用场景上各有侧重。本文将介绍Java虚拟机发展历程中的一些重要虚拟机&#xf…

【设计模式】Liskov替换原则

文章目录 LSP原则的定义关键点示例遵循LSP原则的示例示例2结论 Liskov替换原则(Liskov Substitution Principle,简称LSP)是面向对象设计中的五大基本原则之一,由Barbara Liskov在1987年提出。LSP原则的核心思想是: 子…

部署RocketMQ, 其实很简单 (带图, 附启动命令)

目录 一 下载 RocketMQ 二 上传解压 2.1 文件上传 2.2 文件解压 三 配置RocketMQ 3.1 修改runserver.sh 3.2 修改runbroker.sh 3.3 配置环境变量 四 启动RocketMQ 4.1 启动namesrv服务 4.2 启动broker 服务 五 关闭RocketMQ 一 下载 RocketMQ 官网下载…

双十一有哪些值得入手的好物?盘点五款优惠又好用的好物推荐!

一眨眼,2024年双十一已经到来。自古以来,双十一不仅是购物狂欢的节日,更是消费者们尽情享受优惠和好物的绝佳时机。在这个热潮中,很多人都会提前准备好购物清单,寻觅心仪的商品。为了帮助大家在这个购物节中不空手而归…

11106 操作(c)

经验值:2000 时间限制:1000毫秒 内存限制:512MB 安徽省2024年信息学竞赛试题(初中组) 不许抄袭,一旦发现,直接清空经验! 题目描述 Description 小可可有一个长度为 nn 的初始都为 00 的数组和从左到右…

全网最简单的Java设计模式【九】原型模式深入解析

如果觉得本文能够帮到您,请关注🌟、点赞👍、收藏📚,让这份美好延续下去! 一、引言 在 Java 软件开发中,设计模式起着至关重要的作用,它们为解决各种常见的软件设计问题提供了经过验…

【AIGC】ChatGPT提示词Prompt精确控制指南:Scott Guthrie的建议详解与普通用户实践解析

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯斯科特古斯里(Scott Guthrie)的建议解读人机交互设计的重要性减轻用户认知负担提高Prompt的易用性结论 💯普通用户视角的分析普通用户…

MySQL(2)【库的操作】

阅读导航 引言一、创建数据库1. 基本语法2. 创建数据库案例📌创建名为db1的数据库📌创建一个使用utf8字符集的db2数据库📌创建一个使用utf8字符集,并带校对规则的db3数据库 二、字符集和校验规则1. 查看系统默认字符集以及校验规则…

Python入门——yield生成器和iter迭代器

yield生成器 yield 的作用 生成器函数:yield 将一个普通的函数变成一个生成器函数。生成器函数与普通函数的区别在于,普通函数使用 return 一次性返回结果并终止,而生成器函数使用 yield 返回一个值后,会记住函数的执行状态&…

铜业机器人剥片 - SNK施努卡

SNK施努卡有色行业电解车间铜业机器人剥片 铜业机器人剥片技术是针对传统人工剥片效率低下、工作环境恶劣及生产质量不稳定的痛点而发展起来的自动化解决方案。 面临人工剥片的诸多挑战,包括低效率、工作环境差、人员流动大以及产品质量控制不精确等问题。 人工剥片…

电机学习-空间矢量合成

一、标量转换理论 设三相标量为 x a , x b , x c x_a,x_b,x_c xa​,xb​,xc​,且满足 x a x b x c 0 x_ax_bx_c 0 xa​xb​xc​0,则有变换: X o u t x a a x b a 2 x c , 其中 a e j 2 3 π , a 2 e − j 2 3 π X_{out}x_aax_ba^2…

深度学习调参大法

目录 trick 1:深度学习调参核心点trick 2:关于 深度学习Model选型问题trick 3:关于数据trick 4:关于调参 4.1 关于 Loss function 调参策略4.2 关于 Learning rate 和 batch size 调参策略4.3 关于 Epoch number 和 early stoppi…

华为ensp静态路由,浮动路由,缺省路由讲解及配置

🏡作者主页:点击! 🤖网络通信基础TCP/IP专栏:点击! ENSP专栏:点击! ⏰️创作时间:2024年10月24日0点15分 祝大家程序员节快乐~ 路由的选择与管理至关重要。静态路由…

医院信息化与智能化系统(10)

医院信息化与智能化系统(10) 这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应…

使用 Python 的 BeautifulSoup(bs4)解析复杂 HTML

使用 Python 的 BeautifulSoup(bs4)解析复杂 HTML:详解与示例 在 Web 开发和数据分析中,解析 HTML 是一个常见的任务,尤其是当你需要从网页中提取数据时。Python 提供了多个库来处理 HTML,其中最受欢迎的就…

ElasticSearch备考 -- index rollover

一、题目 给索引my-index-000001,创建别名my-index,并设置rollover,满足以下三个条件的 The index was created 7 or more days ago.The index contains 5 or more documents.The index’s largest primary shard is 1GB or larger. 二、思考…

nodejs包管理器pnpm

简介 通常在nodejs项目中我们使用npm或者yarn做为默认的包管理器,但是pnpm的出现让我们的包管理器有了更多的选择,pnpm相比npm具有以下优势: 速度更快,pnpm在安装依赖时,会将依赖包缓存到全局目录,下次安…

vue3当中vscode给ref定义的变量使用时自动加上.value

vue3当中vscode给ref定义的变量使用时自动加上.value 1.在扩展中找到vue-office进行安装 2.安装完成后点击设置找到“dot value”勾起即可

Flutter 状态管理框架Get

状态管理框架 Get的使用 目录 状态管理框架 Get的使用 GetMaterialApp 路由的注册 路由的跳转 middlewares的使用 组件使用 defaultDialog bottomSheet snackbar 状态刷新有很多种方式 ValueBuilder Obx 基础使用 是时候引入GetxController, 也是Get里面的常用的 G…

香港国际金融市场的多元化投资策略与风险管理

香港国际金融市场长期以来以其开放性和稳健性闻名,吸引了全球众多投资者。随着全球经济日益互联,投资者在香港市场可以获得多样化的资产选择,包括股票、债券、基金、外汇等多元化金融产品。本文将探讨香港国际金融市场的投资策略和风险管理措…