一个pdf转docx的Python库 pdf转换work
liuian 2024-12-29 04:28 35 浏览
前言
将pdf文件转换成word文件是一个非常常见的操作,我相信,大部分人的免费解决方案是使用一些在线的转换服务,但是这里会有个数据泄露的问题。本文介绍一个开源免费的本地转换工具,pdf2docx。
安装pdf2docx
安装方法非常简单,使用pip指令,执行
pip install pdf2docx
安装成功后,除了基础的库之外,pdf2docx还为我们提供了可执行文件pdf2docx。
日常使用的话,直接使用可执行文件就能够进行pdf到docx的转换;如果需要在python代码中使用,那么,使用其提供的api也能够达到目的。
命令行的使用
通过pdf2docx --help可以查看命令行的具体帮助信息
INFO: Showing help with the command 'pdf2docx -- --help'.
NAME
pdf2docx - Command line interface for ``pdf2docx``.
SYNOPSIS
pdf2docx COMMAND | -
DESCRIPTION
Command line interface for ``pdf2docx``.
COMMANDS
COMMAND is one of the following:
convert
Convert pdf file to docx file.
debug
Convert one PDF page and plot layout information for debugging.
gui
Simple user interface.
table
Extract table content from pdf pages.
上述帮助列出了pdf2docx支持的指令,这里我们主要了解下convert和gui
- convert
- 这是它的核心功能,convert本身也提供了很多的参数,可以通过pdf2docx convert --help来查看,这样的写法同样适用于其它指令,后面的我们就不再详细列出了
(base) PS C:\Users\Administrator> pdf2docx.exe convert --help
INFO: Showing help with the command 'pdf2docx convert -- --help'.
NAME
pdf2docx convert - Convert pdf file to docx file.
SYNOPSIS
pdf2docx convert PDF_FILE <flags>
DESCRIPTION
Convert pdf file to docx file.
POSITIONAL ARGUMENTS
PDF_FILE
Type: str
PDF filename to read from.
FLAGS
--docx_file=DOCX_FILE
Type: Optional[str]
Default: None
docx filename to write to. Defaults to None.
--password=PASSWORD
Type: Optional[str]
Default: None
Password for encrypted pdf. Default to None if not encrypted.
--start=START
Type: int
Default: 0
First page to process. Defaults to 0.
--end=END
Type: Optional[int]
Default: None
Last page to process. Defaults to None.
--pages=PAGES
Type: Optional[list]
Default: None
Range of pages. Defaults to None.
Additional flags are accepted.
Configuration parameters.
.. note
NOTES
You can also use flags syntax for POSITIONAL ARGUMENTS
由上可知,要转换pdf里所有的页面,只需执行
pdf2docx.exe convert test.pdf test.docx
从第3页开始,直到结束
pdf2docx.exe convert test.pdf test.docx --start=2
从开始到第10页
pdf2docx.exe convert test.pdf test.docx --end=10
从第2页到第5页
pdf2docx.exe convert test.pdf test.docx --start=1 --end=5
要特别注意,这里的start和end都是从0开始的
当然,不连续的页面也是可以一次性转换,比如
pdf2docx.exe convert test.pdf test.docx --pages=0,2,4
如果pdf是加密的,可以这样转换
pdf2docx.exe convert test.pdf test.docx --password=PASSWORD
- gui 如果你不习惯用命令行,pdf2docx也提供了一个简单的图形界面,在cmd中敲入pdf2docx gui就可以调出来。真的是很粗糙,按钮的文字都没有显示全,不过功能还是ok的。
- pdf2docx
API的使用
如果要在python中实现pdf到docx的转换,pdf2docx为我们提供了完整的api,来看一个最简单的示例
from pdf2docx import Converter
if __name__ == "__main__":
pdf_file = "test.pdf"
docx_file = "test.docx"
conv = Converter(pdf_file)
conv.convert(docx_file, start=0, end=None)
conv.close()
更详细的API文档,可以参考链接 https://dothinking.github.io/pdf2docx/modules.html
局限性
目前的pdf2docx版本,仅适用于基于文本的pdf,阅读习惯是从左到右。大家在使用的时候需要注意。
参考资料
- https://github.com/dothinking/pdf2docx
相关推荐
- Docker 47 个常见故障的原因和解决方法
-
【作者】曹如熙,具有超过十年的互联网运维及五年以上团队管理经验,多年容器云的运维,尤其在Docker和kubernetes领域非常精通。Docker是一种相对使用较简单的容器,我们可以通过以下几种方式...
- 电脑30个快问快答,解决常见电脑问题
-
1.强行关机/停电对电脑有影响吗?答:可能损坏硬盘(机械硬盘风险高)、未保存数据丢失,偶尔一次影响小,但频繁操作会缩短硬件寿命。2.C盘满影响速度吗?答:会!系统运行需C盘空间缓存临时数据,空间不...
- 使用Tcpdump包抓取分析数据包的详细用法
-
TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种...
- 电脑启动不了(BootDevice Not Found Hard Disk-3F0)解决方案
-
HP品牌机,开机启动不了,黑屏,开机取下主板电池恢复BIOS后,开机显示找不到启动盘。一、按F2键进入BIOS,出现硬盘内存检测界面的话,直接退出。就会出现这个界面,光标键向下,选择BIOSSetu...
- 电脑开机黑屏别慌!快码住!起底维修老师傅不能说的秘密
-
按下开机键却只收获黑屏大礼包?那些神秘的英文提示、刺耳的蜂鸣声,其实是电脑在给你发送求救信号!从按下电源到进入桌面的12秒里,你的电脑经历了史诗级的硬件自检与系统加载,今天我们就破译这段“摩斯电码”。...
- 电脑启动故障为何总要先看BIOS?新手必读的关键知识解析
-
最近在帮朋友们解答电脑无法正常开机的问题时,发现大家经常收到一句高频建议:“先检查BIOS”。对不少普通用户而言,BIOS依然是个神秘的存在。那么,BIOS到底是什么?电脑出现哪些故障会与它相关呢?本...
- Windows 11 KB5053598更新:安全补丁还是系统噩梦?
-
2025年3月11日,微软发布了Windows1124H2的强制性更新KB5053598,作为“周二补丁日”(PatchTuesday)的一部分。然而,这款本应提升系统安全性的更新却引发了广泛的...
- 飞牛OS入门安装遇到问题,如何解决?
-
之前小编尝试了用旧电脑装飞牛OS安装之前特意查了一些硬件要求飞牛OS目前支持主流的x86架构硬件主机需能连网线飞牛OS暂时不支持只有无线网卡的安装貌似很多小伙伴在一开始安装就卡住了那今天咱们汇总分...
- 几种常见的电脑开机黑屏显示白色英文字母解决方法
-
当电脑开机出现黑屏并显示白色英文字母时,通常表示系统启动过程中遇到了错误。以下是几种常见原因及对应的解决方法,按照排查顺序整理:一、检查外接设备与硬件连接可能原因:外接U盘、移动硬盘等未拔出,或内部硬...
- 电脑启动出现问题,为什么都要先检查BIOS?
-
【ZOL中关村在线原创技巧应用】最近在回答问题的时候,总会发现很多朋友都在问“电脑无法正常开机怎么办?”这样类似的问题,而许多DIY大佬的回复总会出现一条高频建议“先检查BIOS”。但对于许多普通用户...
- 教你怎么用JavaScript检测当前浏览器是无头浏览器
-
什么是无头浏览器(headlessbrowser)?无头浏览器是指可以在图形界面情况下运行的浏览器。我可以通过编程来控制无头浏览器自动执行各种任务,比如做测试,给网页截屏等。为什么叫“无头”浏览器?...
- 12个高效的Python爬虫框架,你用过几个?
-
实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...
- 运维的报表之路,用 node.js 轻松发送 grafana 报表
-
在运维过程中,无论是监控还是报表,都会有一些通过邮件发送图表的需求,由于开源的zabbix,grafana和kibana等并不完全具有“想发送哪儿就发送哪儿”的图片生成功能,在grafana...
- C#基于浏览器内核的高级爬虫(c#爬取网页内容)
-
基于C#.NET+PhantomJS+Sellenium的高级网络爬虫程序。可执行Javascript代码、触发各类事件、操纵页面Dom结构、甚至可以移除不喜欢的CSS样式。很多网站都用Ajax动态加...
- 如何优化一个秒杀项目?(秒杀实现思路)
-
问题1:使用jmeter性能压测,定位瓶颈代码步骤流程:线程组--->Http请求--->查看结果树--->聚合报告tips:host的文件--->优先调用映射,减少DNS的时...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
python使用fitz模块提取pdf中的图片
-
《人人译客》如何规划你的移动电商网站(2)
-
Jupyterhub安装教程 jupyter怎么安装包
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- table.render (33)
- uniapp textarea (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- react-admin (33)
- vscode切换git分支 (35)
- vscode美化代码 (33)
- python bytes转16进制 (35)