当前位置: 首页 > 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…...

终极Saasfly第三方服务集成指南:如何快速添加支付网关和认证提供商

终极Saasfly第三方服务集成指南&#xff1a;如何快速添加支付网关和认证提供商 【免费下载链接】saasfly Your Next SaaS Template or Boilerplate ! A magic trip start with bun create saasfly . The more stars, the more surprises 项目地址: https://gitcode.com/GitHu…...

gte-base-zh模型服务治理:Xinference多租户隔离与资源配额控制实践

gte-base-zh模型服务治理&#xff1a;Xinference多租户隔离与资源配额控制实践 1. 项目背景与需求场景 在实际的企业级AI应用部署中&#xff0c;我们经常面临这样的挑战&#xff1a;多个团队或项目需要共享同一个模型服务&#xff0c;但各自有不同的资源需求和隔离要求。传统…...

深入MiniCPM-o-4.5-nvidia-FlagOS:理解大模型背后的计算机组成原理

深入MiniCPM-o-4.5-nvidia-FlagOS&#xff1a;理解大模型背后的计算机组成原理 你是不是也好奇&#xff0c;像MiniCPM-o-4.5这样的大模型&#xff0c;为什么能在NVIDIA的GPU上跑得飞快&#xff1f;为什么换个显卡&#xff0c;生成速度就能天差地别&#xff1f;这背后&#xff…...

从SQL注入到Linux提权:DC-3靶场渗透实战中的5个关键转折点解析

从SQL注入到Linux提权&#xff1a;DC-3靶场渗透实战中的5个关键转折点解析 在网络安全实训中&#xff0c;靶场渗透测试不仅是技术操作的演练场&#xff0c;更是决策思维的训练营。DC-3作为经典的Joomla CMS渗透靶机&#xff0c;其价值不仅在于最终获取flag的结果&#xff0c;更…...

Matplotlib数据可视化实战:从基础图表到高级定制

1. Matplotlib入门&#xff1a;为什么选择这个可视化工具&#xff1f; 第一次接触数据可视化时&#xff0c;我被各种工具搞得眼花缭乱。Excel、Tableau、Power BI...直到遇见Matplotlib&#xff0c;才发现这个Python库才是数据分析师的"瑞士军刀"。它最大的优势就是…...

第十六届 蓝桥杯嵌入式设计与开发 省赛 客观题

不定项选择&#xff0c;共10题 01.关于STM32时钟源的说法&#xff0c;错误的是() A.HSI精度高于HSE B.LSE常用于RTC模块 C.PLL可将外部或内部时钟倍频 D.切换系统时钟源或修改主频时&#xff0c;必须先进入停机模式 答案&#xff1a;AD A:HSI&#xff08;内部高速时钟&#xff…...

UnrealPakViewer终极指南:如何快速分析虚幻引擎Pak文件资源

UnrealPakViewer终极指南&#xff1a;如何快速分析虚幻引擎Pak文件资源 【免费下载链接】UnrealPakViewer 查看 UE4 Pak 文件的图形化工具&#xff0c;支持 UE4 pak/ucas 文件 项目地址: https://gitcode.com/gh_mirrors/un/UnrealPakViewer 你是否曾经面对数十GB的虚幻…...

深度掌控AMD Ryzen:SMUDebugTool硬件级调试全攻略

深度掌控AMD Ryzen&#xff1a;SMUDebugTool硬件级调试全攻略 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcod…...

企业级语音识别方案:Qwen3-ASR-1.7B部署与集成实战解析

企业级语音识别方案&#xff1a;Qwen3-ASR-1.7B部署与集成实战解析 1. 企业级语音识别需求与方案选型 在数字化转型浪潮中&#xff0c;语音识别技术已成为企业提升运营效率的关键工具。Qwen3-ASR-1.7B作为阿里通义千问推出的中等规模语音识别模型&#xff0c;凭借17亿参数的精…...

大模型---RAG中的数据处理

目录 一.输入侧 1.纯文本TXT/Markdown 2.HTML/网页 3.Word/PPT 4.Email 5.可选中文本PDF 6.扫描PDF/扫描件/文档图片 7.图片/图表/截图/流程图 8.文档中的表格 9.CSV/XLSX 10.音频 11.视频 12.混合文档 二.输出侧 1.输出侧结构化最常见的四种实现方式 2.常见的…...