你是不是经常被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