1.6K star!这个开源文本提取神器,5分钟搞定PDF/图片/Office文档!

简介: Kreuzberg 是一个基于 Python 的文本提取库,支持从 PDF、图像、Office 文档等 20+ 格式中提取文本内容。采用 MIT 开源协议,具备本地处理、异步架构、智能 OCR 等特性,特别适合需要隐私保护的文档处理场景。

嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法

Kreuzberg 是一个基于 Python 的文本提取库,支持从 PDF、图像、Office 文档等 20+ 格式中提取文本内容。采用 MIT 开源协议,具备本地处理、异步架构、智能 OCR 等特性,特别适合需要隐私保护的文档处理场景。

一、核心功能亮点

🔍 多格式通吃

支持 PDF(含扫描件)、JPEG/PNG 图片、Word/Excel/PowerPoint、Markdown、EPUB 等常见文档格式

🤖 智能PDF处理

自动识别可搜索PDF与扫描件,智能切换文本提取与OCR模式,内置文本校验防错机制

⚡ 异步高性能

基于 Python async/await 实现,支持批量文件并发处理,充分利用多核CPU性能

📦 轻量级设计

安装包仅 5MB+,无需 GPU 支持,在树莓派等低配设备上也能流畅运行

🌐 多语言OCR

集成 Tesseract 5 引擎,支持中/英/德/法/日等 100+ 语言识别,可配置多语言混合识别

二、技术架构解析

模块 技术选型 功能说明
文档转换 Pandoc 2+ 处理 Office/EPUB/Markdown 等格式
PDF处理 pdfium2 + Tesseract 5 双引擎智能切换处理PDF
异步框架 Python 3.10+ 原生 async/await 支持
图像处理 Pillow 图片预处理与格式转换
依赖管理 UV 快速安装与轻量化依赖管理

三、五大应用场景实战

场景1:企业文档智能解析

from kreuzberg import batch_extract_file_sync

# 批量处理合同文档
results = batch_extract_file_sync([
   "采购合同.pdf",
   "报价单.xlsx",
   "签字扫描件.jpg"
])

for path, (content, _, _) in results.items():
   print(f"【{path}】解析结果:\n{content[:200]}...\n")

场景2:学术论文内容提取

async def extract_research_paper():
   result = await extract_file(
       "论文.pdf",
       language="chi_sim+eng",  # 中英混合识别
       psm=PSMMode.SINGLE_COLUMN  # 适合学术论文版式
   )
   print(f"摘要章节:{result.content.split('摘要')[1][:500]}...")

场景3:法律文书归档系统

def process_legal_docs(docs):
   for doc, mime_type in docs:
       result = await extract_bytes(
           doc,
           mime_type=mime_type,
           force_ocr=True  # 确保扫描件100%识别
       )
       save_to_database(
           content=result.content,
           metadata=result.metadata
       )

场景4:RAG知识库构建

async def build_knowledge_base(files):
   results = await batch_extract_file(files)
   for content, _, meta in results:
       await vector_db.insert({
           "text": content,
           "source": meta.get("title"),
           "author": meta.get("creator")
       })

场景5:跨格式内容搜索

def search_across_formats(keyword):
   results = []
   for file in os.listdir("docs"):
       content, _, _ = extract_file_sync(file)
       if keyword in content:
           results.append(file)
   return results

四、同类项目对比

项目名称 支持格式 OCR能力 异步支持 安装大小 学习曲线
Kreuzberg ★★★★★ ★★★★☆ 5MB 简单
PyPDF2 PDF 1MB 简单
python-docx DOCX 2MB 中等
pytesseract 图片 ★★★★☆ 100MB+ 复杂
pdfplumber PDF 3MB 中等

核心优势对比

  1. 格式通吃:同时处理文档/图片/PDF,无需多个库切换
  2. 智能处理:自动识别文档类型选择最佳解析方式
  3. 生产就绪:完善的错误处理与元数据支持
  4. 隐私安全:全程本地处理不依赖云服务

五、实战技巧分享

技巧1:提升OCR识别精度

# 配置德语+英语识别,使用单列版面分析
await extract_file(
   "german_doc.jpg",
   language="deu+eng",
   psm=PSMMode.SINGLE_COLUMN,
   ocr_config={"tessedit_pageseg_mode": 6}
)

技巧2:处理加密PDF

from kruetzberg import extract_file, ParsingError

try:
   result = await extract_file(
       "encrypted.pdf",
       pdf_options={"password": "123456"}
   )
except ParsingError as e:
   print("密码错误或文件损坏!")

技巧3:保留文档格式

# 提取带Markdown格式的内容
result = await extract_file(
   "report.docx",
   pandoc_options={"output_format": "markdown"}
)
print(result.content)  # 输出带Markdown标记的文本

六、项目部署方案

个人使用方案

# 1. 安装库
pip install kreuzberg

# 2. 安装依赖(Ubuntu示例)
sudo apt-get install pandoc tesseract-ocr tesseract-ocr-chi-sim

# 3. 中文识别测试
echo "测试文本" > test.txt
python -c "from kruetzberg import extract_file_sync; print(extract_file_sync('test.txt').content)"

Docker生产部署

FROM python:3.10-slim

RUN apt-get update && \
   apt-get install -y pandoc tesseract-ocr tesseract-ocr-chi-sim && \
   rm -rf /var/lib/apt/lists/*


COPY requirements.txt .
RUN pip install -r requirements.txt

CMD ["python", "app.py"]

七、生态整合推荐

  • 知识库系统:与 LangChain 结合构建智能文档处理流水线
  • 网盘系统:集成到 Nextcloud 实现自动文档内容索引
  • OA系统:对接钉钉/企业微信实现移动端文档解析
  • RAG应用:与 DeepSeek-R1 等大模型结合实现智能问答

八、总结展望

Kreuzberg 作为新一代文档处理工具,在以下场景具有独特优势:

  • 需要本地化部署的隐私敏感场景
  • 混合格式文档处理需求
  • 高并发文档处理任务
  • 资源受限的边缘计算环境

随着 2025 年多模态AI的爆发式增长,此类高效文本提取工具将成为智能办公的基础设施。

九、项目地址

https://github.com/Goldziher/kreuzberg

相关文章
|
13天前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
211 0
|
13天前
|
小程序
公众号如何添加附传Word、Excel、Pdf、PPT文档
公众号里添加一些文档给公众号粉丝下载,比如课件PPT、申请表Word文档、岗位需求Excel表、大赛入围/获奖名单等。公众号本身是不支持直接上传文件的,但我们可以通过附件小程序“间接”上传文件。
185 0
|
6月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
6月前
|
人工智能 自然语言处理 算法
科研论文翻译神器!BabelDOC:开源AI工具让PDF论文秒变双语对照,公式图表全保留
BabelDOC 是一款专为科学论文设计的开源AI翻译工具,采用先进的无损解析技术和智能布局识别算法,能完美保留原文格式并生成双语对照翻译。
1883 67
科研论文翻译神器!BabelDOC:开源AI工具让PDF论文秒变双语对照,公式图表全保留
|
5月前
|
人工智能 搜索推荐 算法
PDF 转 JPG 图片小工具:CodeBuddy 助力解决转换痛点
在 PDF 转 JPG 的实际应用中,用户普遍面临转换质量差、批量处理效率低、格式兼容性不足以及编程实现困难等痛点。而 CodeBuddy 凭借智能代码生成与优化、实时错误诊断修复、助力代码学习拓展,以及支持多场景适配与个性化定制等强大的 AI 编程能力,精准直击这些难题。使用 CodeBuddy 开发 Python PDF 转 JPG 小工具,能够有效提升转换效率与质量,降低开发门槛和成本,为用户带来高效、优质的文件格式转换体验。
162 16
|
4月前
|
人工智能 开发工具 开发者
【HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能
HarmonyOS 系统提供的核心场景化视觉服务,旨在帮助开发者快速实现移动端文档数字化功能。
129 0
|
6月前
|
文字识别 BI
【工具教程】批量PDF和图片OCR识别指定区域文字自动改图片名字,多个区域一次性批量识别改名批量重命名
本内容介绍了一款用于企业档案、医院病历及办公文件管理的图片和PDF文字识别工具。通过框选识别区域,软件可批量提取关键信息,实现文件重命名或导出为表格,极大提升管理效率。支持图片与PDF两种模式,操作简单,适用于合同、病历、报告等场景。提供详细步骤指导,包含区域设置、文件导入、批量处理及结果校验等功能。
884 8
|
6月前
|
程序员 开发者
开源项目:一行代码,批量 PDF 转 Word 轻松搞定!
程序员晚枫分享了 `popdf` 的新功能:支持批量 PDF 转 Word!只需简单代码,即可轻松实现单文件或批量转换。`input_path` 和 `output_path` 参数让操作更便捷,适合处理大量 PDF 文件。作为开发者,晚枫致力于解决技术小痛点,欢迎体验并反馈。项目地址:[https://github.com/CoderWanFeng/popdf](https://github.com/CoderWanFeng/popdf)
404 6
|
3月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
426 40
|
3月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。

热门文章

最新文章