Python实现 pdf 转图片 + ocr识别图片文字

文章目录

  • pdf 转图片
  • 使用 ocr 识别文字

想把 pdf 中的文字提取出来的思路是:
先将 pdf 的每一张都转成图片,然后使用 ocr 技术识别出图片中的文字。

pdf 转图片

核心第三方库是 pdf2image 。

具体怎么操作直接看 python 代码就好了。

"""
批量将pdf文件转换成图片jpeg格式
"""
from pdf2image import convert_from_path
import os
import shutil
from tqdm import tqdm
import jsondef pdfToJpeg(dirpath, outputpath):for root, dirs, files in os.walk(dirpath):for file in tqdm(files):file_path = os.path.join(root, file)pages = convert_from_path(file_path, dpi=200)articleID = file[:-4]saveDir = outputpath + '\\' + str(articleID)if os.path.exists(saveDir):shutil.rmtree(saveDir)  # 如果存在则删除os.makedirs(saveDir)for i, page in enumerate(pages):page.save(saveDir + '\\' + f'out{i}.jpg')def main():dirpath = r'E:\fw\ISISPDF330\currentPDFbendi'outPath = r'E:\fw\JPEG\bendi'pdfToJpeg(dirpath, outPath)if __name__ == '__main__':main()

使用 ocr 识别文字

核心第三方库是 paddleocr 。

from pdftojpeg import pdfToJpeg
from paddleocr import PaddleOCR
import osdef write_to_txt(lines):passdef main():PDFAddress = "pdf"JPEGAdress = "jpeg"pdfToJpeg(PDFAddress, JPEGAdress)       # 调用 pdf 转 图片ocr = PaddleOCR(use_angle_cls=True, lang="ch")for root, dirs, files in os.walk(JPEGAdress):files.sort(key=lambda x: eval(x[3:-4]))  # 排序是为了在读取JPG文件时按照指定顺序读取。for file in files:img_path = os.path.join(root, file)result = ocr.ocr(img_path, cls=True)lines = []for line in result:lines.append(line[-1][0])print(lines)print('\n')if __name__ == '__main__':main()

过一段时间之后 paddlepaddle 的函数使用方法可能会变,这个时候去百度飞浆的官网查一下就好了。



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部