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

【使用python写一段代码将pdf文件转换为word文件】

突然有一个需求 就是将一份老板发的PDF文件,转换为Word文档,发现要么收费,要么就是有水印,更有甚者需要将转换收费(美其名曰就是需要开会员),那能惯着他吗 开整!

1.使用python写一段代码将pdf文件转换为word文件

要将PDF文件转换为Word文件,可以使用Python中的PyPDF2和python-docx库。以下是一个简单的代码示例:

import PyPDF2
from docx import Document# 打开PDF文件
pdf_file = open('example.pdf', 'rb')# 创建一个PDF读取器对象
pdf_reader = PyPDF2.PdfFileReader(pdf_file)# 创建一个Word文档对象
doc = Document()# 读取PDF文件中的每一页,并将其转换为Word文档中的段落
for page_num in range(pdf_reader.numPages):page = pdf_reader.getPage(page_num)text = page.extractText()doc.add_paragraph(text)# 保存Word文档
doc.save('example.docx')# 关闭PDF文件和Word文档对象
pdf_file.close()
doc.close()

这段代码假设你已经安装了PyPDF2和python-docx库。如果没有安装,可以使用以下命令在终端中安装:

pip install PyPDF2 python-docx

请注意,这个代码示例只是一个基本的框架,需要根据你的具体需求进行修改和完善。

2.python将pdf文件转换为word文件另一种方式

要将 PDF 文件转换为 Word 文件,可以使用 Python 的第三方库 pdfplumberpython-docxpdfplumber 用于读取 PDF 文件,而 python-docx 用于生成 Word 文件。以下是一个简单的代码示例:

import pdfplumber
from docx import Document# 打开 PDF 文件
with pdfplumber.open("input.pdf") as pdf:# 创建 Word 文档doc = Document()# 遍历 PDF 的每一页for page in pdf.pages:# 提取文本和位置信息text = page.extract_text()top = page.rect["top"]left = page.rect["left"]width = page.rect["width"]# 将文本添加到 Word 文档中doc.add_paragraph(text)# 添加一个分页符,以便下一页从新的一页开始doc.add_page_break()# 保存 Word 文档
doc.save("output.docx")

需要注意的是,这个代码示例仅仅是将 PDF 文件中的文本提取出来,然后添加到一个新的 Word 文档中。它不会保留 PDF 文件中的格式、图像等元素。如果需要保留这些元素,可以考虑使用更高级的 PDF 转 Word 工具,例如 Adobe Acrobat 等。

3.网上一种方法,利用python将pdf文件转换为word文件

# 安装库入转换库Converter
import PyPDF2from PyPDF2docx import Converter# 打开PDF文件的路径
pdf_file = r'F:\QQ\原文件.PDF'docx_file = r'F:\QQ\原文件zh转换格式.docx'# 转换并保存Word文档
zh = Converter(pdf_file)zh.Converter(docx_file, start = 0, end = None)# 关闭PDF文件和Word文档对象
pdf_file.close()zh.close()

相关文章:

【使用python写一段代码将pdf文件转换为word文件】

突然有一个需求 就是将一份老板发的PDF文件,转换为Word文档,发现要么收费,要么就是有水印,更有甚者需要将转换收费(美其名曰就是需要开会员),那能惯着他吗 开整! 1.使用python写一段…...

人工智能基础——图像认知与OpenCV

人工智能的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心,我为大家整理了一份600多G的学习资源,基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…...

docker-compose安装es以及ik分词同义词插件

目录 1 前言 2 集成利器Docker 2.1 Docker环境安装 2.1.1 环境检查 2.1.2 在线安装 2.1.3 离线安装 2.2 Docker-Compose的安装 2.2.1 概念简介 2.2.2 安装步骤 2.2.2.1 二进制文件安装 2.2.2.2 离线安装 2.2.2.3 yum安装 3 一键安装ES及Kibana 3.1 yml文件的编写…...

【matlab】KMeans KMeans++实现手写数字聚类

目录 matlab代码kmeans matlab代码kmeans MNIST DATABASE下载网址: http://yann.lecun.com/exdb/mnist/ 聚类 将物理或抽象对象的集合分成由类似特征组成的多个类的过程称为聚类(clustering)。 对于给定N个n维向量x1,…,xN∈Rn,聚类的目标…...

从系统层到应用层,vivo 已在安全生态层

你每隔多久就会使用一次手机?调研结果也许会让你大吃一惊。 权威报告数据显示,2022年,24.9%的受访者每日使用手机时长超过10小时,其中3.8%的受访者“机不离手”,每日使用时长超过15小时。而真正让手机化身为时间吞金兽…...

微信公众号历史文章采集教程思路

大家好,我是淘小白! 今天来说下微信公众号历史记录文章采集的教程和思路,希望能够帮助的到大家~ 1、历史消息入口 现在新版本的微信已经找不到历史记录的入口了,需要对这个入口进行拼接,方法如下: 随便…...

大模型应用--prompt工程实践

在使用大模型进行prompt 训练时&#xff0c;自己做的相关笔记。 本文以openai<1.0版为例。 1.调用大模型 定义调用openai大模型的函数 get_completion() def get_completion(prompt, model"gpt-3.5-turbo"):messages [{"role": "user", …...

新零售时代,传统便利店如何转型?

在零售批发业&#xff0c;如何降低各环节成本、提高业务运转效率、更科学地了解客户服务客户&#xff0c;是每家企业在激烈竞争中需要思考的课题。 对零售批发企业来说&#xff0c;这些问题或许由来已久&#xff1a; &#xff08;1&#xff09;如何对各岗位的员工进行科学的考…...

openEuler 系统使用 Docker Compose 容器化部署 Redis Cluster 集群

openEuler 系统使用 Docker Compose 容器化部署 Redis Cluster 集群 Redis 的多种模式Redis-Alone 单机模式Redis 单机模式的优缺点 Redis 高可用集群模式Redis-Master/Slaver 主从模式Redis-Master/Slaver 哨兵模式哨兵模式监控的原理Redis 节点主客观下线标记Redis 节点主客观…...

C# ZXing 二维码,条形码生成与识别

C# ZXing 二维码条形码生成识别 安装ZXing使用ZXing生成条形码生成二维码生成带Logo的二维码识别二维码、条形码 安装ZXing NuGet搜索ZXing安装ZXing.Net包 使用ZXing using ZXing; using ZXing.Common; using ZXing.QrCode; using ZXing.QrCode.Internal; 生成条形码 //…...

[vim]Python编写插件学习笔记1 - 开始

0 环境 Windows 11 22H2gVim82 (D:/ProgramFiles/Vim)Python311 (D:/ProgramFiles/Python311)Vundle v0.10.2 1 Vim 支持 Python gVim82 默认配置中&#xff0c;使用的是 Python3.8。 但我的环境安装的是 Python3.11&#xff0c;且不是安装在默认路径下。虽然添加了 PATH 环…...

深入理解JVM虚拟机第二十篇:静态变量和局部变量的对比以及栈帧对垃圾回收的意义以及JVM中栈帧与堆内对象的应用关系图示

大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JVM 本文章简介:话不多说,让我们讲清楚静态变量和局部变量的对比 文章目录…...

【计算机网络基础实验】实验二 有线IP互通网络实践

任务一 IP路由协议实现企业路由器通信 目录如下&#xff1a; 任务一 IP路由协议实现企业路由器通信2.1.1 任务描述2.1.2 任务目的2.1.3 任务实施实验需求实验步骤步骤1&#xff1a;更改每台设备的名称步骤2&#xff1a; 给R1接口配置相应IP地址步骤3&#xff1a; 给R2接口配置相…...

【Orangepi Zero2 全志H616】驱动串口实现Tik Tok—VUI(语音交互)

一、编程实现语音和开发板通信 wiringpi库源码demo.c 二、基于前面串口的代码修改实现 uartTool.huartTool.cuartTest.c 三、ADB adb控制指令 四、手机接入Linux热拔插相关 a. 把手机接入开发板 b. 安装adb工具&#xff0c;在终端输入adb安装指令&#xff1a; sudo apt-g…...

【Spring】静态代理

例子&#xff1a; 租房子 角色&#xff1a; 我 &#xff08;I ) 中介( Proxy ) 房东( host ) Rent 接口 package org.example;public interface Rent {void rent(); }房东 package org.example;public class Host implements Rent{Overridepublic void rent() …...

tomcat web.xml文件中servlet的load-on-startup

先看一个例子&#xff1a; <servlet><description>JAX-WS endpoint - restful</description><display-name>restful</display-name><servlet-name>restful-addnumbers</servlet-name><servlet-class>com.sun.xml.ws.transpor…...

记chrome打不开网址,无法搜索问题

打开网址解决办法 2023关于chrome谷歌浏览器无法正常上网问题&#xff0c;解决办法&#xff0c;亲测有效 下载插件&#xff0c;解压后拖入chrome的扩展程序中&#xff0c;可以打开国内网址 google引擎搜索解决办法 打开无痕浏览 &#xff08;不知道什么原理&#xff0c;可…...

Spring面试题:(五)Spring注解开发@Component,@Autowired,@Bean,@Configuration

Bean基本注解 spring提供注解的版本 Component注解替代bean标签 bean其它属性的相关注解&#xff1a; scope 替代scopelazy 替代lazy-initPostConstruct 替代init-methodPreDestroy 替代destroy-method 使用Component注解的前提是开启注解扫描 衍生注解Repository,Servi…...

【Qt-23】ui界面设计-ToolBar

1、ToolBar 右击主窗体添加工具栏 新建动作&#xff0c;可设置图标&#xff0c;图标有本地文件和资源两种方式。 修改toolButtonStyle的属性&#xff0c;可设置图标与汉字显示的方式。 页面跳转&#xff1a; connect(ui->action, SIGNAL(triggered()), this, SLOT(openWid…...

nodejs 异步架构

nodejs的核心之一就是非阻塞的异步IO&#xff0c;于是想知道它是怎么实现的&#xff0c;挖了下nodejs源码&#xff0c;找到些答案&#xff0c;在此跟大家分享下。首先&#xff0c;我用了一段js代码test-fs-read.js做测试&#xff0c;代码如下&#xff1a; var path require(pa…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...