首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyMuPDF -如何在python中使用PyMuPDF从非结构化PDF中提取数据?

PyMuPDF -如何在python中使用PyMuPDF从非结构化PDF中提取数据?
EN

Stack Overflow用户
提问于 2022-10-31 21:54:24
回答 2查看 160关注 0票数 0

我遵循关于如何使用PyMuPDF从非结构化PDF中提取数据的指南。

https://www.analyticsvidhya.com/blog/2021/06/data-extraction-from-unstructured-pdfs/

我得到了一个AttributeError:当我遵循代码时,'NoneType‘对象没有属性'rect’错误,并且不确定发生了什么,因为我对Python是新手。

代码语言:javascript
复制
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-2-7f394b979351> in <module>
      1 first_annots=[]
      2 
----> 3 rec=page1.first_annot.rect
      4 
      5 rec

AttributeError: 'NoneType' object has no attribute 'rect'

---------------------------------------------------------------------------

代码

代码语言:javascript
复制
import fitz
import pandas as pd 
doc = fitz.open('Mansfield--70-21009048 - ConvertToExcel.pdf')
page1 = doc[0]
words = page1.get_text("words")
words[0]

first_annots=[]

rec=page1.first_annot.rect

rec

#Information of words in first object is stored in mywords

mywords = [w for w in words if fitz.Rect(w[:4]) in rec]

ann= make_text(mywords)

first_annots.append(ann)

def make_text(words):

    line_dict = {} 

    words.sort(key=lambda w: w[0])

    for w in words:  

        y1 = round(w[3], 1)  

        word = w[4] 

        line = line_dict.get(y1, [])  

        line.append(word)  

        line_dict[y1] = line  

    lines = list(line_dict.items())

    lines.sort()  

    return "n".join([" ".join(line[1]) for line in lines])

print(rec)
print(first_annots)
EN

Stack Overflow用户

发布于 2022-11-02 14:17:36

此问题似乎与您使用的PDF文件有关。我不知道你是如何从你分享的指南中拿出同样的pdf的。

如果您保存了这些图像并将其导出为PDF,则可以预期以下2种行为:

在导出到pdf后,

  • page1.first_annot将返回None,因为示例图像中的边框似乎不起作用。如果您试图在导出的PDF中重新绘制那些边框,它将给出第一个边界box.
  • Regardless的结果,如果您试图调用page1.get_text("words"),在这种情况下它将无法工作。它将给出空的结果。

我建议用你从谷歌那里得到的pdf样本来尝试一下,看看结果。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74269493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档