【问题标题】:Can pdfplumber extract tables for my scanned pdfs?pdfplumber 可以为我扫描的 pdf 提取表格吗?
【发布时间】:2021-12-29 11:09:34
【问题描述】:

(我知道 pdfplumber 主要面向计算机生成的 PDF。 但是,在我花了几天时间从扫描的 PDF 中手动输入数据之前,我想我会问一下 pdfplumber 是否能以某种方式帮助我。)

我的问题:
我已经从历史书籍中扫描了 PDF。
示例:Data from statistical yearbook
现在我正在尝试从扫描的 PDF 中提取表格(示例中右下角的那个)。

我第一次尝试用 pdfplumber 提取表格没有成功。
例如

with pdfplumber.open('test.pdf') as pdf:
page = pdf.pages[0]
tables = page.extract_tables()
print(tables)

返回None

有没有希望我能够以非手动方式提取此类数据? 还是我应该把它吸干?

提前感谢您的任何帮助或建议!

【问题讨论】:

  • 非常感谢您的帮助!我自己扫描了这些书。我并没有真正注意到出血是一个问题。再做一次,我可以简单地在两者之间添加一张空白纸。但是,重新扫描所有书籍至少要花费我一天的时间和一些运输费用。输入所有内容只需要 2-4 天。因此,努力尝试似乎不太值得花时间。考虑到这一点,我可能只是扮演打字员(在我的情况下打字员 == 程序员 ;-))。

标签: python pdf data-extraction historical-db pdfplumber


【解决方案1】:

不,扫描的 pdf 里面实际上包含一个图像。您可以阅读如下所示的图像,但这无助于您获取数据。您可以使用一些可以分析图像的工具来获取数据,但这是一个不同的故事。

from pikepdf import Pdf, PdfImage

filename = "sample-in.pdf"
example = Pdf.open(filename)

for i, page in enumerate(example.pages):
    for j, (name, raw_image) in enumerate(page.images.items()):
        image = PdfImage(raw_image)
        out = image.extract_to(fileprefix=f"{filename}-page{i:03}-img{j:03}")

此外,此question 可以帮助您了解在您必须获取该数据时使用什么以及如何使用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 2020-05-01
    • 2023-04-11
    • 2015-11-28
    • 1970-01-01
    • 2022-07-20
    • 2017-04-02
    • 1970-01-01
    相关资源
    最近更新 更多