python下提取PDF库总结

本文介绍了几个用于PDF处理的Python库,包括camelot用于提取表格信息,PyMuPDF支持读取PDF并提供fitz模块,pdfplumber提供简单的接口,而pdfminer和pdfminer.six则用于提取信息。特别提到了PyMuPDF的fitz.open方法的多种用法以及示例代码。
摘要由CSDN通过智能技术生成
汇总如下
  • camelot: 提取PDF中表格信息
  • PyMuPDF: 读取PDF,使用时import fitz
    • 官方文档:pymupdf
    • 注意开源协议是AGPL 3.0
    • 不能提取每一行坐标信息,只能提取block信息,参见docs
  • pdfplumber: 提取PDF中信息,提供函数接口较少,且不是太准
  • pdfminer: 提取PDF工具,截止到2022年,已不再维护,不建议使用
  • pdfminer.six: 提取PDF内信息,基于pdfminer而来。
PyMuPDF使用小技巧
  • 读取PDF的几种方式,通过查阅官方文档,并没有显示找到fitz.open的函数说明,不过从pypi包的源码中倒是看到一二:
  • 源码解析:
    # lib/python3.7/site-packages/fitz/fitz.py#L3887
    class Document(object):
        thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
        __repr__ = _swig_repr
        __swig_destroy__ = _fitz.delete_Document
    
        def __init__(self, filename=None, stream=None, filetype=None, rect=None, width=0, height=0, fontsize=11):
    
            """Creates a document. Use 'open' as a synonym.
    
            Notes:
                Basic usages:
                open() - new PDF document
                open(filename) - string, pathlib.Path, or file object.
                open(filename, fileype=type) - overwrite filename extension.
                open(type, buffer) - type: extension, buffer: bytes object.
                open(stream=buffer, filetype=type) - keyword version of previous.
                Parameters rect, width, height, fontsize: layout reflowable
                     document on open (e.g. EPUB). Ignored if n/a.
            """
    
  • 使用示例:(仅列了两种,剩余的可参考上述函数注释部分中的说明)
    import fitz
    
    pdf_path = '1.pdf'
    
    # 方式一:
    with fitz.open(pdf_path) as doc:
        text = doc[0].get_text()
    
    # 方式二:
    with open(pdf_path, 'rb') as pdf:
        data = pdf.read()
    
    with fitz.open(stream=data) as doc:
        text = doc[0].get_text()
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值