我有一个格式非常具体的大 pdf 文件,如果你愿意的话,还有一堆报告,都在一个大的 pdf 文档中。我正在使用 pdfplumber 在每页的边界框中提取特定文本。我把这个变量叫做scene_text。scene_text 的值在整个文档中发生变化,但许多页面包含相同的 scene_text 值。我想将大 pdf 分成多个较小的 pdf 文件,这些文件根据它们的 scene_text 值命名,每个 pdf 文件都包含具有匹配 scene_text 的所有页面。我非常卡住,任何帮助将不胜感激。
import pdfplumber
from PyPDF2 import PdfFileWriter, PdfFileReader
import os
file = 'report.pdf'
with pdfplumber.open(file) as pdf:
for i, page in enumerate(pdf.pages):
# get scene text for current page
bounding_box = (880, 137, 1048, 180)
scene_text = page.within_bbox(bounding_box, relative=True).extract_text()
previous_page_text = pdf.pages[i-1].within_bbox(bounding_box, relative=True).extract_text()
inputpdf = PdfFileReader(open(file, "rb"))
output = PdfFileWriter()
for x, page in enumerate(pdf.pages):
st2 = page.within_bbox(bounding_box, relative=True).extract_text()
if st2 != previous_page_text:
output.addPage(inputpdf.getPage(i))
if st2 == scene_text:
if st2 == pdf.pages[x+1].within_bbox(bounding_box, relative=True).extract_text():
previous_page_text = st2
with open("page_export/" + scene_text + ".pdf", "wb") as output_stream:
output.write(output_stream)