首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取pdf内容在python中不起作用。

提取pdf内容在python中不起作用。
EN

Stack Overflow用户
提问于 2022-07-22 06:22:04
回答 1查看 86关注 0票数 -1

我正在使用python请求库从http://mutation.land.gov.bd/pages/doc?data=21192a2等urls中收集数百万可公开使用的pdfs。然后我试着提取pdf中的表格,然后用熊猫把这些摘录的文本写进csv。但问题是,这些摘录的文本是混乱或破损的孟加拉语文本,这是没有用的。如何从这些pdfs中正确地提取文本并写入csv。

到目前为止我使用的代码-

代码语言:javascript
复制
response = requests.get(url,headers=headers)
pdf_txt = ''
with io.BytesIO(response.content) as open_pdf_file:
    #global pdf_txt
    read_pdf = PyPDF2.PdfFileReader(open_pdf_file)
    if read_pdf.isEncrypted:
        read_pdf.decrypt("")
    else:
        pass
    
    pdf_txt = read_pdf.getPage(0).extractText()
#Save the pdf if not blank
if "DCR ২২০০০০০" not in pdf_txt:
    with open(pdfname_dcr, 'wb') as f:
        f.write(response.content)
    print(f"Collected DCR {decimal_code_dcr}")

在这里,pdf_txt充斥着破碎或混乱的孟加拉语。因此,很难从该pdf_txt变量中提取数据。

我也试过了,但都失败了-

代码语言:javascript
复制
#Tabula
dfs = tabula.read_pdf(pdfname_dcr, pages='all',java_options='-Dfile.encoding=UTF8')
tabula.convert_into(pdfname_dcr, "output.csv", output_format="csv", pages='all')

,实际上,我希望从这些pdfs中正确地提取数据到csv中。

EN

回答 1

Stack Overflow用户

发布于 2022-07-23 15:10:23

一般来说,这个地区的字体包括Devanagari、孟加拉语-Assamese、Gujarati、Odia、Telugu、Jav式和其他几个脚本,在许多PDF应用程序中都会遇到类似的问题,这里只是数千个布局问题中的一个,https://github.com/DavBfr/dart_pdf/issues/198,虽然与提取不一样,但它显示了潜在的合成问题。Adobe承认,回顾过去,国际RTL和国外结扎都没有得到很好的处理。

这些字符通常被合成成两个字符,因此我们通常会看到,在纯文本中,它看起来是গণ+জাত+ী+বাংলােদশ+সরকার或গণজাতীবাংলােদশসরকার,或者更糟的是গণ�জাত�ী বাংলােদশ সরকার/গণ�জাত�ীবাংলােদশসরকার,或者最糟糕的是,拉丁文中的胡言乱语。

但是,这是搜索所需的文本。

所以我怀疑这就是你所说的“乱七八糟”的意思,除了使用更丰富的文本方法之外,在简单的纯文本中没有什么可以做的。

因此,从您的html来源PDF,我们经常看到网站使用Woff字体,不能应用到PDF打印。在这两种情况下,表面表示都与组合组件不同。

因此,在纯文本提取中,与获取一样好。

因此,要重新组合符号,您需要一个本地富编辑器来合并单独的符号,并注入缺失的符号。

甚至PDF专家也不能将这些字符提取为丰富的文本。

在下面的评论中,提出了第一个缺陷是第三个字符প্র在গণপ্রজাতন্ত্রী中丢失了,这只是几个不同的问题之一,所以这种情况是由于可见轮廓和存储代码映射之间的相关性差。当要求预演上述adobe尝试中的基本内容时,我们看到有一个空白,但在纯文本中用গণ�জাত�ী表示,单词的右端是一个与结扎相关的独立问题,通常RTL和LTR也可能是导致无序字符的一个因素。

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

https://stackoverflow.com/questions/73075898

复制
相关文章

相似问题

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