1

我有一个格式非常具体的大 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)
4

0 回答 0