pdfplumber 提取pdf中文 Python

该博客介绍了如何利用python的pdfplumber库来提取PDF文件中的文本内容。代码示例展示了如何打开PDF,遍历每一页并提取文本,但请注意此库无法解析图片中的文字,对于图片内容的识别需要借助OCR技术。

基于pdfplumber库来识别pdf中文字内容

无法识别pdf中图片的内容 如果需要解析图片内容需要使用OCR技术

1. 详细代码以及注释

import pdfplumber


def extract_content(pdf_path):
    # 内容提取,使用 pdfplumber 打开 PDF,用于提取文本
    with pdfplumber.open(pdf_path) as pdf_file:

        content = ''
        print(len(pdf_file.pages))
        # len(pdf.pages)为PDF文档页数,一页页解析
        for i in range(len(pdf_file.pages)):
            print("当前第 %s 页" % i)
            # pdf.pages[i] 是读取PDF文档第i+1页
            page_text = pdf_file.pages[i]
            # page.extract_text()函数即读取文本内容
            page_content = page_text.extract_text()
            if page_content:
                content = content + page_content + "\n"
    

if __name__ == '__main__':
    pdf_file = '1.pdf'
    extract_content(pdf_file)
在使用 `pdfplumber` 提取含有水印的 PDF 文件内容时,需要注意水印的存在可能会影响文本提取的准确性。水印通常以图像或透明文本的形式嵌入在 PDF 中,这可能导致 `pdfplumber` 在解析时忽略或错误识别实际内容。 ### 基本文本提取方法 `pdfplumber` 主要依赖于 `pdfminer.six` 来解析 PDF 内容,因此它能够处理大多数文本内容。对于含有水印的 PDF 文件,基本的文本提取方法如下: ```python import pdfplumber file_path = "path/to/your/watermarked_pdf.pdf" with pdfplumber.open(file_path) as pdf: for page in pdf.pages: text = page.extract_text() if text: print(text) ``` 上述代码会逐页提取文本内容。如果水印是作为图像嵌入的,`pdfplumber` 通常不会将其误认为文本,因此不会干扰文本提取过程[^3]。 ### 处理复杂水印的情况 如果水印是以文本形式嵌入的,并且与主要内容重叠,可能会导致提取结果中包含水印内容或造成文本识别混乱。在这种情况下,可以尝试以下方法: 1. **过滤水印内容**:如果水印内容是固定的,例如“Draft”或“Confidential”,可以在提取后通过字符串处理将其移除。 ```python cleaned_text = text.replace("Draft", "") print(cleaned_text) ``` 2. **使用布局分析**:`pdfplumber` 提供了对页面布局的访问,可以尝试通过分析文本块的位置来排除水印区域。 ```python for page in pdf.pages: words = page.extract_words() # 假设水印位于页面中央,可以根据位置过滤 filtered_words = [word for word in words if not (500 < int(word["x0"]) < 600 and 300 < int(word["top"]) < 400)] cleaned_text = " ".join([word["text"] for word in filtered_words]) print(cleaned_text) ``` 3. **结合图像处理工具**:如果水印严重影响文本识别,可以考虑将 PDF 转换为图像,并使用 OCR 工具(如 Tesseract)进行识别。这种方法需要额外的库支持,如 `pdf2image` 和 `pytesseract`。 ### 注意事项 - `pdfplumber` 在处理 PDF 时,主要针对文本和表格等结构化内容,对于复杂的图像水印,它不会将其误认为文本内容。 - 如果 PDF 文件中的水印影响了文本的可读性,即使对人类阅读者来说也难以分辨,那么 `pdfplumber` 同样无法准确提取这些内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李同学va

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值