PDFDeal 是一个强大的工具,专门设计用来简化PDF文件的处理流程。它不仅能够从PDF中提取可读文本,还支持OCR(光学字符识别)技术,用于识别文档中的图像文字并将其转换为可编辑的文本格式。此外,该工具还能帮助用户构建知识库,通过提取和处理文本来提高知识库的准确性和可用性。最近更新的版本V0.1.3引入了多项新功能和改进,包括在Markdown文件中将所有远程图像替换为本地图像的能力,以及对pdfdeal函数进行了重构以支持批量处理文件。此外,此版本还修复了一些与OCR文件处理相关的输出格式问题以及在某些情况下无法正确输出md文件的问题。值得注意的是,从这个版本开始已经移除了早期版本中使用过的Doc2x组件。

1
pip install 'pdfdeal[easyocr]'

使用 pytesseract,需要先安装 tesseract

1
pip install 'pdfdeal[pytesseract]'

使用自定义OCR函数或Doc2x或跳过OCR:

从源码安装:

1
pip install 'pdfdeal[all] @ git+https://github.com/Menghuan1918/pdfdeal.git'

使用 deal_pdf 函数处理PDF文件

从模块 pdfdeal 中引入的 deal_pdf 函数提供了对PDF文件进行多种方式处理的能力。下面将详细介绍该函数及其参数使用方法。

函数定义

1
2
from pdfdeal import deal_pdf
deal_pdf(input, output, ocr=None, language=['ch_sim', 'en'], GPU=False, path=None)

参数说明

  • input (str or list): 输入可以是一个PDF文件的路径字符串或多个PDF文件路径的列表。

  • output (str): 指定输出格式,可选值包括:

  • texts:以文本列表形式返回内容。

  • md:以Markdown格式返回内容。

  • pdf:生成一个新的PDF文件作为输出。

  • ocr (function, optional): 用户自定义的OCR识别函数,默认为None。当需要使用特定OCR逻辑时提供。

  • language (list, optional): OCR过程中使用的语言列表,默认是简体中文(ch_sim)和英文(en)。

  • GPU (bool, optional): 是否启用GPU加速OCR过程,默认不启用(False)。

  • path (str, optional): 当输出类型为pdfmd文件时,指定保存这些文件的目录路径。

示例用法

假设你需要处理一个PDF文档,并希望将其转换成包含提取文本的Markdown文件,你可以这样做:

1
2
3
4
5
deal_pdf('example.pdf', 'md', path='aaaaaaa')```
这将会把位于当前工作目录下的`example.pdf`文件转换为Markdown格式并将结果保存在`aaaaaaa`指定的目录下
通过合理配置`deal_pdf`的各项参数用户能够灵活地满足不同场景下的PDF处理需求  
```python
from pdfdeal import md_replace_imgs md_replace_imgs( mdfile="Output/sample.md", replace="local", outputpath="./Output/test/md_replace_imgs", )
处理文件夹中的所有PDF文件,并保存到Output文件夹
1
import os from pdfdeal import deal_pdf for root, dirs, files in os.walk("./PPT"): for file in files: file_path = os.path.join(root, file) deal_pdf( input=file_path, output="pdf", language=["en"], path="./Output", GPU=True ) print(f"Deal with {file_path} successfully!")
获取PDF中文本内容的列表
1
from pdfdeal import deal_pdf Text = deal_pdf(input="test.pdf", output="texts", language=["en"], GPU=True) for text in Text: print(text)
使用pytesseract进行OCR处理
1
from pdfdeal import deal_pdf, gen_folder_list files = gen_folder_list("tests/pdf", "pdf") output_path = deal_pdf( input=files, output="md", ocr="pytesseract", language=["eng"], path="Output", ) for f in output_path: print(f"Save processed file to {f}")
跳过OCR处理
1
print(deal_pdf(input="test.pdf",ocr="pass"))
支持Doc2x
1
from pdfdeal.doc2x import Doc2X Client = Doc2X() filelist = gen_folder_list("./test","pdf") Client.pdfdeal(filelist)

详细官方文档和代码示例可以参考GitHub仓库

未找到相关的 Issues 进行评论

请联系 @go2coding 初始化创建