【使用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()

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

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

相关文章

计算机毕业设计基于springboot+java+vue的健身房课程预约信息网站

运行环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven 项目介绍 本健身网…

C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发005:守护进程与进程监控

文章目录 1 守护进程1.1 进程组和会话1.2 会话的相关概念1.3 守护进程的概念1.4 守护线程的特点1.5 守护进程创建的基本步骤1.6 本项目守护进程的实现 2 进程监控2.1 进程监控的实现 1 守护进程 1.1 进程组和会话 进程除了有进程的PID之外还有一个进程组,进程组是…

AD9371 Crossbar

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…

uni-app实现扫码功能

实现扫码功能,我们需要调用uni-app的scanCode saoma(){//调用scanCode实现扫码功能uni.scanCode({//是否只能从相机扫码,不能从相册扫码onlyFromCamera:false,//规定扫码类型 字节跳动小程序不支持此参数// barcode就是一维码(条形码) qrcode就是(er)维码 // datamatrix就是…

Ubuntu18.04安装pcl-1.12.1,make时报错:/usr/bin/ld: cannot find -lvtkIOMPIImage

解决方案: 在vtk安装包中,重新打开cmake-gui,然后勾选上VTK_Group_MPI和VTK_Group_Imaging。 cd VTK-8.2.0 cd build cmake-gui然后重新编译生成。 make -j8 # 或者j4,量力而行。 sudo make install 就可以解决了。 然后重新回到pcl安装…

web3 从redux中拿出所有已完成订单 并渲染到对应的Table列表中

上文web3 React dapp项目通过事件从区块链中拿到 已取消 已完成 和所有的订单数据 并存入redux中 中 我们已经从 区块中拿到了自己的订单 然后 我们恢复一下上文的环境 ganache ganache -d然后 登一下 MetaMask 然后 用我们的项目 发布一下合约 truffle migrate --reset然后…

vue:写一个数组box和list数组,在保留box数组中原有对象的同时,将list数组中每一个对象插入到box数组后面

前言:由于源码涉及到后端调用数据和一些无关的功能所以我就专门针对这个功能的代码,这样好方便理解。 1、在data中定义两个数组:box和list,并给它们初始化值 data() {return {box: [/*初始的box数组对象*/],list: [/*初始的list…

k8s----27、云原生存储StorageClass、CSI、Rook

1、动态存储介绍 StorageClass:存储类,由K8s管理员创建,用于动态PV的管理,可以链接至不同的后端存储, 比如Ceph、GlusterFS等。之后对存储的请求可以指向StorageClass,然后StorageClass会自动 的创建、删除PV。 实现方式: in-tree: 内置于K8s核心代码,对于存储的管理,都…

华为OD机试 - 无重复字符的最长子串(Java JS Python C)

目录 题目描述 示例 提示 题目解析 Java算法源码 JS算法源码 Python算法源码

Win10 180天后怎么才能继续体验,自动保持续期,无需手动JH

环境: Win10 专业版 自制小程序 问题描述: Win10 180天后怎么才能继续体验,自动保持续期,无需手动JH 解决方案: 在执行本程序前需要以管理员身份运行!关闭杀毒软件,否则会失败,本方案只能在个人电脑测试体验, 只能用于学习测试体验 ,勿用与商业行为 1.先完全JH…

配置资源管理

Secret Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源,这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 Secret 中是为了更方便的控制如何使用数据,并减少暴露的风险。 三种类型: kubernetes.io/service-accoun…

kubeadm安装k8s高可用集群

目录 一、环境规划: 二、注意事项: 三、环境准备: 1. 关闭防火墙规则,关闭selinux,关闭swap交换: 2. 修改主机名: 3. 有节点修改hosts文件: 4. 所有节点时间同步: 5. 所…

【星海出品】flask (二) request替代VUE测试flask接口

flask 是一门使用 python 编写的后端框架。 VUE前端UI装饰推荐学习Element组件库 之后就不使用UI去测试flask了,环节太多,影响直观反映,直接使用postman或request测试更加直观. url携带参数 app.route(/my/blog/<blog_id>)def blog_detail(blog_id): # put applicatio…

c++ 中 const 和static

1. static 首先使用static的主要目的是控制存储周期&#xff0c; 链接性 和可见性 可以作为 1. 局部变量 2.类成员 3. 全局变量和函数 2. const const 关键字用于声明一个变量为常量&#xff0c; 一旦初始化之后&#xff0c;它的值就不会被改变 。 2.1 常量表达式 声明为c…

CF1781F Bracket Insertion(2700*) 题解(括号匹配DP)

题目 题面 简要题意&#xff1a; 你需要执行一下步骤 n n n 次来构建括号序列&#xff1a; ⋅ \cdot ⋅ 等概率选择一个空位&#xff08;若当前有 k k k 个字符&#xff0c;则有 k 1 k 1 k1 个空位&#xff09;。 ⋅ \cdot ⋅ 以 p p p 的概率插入字符…

2023.10月考试战报|华为认证HCIP考试100%通过

相关文章&#xff1a; 考试战报|2023.7月-8月思科认证、华为认证-CSDN博客 2023.4月及5月最新HCIP 考试战报来袭_厦门微思网络的博客-CSDN博客 HCIP 3-4月考试战报_厦门微思网络的博客-CSDN博客 2023年HCIP/CCNP考试战报_厦门微思网络的博客-CSDN博客 2023年10月&#xff0…

卸载QQ后聊天记录怎么恢复?这3个有效方法送给大家!

近年来&#xff0c;微信崛起&#xff0c;已经逐渐占据了人们的日常生活&#xff0c;成为大家不可或缺的东西。这也导致了如今使用QQ的用户变得越来越少。如果用户使用QQ的频率比较低&#xff0c;那么他们可能会选择卸载QQ以此来节省手机空间。 一旦将QQ卸载&#xff0c;这意味…

集合贴3——智能客服系统

基础课17——智能客服系统-CSDN博客文章浏览阅读56次。近年来&#xff0c;实体客服机器人开始出现在银行办公厅、电信商务厅等场合&#xff0c;形成了网络智能客服、电话智能客服、实体客服机器人综合智能客服系统&#xff0c;这初步形成了一种新的产业形式。https://blog.csdn…

电汇ABC(2023-10)

目录 基本表单费用承担方式汇款人姓名(拼音)汇款人地址收款人姓名收款人账号收款人地址(及国家/地区)收款行SWIFT 代码收款行名称、地址申报信息 相关汇款时效汇出审核关于汇往境外他人账户 费用钞转汇 其他其他方式个人购汇额度美元现钞存取额度破损美元境内外币转账美元 OR 港…

强化您的应用安全,从app加固开始

强化您的应用安全&#xff0c;从app加固开始 目录 强化您的应用安全&#xff0c;从app加固开始 摘要 引言 1. 加密和数据保护 2. 代码混淆 3. 防止反编译 4. 安全测试 5. 更新和补丁 6. 权限控制 7. 输入验证和输出过滤 8. 日志记录和监控 9. 安全设计和架构 10.…