广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现PDF转换文本详解
  • 363
分享到

Python实现PDF转换文本详解

2024-04-02 19:04:59 363人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、前言1.1、为什么不使用传统的pdf 转文本工具呢?二、实现过程2.1、基于深度学习的 OCR 将 pdf 为文本2.1.1、将 pdf 转换为图像2.1.2、检测和识别图像

一、前言

对很多人来说,将PDF转换为可编辑的文本是个刚需,却苦于没有简单的方法。发现 pdf 幻灯片,效果还不错。

传统的讲座通常伴随有很多pdf幻灯片。一般来说,想要对自己的讲座做笔记,需要从pdf复制、补充大量内容。

最近,来自 K1 Digital 的高级机器工程师 Lucas Soares 一直在尝试通过使用 CR(光学字符识别)自动 pdf 幻灯片,以便直接在 markdown 文件中操作它们的内容,从而避免手动复制和粘贴 pdf 内容,实现这个过程的自动化

图片

图为项目作者卢卡斯·苏亚雷斯。

1.1、为什么不使用传统的pdf 转文本工具呢?

Lucas Soares 发现传统工具往往会带来更多的问题,需要花时间解决。他曾尝试使用传统的 python 软件包,但遇到了很多问题(例如必须使用复杂的正则表达式模式解析最终输出等),因此决定尝试使用目标检测和 OCR 来解决。

二、实现过程

基本过程可分为以下几个步骤:

  • 将 pdf 转换为图片;
  • 检测和识别图像中的文本;
  • 展示示例输出。

2.1、基于深度学习的 OCR 将 pdf 为文本

2.1.1、将 pdf 转换为图像

Soares 使用的 pdf 幻灯片来自于 David Silver 的增长学习(参见以下 pdf 幻灯片地址)。使用「pdf2image」包将每张幻灯片转换为 png 图像格式。

图片

pdf 幻灯片示例。

地址:https://www.davidsilver.uk/wp-content/uploads/2020/03/intro_RL.pdf

代码如下:


from pdf2image import convert_from_path
from pdf2image.exceptions import (
 PDFInfoNotInstalledError,
 PDFPageCountError,
 PDFSyntaxError
)
pdf_path = "path/to/file/intro_RL_Lecture1.pdf"
images = convert_from_path(pdf_path)
for i, image in enumerate(images):
    fname = "image" + str(i) + ".png"
    image.save(fname, "PNG")

​​​​​经过处理后,所有的pdf幻灯片都转换成png格式的图片:

图片

2.1.2、检测和识别图像中的文本

为了检测和识别png图像中的文本,Soares使用ocr.PyTorch库中的文本检测器。按照说明下载模型保存模型保存在检查点文件夹中。

ocr.pytorch 库地址:Https://GitHub.com/courao/ocr.pytorch

代码如下:


# adapted from this source: https://github.com/courao/ocr.pytorch
%load_ext autoreload
%autoreload 2
import os
from ocr import ocr
import time
import shutil
import numpy as np
import pathlib
from PIL import Image
from glob import glob
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
import pytesseract
def single_pic_proc(image_file):
    image = np.array(Image.open(image_file).convert('RGB'))
    result, image_framed = ocr(image)
    return result,image_framed
image_files = glob('./input_images/*.*')
result_dir = './output_images_with_boxes/'
# If the output folder exists we will remove it and redo it.
if os.path.exists(result_dir):
    shutil.rmtree(result_dir)
os.mkdir(result_dir)
for image_file in sorted(image_files):
    result, image_framed = single_pic_proc(image_file) # detecting and recognizing the text
    filename = pathlib.Path(image_file).name
    output_file = os.path.join(result_dir, image_file.split('/')[-1])
    txt_file = os.path.join(result_dir, image_file.split('/')[-1].split('.')[0]+'.txt')
    txt_f = open(txt_file, 'w')
    Image.fromarray(image_framed).save(output_file)
    for key in result:
        txt_f.write(result[key][1]+'\n')
    txt_f.close()

设置输入和输出文件夹,接着遍历所有输入图像(转换后的pdf幻灯片),然后通过single_pic_proc()函数运行OCR模块中的检测和识别模型,最后将输出保存到输出文件夹。

从检测继承(inherit)了Pytorch CTPN,识别了Pytorch CRNN,模型都存在于OCR模块中。

2.1.3、示例输出

代码如下:


import cv2 as cv
output_dir = pathlib.Path("./output_images_with_boxes")
# image = cv.imread(str(np.random.choice(list(output_dir.iterdir()),1)[0]))
image = cv.imread(f"{output_dir}/image7.png")
size_reshaped = (int(image.shape[1]),int(image.shape[0]))
image = cv.resize(image, size_reshaped)
cv.imshow("image", image)
cv.waiTKEy(0)
cv.destroyAllwindows()

下图左为原始pdf 幻灯片,图右为脑后的输出文本,准确率非常高。

图片

文本识别输出如下:


filename = f"{output_dir}/image7.txt"
with open(filename, "r") as text:
    for line in text.readlines():
        print(line.strip("\n"))

通过上述方法,最终可以得到一个非常强大的工具来讨论文档,从检测和识别手写笔记到检测和识别照片中的随机。

拥有文本的 OCR 工具来处理一些文本内容,这比依赖外部软件来说明文档要好得多。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: Python实现PDF转换文本详解

本文链接: https://www.lsjlt.com/news/137792.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实现PDF转换文本详解
    目录一、前言1.1、为什么不使用传统的pdf 转文本工具呢?二、实现过程2.1、基于深度学习的 OCR 将 pdf 为文本2.1.1、将 pdf 转换为图像2.1.2、检测和识别图像...
    99+
    2022-11-12
  • Python实现文字pdf转换图片pdf效果
    目录前言思路代码展示前言 为什么会做这个? 因为我们把word转化为pdf,wps默认转化为文字pdf,而图片pdf要会员。 网上确实也有网站可以实现免费的,但是未必安全。 思路 我...
    99+
    2022-11-13
  • Python怎么实现文字pdf转换图片pdf效果
    本篇内容主要讲解“Python怎么实现文字pdf转换图片pdf效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现文字pdf转换图片pdf效果”吧!代码展示先安装依赖pip&n...
    99+
    2023-06-29
  • Python实现PDF转Word的方法详解
    由于PDF的文件大多都是只读文件,有时候为了满足可以编辑的需要通常可以将PDF文件直接转换成Word文件进行操作。 看了网络上面的python转换PDF文件为Word的相关文章感觉都...
    99+
    2023-02-16
    Python PDF转Word Python PDF Word
  • Java实现PDF转为线性PDF详解
    目录程序环境方法步骤步骤1. 导入PDF Jar包步骤2. 编辑如下代码将PDF转为线性PDF线性化PDF文件是PDF文件的一种特殊格式,可以通过Internet更快地进行查看。线性...
    99+
    2022-11-12
  • python小脚本——批量将PDF文件转换成图片
    语言:python 3 用法:选择PDF文件所在的目录,点击 确定 后,自动将该目录下的所有PDF转换成单个图片,图片名称为:   pdf文件名.page_序号.jpg 如运行中报错,需要自行根据报错内容按照缺失的库 例如: #安装库pip...
    99+
    2023-09-10
    python
  • Python:实现文本转换为Excel文件(附代码)
    Python:实现文本转换为Excel文件(附代码) 在日常办公和生活中,我们经常需要将文本文件转换为Excel文件,以便更好地进行管理和处理。利用Python编程语言,可以非常方便地实现这一操作。 ...
    99+
    2023-09-17
    python excel 数学建模
  • Python实现农历转换教程详解
    目录前言详细使用方法阳历与农历日期的相互转换闰月其他实战:计算节日距离天数前言 最近处理工作任务的时候遇到了转换农历的问题。一开始我打算搜索在线处理的网站或者转换的接口,结果找到了一...
    99+
    2022-11-13
  • Python怎么将pdf转为图片?Python如何实现pdf文件转图片
    而pdf则是用来保存一些内容已经确定好的数据,因为pdf是无法直接修改内容的,所以也会经常将pdf转为图片来保存。本文就将会来介绍一下pdf转图片的方法,往下看看吧。 1.pdf转图片的话主要实现所需要的模块叫做PyMuPDF,它就是用来...
    99+
    2023-09-02
    python Powered by 金山文档
  • 基于Python实现网页文章转PDF文档
    我们有时候看到一篇好的文章,想去保存下来,传统方式一般是收藏书签、复制粘贴到文档或者直接复制链接保存,但这样一次两次还好,数量多了,比较麻烦不说,还可能不好找~ 这个时候,Pyth...
    99+
    2022-11-11
  • python爬虫实现教程转换成 PDF 电子书
    写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天就琢磨着写一个爬虫,将廖雪峰的 Pyt...
    99+
    2022-06-04
    爬虫 转换成 电子书
  • PHP实现PDF转图片的方法详解
    目录一、开启 Imagick 扩展二、安装imagemagick三、安装Ghostscript软件四、实例Windows环境下 一、开启 Imagick 扩展 1、安装PHP扩展:I...
    99+
    2022-12-21
    PHP PDF转图片 PHP PDF 图片
  • Python批量实现Word、EXCLE、PPT转PDF文件
     一、绪论背景         在日常办公和文档处理中,有时我们需要将多个Word文档、Excel表格或PPT演示文稿转换为PDF文件。将文档转换为PDF格式的好处是它可以保留文档的布局和格式,并且可以在不同平台上进行方便的查看和共享。 ...
    99+
    2023-09-25
    win32com 办公自动化 批量实现
  • Python一键实现PDF文档批量转Word
    目录实现效果环境准备代码实现无论是在工作还是学习当中,大家都会遇到这样一个问题,将“PDF当中的内容(文本和图片)转换为Word的格式”,也就是说从只读转换成...
    99+
    2022-11-11
  • Word转PDF功能实现,文档转换工具通过PHP开发
    最近比较火的文档转换工具相信大家都听说过,但是怎么实现呢? 通过该接口可以将图片、word、excel、ppt等文档转换为pdf格式的文件 可以将Office(Word,Excel,PowerPoint)文件转换为PDF。 转换文件内容、格...
    99+
    2023-09-02
    php http 开发语言
  • Python实现视频转换为字符画详解
    上次写了个华强买瓜字符视频的帖子,下面有人问如何保存,所以这次就写一个能将字符画视频保存下来的帖子,然而时不待我,华强纪元已经结束,现在是穿山甲的时代了。 首先读取视频,并转为字符。...
    99+
    2022-11-12
  • Python详解文字转语音的实现
    前言: 这是一篇简单的Python文字(汉字)转语音教程,当然对于其他语言工具在实现的方法上也是一样的 。 汉字转语音实现就分为两步,第一步将汉字转为拼音,第二步通过拼音调用相匹配的...
    99+
    2022-11-13
  • C#实现将PDF转为Excel的方法详解
    目录dll引用方法方法1方法2PDF转ExcelC#VB.NET通常,PDF格式的文档能支持的编辑功能不如office文档多,针对PDF文档里面有表格数据的,如果想要编辑表格里面的数...
    99+
    2022-11-13
  • Java实现Excel转PDF的两种方法详解
    目录一、使用spire转化PDF1、使用spire将整个Excel文件转为PDF2、指定单个的sheet页转为PDF二、使用jacob实现Excel转PDF(推荐使用)1、环境准备2...
    99+
    2022-11-13
  • C#实现Word和ODT文档相互转换详解
    目录程序环境方法1方法2格式转换1. Word转为ODTC#vb.net2. ODT转为WordC#vb.netODT文档格式一种开放文档格式(OpenDocument Text)。...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作