python - 实现类错误并返回 0 文本

标签 python pdf

希望您一切顺利。我有点挣扎,我有两个问题。首先,我尝试实现一个类,它返回类似于 <ma​​in 的代码。当我尝试实现该类时,对象位于 0x02C08790> 处。我引用了其他评论,不太明白。我的第二个问题是,当我运行下面的代码时,它指出我之前保存的 pdf 中没有任何项目。我认为我错误地传递了文件,但我不确定。我分别测试了每个代码,两者独立工作但不能一起工作。非常感谢任何帮助。

import os
from pdfminer3.layout import LAParams, LTTextBox
from pdfminer3.pdfpage import PDFPage
from pdfminer3.pdfinterp import PDFResourceManager
from pdfminer3.pdfinterp import PDFPageInterpreter
from pdfminer3.converter import PDFPageAggregator
from pdfminer3.converter import TextConverter
import io

import PyPDF2
from PyPDF2 import PdfFileMerger, PdfFileReader
import pandas as pd


class Transform:
    # method for extracting data and merging it into one pdf

    def __init__(self):
        try:
            source_dir = os.getcwd()
            merger = PdfFileMerger()
            for item in os.listdir(source_dir):
                if item.endswith("pdf"):
                    merger.append(item)
        except Exception:
            print("unable to collect")
        finally:
            merger.write("test.pdf")
            merger.close()

#running that method extract
    def extract(self):
        resource_manager = PDFResourceManager()
        fake_file_handle = io.StringIO()
        converter = TextConverter(resource_manager, fake_file_handle, laparams=LAParams())
        page_interpreter = PDFPageInterpreter(resource_manager, converter)

        with open('test.pdf', 'rb') as fh:
            for page in PDFPage.get_pages(fh,
                                          caching=True,
                                          check_extractable=True):
                page_interpreter.process_page(page)

            text = fake_file_handle.getvalue()

        # close open handles
        converter.close()
        fake_file_handle.close()

print(Transform)

最佳答案

我希望您的代码应该将当前目录中的所有 pdf 合并到 test.pdf 中,并打印此合并 pdf 的文本。只需要修改两次,首先替换

print(Transform)

print(Transform().extract())

Transform 本身是一个类,您需要使用 Transform() 创建(实例化)对象。然后你可以调用它的一些方法,比如.extract(),这会运行该类中定义的方法函数。您可以阅读有关类和对象的内容 here .

二、添加

return text

作为 def extract(self) 函数体的最后一行。此返回是必要的,以便 extract 返回从 pdf 中提取的文本,否则它会执行一些工作,但不会返回原始代码中的任何结果。

您可以Run full corrected code here .

关于python - 实现类错误并返回 0 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63985379/

相关文章:

r - 创建并保存 R 的默认密码本为 pdf

node.js - 无法让部署的 pdf 模块工作 dpd-pdf

vb.net - 如何在VISTA中调出嵌入在windows.forms.webbrowser控件中的PDF

python - 在数据框的单个列上进行 Pandas 逻辑索引以分配值

python - 警告 : [W108] The rule-based lemmatizer did not find POS annotation for the token 'This'

python - Pytables 检查列是否存在

python - 测试矩阵是对称矩阵还是斜对称矩阵?

pdf - 查找重复的 PDF

java - PDF文档可以包含 "unreachable"内容吗?

python - 如何修复OpenCV Numpy错误,对象不可迭代