知行编程网知行编程网  2022-05-02 10:00 知行编程网 隐藏边栏 |   抢沙发  13 
文章评分 0 次,平均分 0.0

卧槽!Pdf转Word用Python轻松搞定!


大家在日常的工作学习过程中,都会遇到一个问题就是将pdf中的文本内容转化为word的形式,也就是从只读变成可读写的形式。面对这种情况,大家大都采用网上的工具,但是网上的工具良莠不齐,很难达到我们的需求。


今天,小编就带领大家利用python来实现如何将pdf的内容转化为word文档。同时我们还将提取pdf中的图片,保存到我们的指定文件夹内。


01.文字的提取

我们首先要做的是对于pdf中文本的提取,如下图所示:

卧槽!Pdf转Word用Python轻松搞定!

Pdf中文字是只允许我们进行只读,但是无法进行更改,所以我们要做的就是提取pdf中的文字信息,然后将提取到的文字写入到word文件当中,让我们能够进行后续的改写。对于文字的提取,我们利用的是pdfminer函数库,其主要的函数如下图所示:

卧槽!Pdf转Word用Python轻松搞定!

  • 程序首先利用get_content_from_pdf函数来返回pdf中提取到的数据;

  • 然后分别创建了PDFResourceManager对象来保存共享数据内容,PDFPageAggregator对象来将资源对象处理成我们需要的格式,而PDFPageInterpreter则是用来处理页面的内容;

  • 程序中page_index用来帮助我们设定需要提取哪几页的内容,对于我们需要提取的页面,通过创建的PDFPageInterpreter对象来对页面信息进行解释;

  • 最后通过PDFPageAggregator对象来对数据进行处理;


这里的layout中就包含了页面解析出来的各种对象。包括文本,图片等信息。但是小编发现,对于图片的提取,pdfminer的效果很不好,所以后面针对于图片的提取,小编采用的fitz库进行单独的处理,取得很好的图片提取效果。说了这么多,我们先来看一下对于文本的处理结果。


卧槽!Pdf转Word用Python轻松搞定!

我们的pdf是一个两页的pdf文档,我们只让程序去提取第一页的文本,从上图可以看出,程序完整的提取出第一页的文本,没有任何的错误。



02.图片的提取

有了对于文字的处理,接下来我们就来看一下如何提取pdf中的图片,并将其保存到本地。对于图片的提取,程序如下图所示:

卧槽!Pdf转Word用Python轻松搞定!


上述的程序中,我们利用fitz库来提取pdf文档中的对象,然后通过字符串匹配来判断对象是不是图片类型,如果不是的话,我们直接进行跳过即可。


如果判断对象是图片类型的话,我们边可以通过创建PixMap对象来提取图片,并保存到我们指定的路径下即可。结果如下图所示:

卧槽!Pdf转Word用Python轻松搞定!

上图可以看出,我们正确的将图片进行了提取,从而达到了我们的图片提取的目的,而且小编也尝试过多个图片的提取,同样也是没有任何压力。可以在短短的几秒内完成pdf文档的所有图片的提取。


以上就是小编为大家带来的pdf转word的提取,我们经过讲解,不仅仅完成了对于pdf文档中文本的提取,而且还完成了对于图片的提取,从而大大的缓解我们工作的压力,提高了工作的效率,大家也赶快下载源码,应用起来吧。


卧槽!Pdf转Word用Python轻松搞定!

需要本篇源码,长按上面的二维码

后台输入:pdf



<p><strong>近期热门:</strong><br  /></p><p style="margin-top: 10px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="color: rgb(0, 122, 170);"><span style="font-size: 16px;">● </span><span style="font-size: 16px;text-decoration: underline;">80%的人都不知道,全球Python库下载前10名</span></span></p><p style="margin-top: 10px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;">● 我珍藏的一些好的Python代码,技巧|上篇</p><p style="margin-top: 10px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="color: rgb(0, 122, 170);"><span style="font-size: 16px;">● </span><span style="font-size: 16px;text-decoration: underline;">爬取300本Python书籍,用Python告诉你哪家强?</span></span></p><section style="margin-top: 10px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="color: rgb(0, 122, 170);"><span style="font-size: 16px;">● </span><span style="font-size: 16px;text-decoration: underline;">简单几步,100行代码用Python画一个蝙蝠侠的logo</span></span></section><section style="margin-top: 10px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="color: rgb(0, 122, 170);"><span style="font-size: 16px;">● </span><span style="font-size: 16px;text-decoration: underline;">我用Python分析了《青春有你2》109位漂亮小姐姐,真香!</span></span></section><section style="margin-top: 10px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="color: rgb(0, 122, 170);font-size: 16px;">● </span><span style="font-size: 16px;color: rgb(0, 122, 170);text-decoration: underline;">牛逼操作!用Python做了一个编程语言20年的动态排行榜!</span></section><section style="margin-top: 10px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="color: rgb(0, 122, 170);font-size: 16px;">● </span><span style="color: rgb(0, 122, 170);text-decoration: underline;font-size: 16px;">我打赌,学会这6招,谁再敢笑你的Python程序慢!</span></section><section style="margin-top: 10px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><br  /></section><section style="margin-top: 10px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;white-space: normal;widows: 1;word-spacing: 10px;letter-spacing: 1.5px;line-height: normal;"><span style="font-size: 15px;word-spacing: 2px;caret-color: rgb(62, 62, 62);letter-spacing: 0.544px;color: rgb(255, 41, 65);"><strong><span style="border-color: rgb(127, 127, 127);">点击阅读原文,原创400篇干货文章</span></strong></span></section>

本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享