利用python处理pdf文本,帮我省下不少钱

本文介绍如何利用Python的pypdf和pdfminer库处理PDF文本,包括提取页面和搜索关键字。通过示例展示了从IPO招股书中搜索特定内容的场景,探讨了pdfminer的优势(详细信息,灵活性)和劣势(速度慢,无高阶API,不适用于扫描版PDF)。还提到了其他PDF解析库如pdfplumber、tabula-java、invoice2data、camelot和pdftabextract。
摘要由CSDN通过智能技术生成

你是不是经常被PDF烦恼???

在现有库中,pdf的代码操作大致分为页面提取以及文字获取两个方面。在页面处理上,有pypdf2可以使用,在提取文本上有pdfminer可以处理。

这里举两个简单的例子:

1,利用pypdf提取pdf文件前5页文件:

from PyPDF2 import PdfFileReader, PdfFileWriter
import os
def split_pdf(infn, outfn):
    pdf_output = PdfFileWriter()
	with open(infn, 'rb')  as f:
		pdf_input = PdfFileReader(f)
	#页面数量
    page_count = pdf_input.getNumPages()
    print(page_count)
    # 将 pdf 前5页
    for i in range(5):
        pdf_output.addPage(pdf_input.getPage(i))
	with open(outfn, 'wb') as f:
		pdf_output.write(f)
def merge_pdf(pdf_folder, outfn):
	"""将多个文件合并为一个文件"""
    pdf_output = PdfFileWriter()
	#这里文件夹中只有pdf文件
	pdfs = os.listdur(os.path.join(pdf_folder))
    for infn in infnList:
        pdf_input = PdfFileReader(open(infn, 'rb'))
        # 获取 pdf 共用多少页
        page_count = pdf_input.getNumPages()
        print(page_count)
        for i in range(page_count):
            pdf_output.addPage(pdf_input.getPage(i))
    pdf_output.write(open(outfn, 'wb'))

2,根据关键字利用pdfminer获取文本,并返回该页面

例如,我想从一堆文本PDF文件中抽出某些含有关键字的文本,并返回带有这些关键字的页面,那么改如何处理?

# -*- coding: utf-8 -*-
"""
目标:从pdf文件中抽取出含有关键字的页面,并将这些页面合并一个新的pdf文件
"""
from PyPDF2 import PdfFileReader, PdfFileWriter
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpret
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值