PyPDF 忽略某些数据的问题
Problems with PyPDF ignoring some data
希望得到一些帮助,因为我找不到解决方案。
我们目前有很多通过阅读 PDF 文件的人手动输入数据,我被要求找到一种方法来减少这个时间。我的解决方案是将 PDF 转换为更易于阅读的格式,然后使用 grep 删除标准字段(只留下数据)。然后将其上传到模板中,然后上传到 SAP。
但是,主要问题出现在第一个障碍 - 将 PDF 转换为 txt 文件。我使用的代码如下 -
import sys
import pyPdf
def getPDFContent(path):
content = ""
pdf = pyPdf.PdfFileReader(file(path, "rb"))
for i in range(0, pdf.getNumPages()):
content += pdf.getPage(i).extractText() + "\n"
content = " ".join(content.replace(u"\xa0", " ").strip().split())
return content
f = open('test.txt', 'w+')
f.write(getPDFContent("Adminform.pdf").encode("ascii", "ignore"))
f.close()
这有效,但是它忽略了 PDF 文件中的一些数据。为了向您展示我的意思,此 PDF 页面 -
http://s23.postimg.org/6dqykomqj/error.png
从第一部分(性别、职位、姓名)产生以下内容 -
*职务:*法定名字:*您护照或出生证明上显示的名字和姓氏(如果适用)。地址:*法定姓氏:*您护照或出生证明上的姓氏
基本上,我要捕获的实际数据没有被转换。
有人解决这个问题吗?
谢谢,
一般来说,将 pdf 转换为文本是个坏主意。它几乎总是一团糟。
有 linux 实用程序可以执行您已实施的操作,但我不希望它们做得更好。
我可以建议 tabula
你可以在
找到它
它用于通过手动划定 table 的边界从 pdf 中提取 tables。但是 运行 在没有 table 的 pdf 上会输出保留某些格式的文本。
有一些自动化,但有限。
参考
https://github.com/tabulapdf/tabula-extractor/wiki/Using-the-command-line-tabula-extractor-tool
此外,这里可能不完全相关,您可以使用openrefine
来管理杂乱的数据。参考
希望得到一些帮助,因为我找不到解决方案。
我们目前有很多通过阅读 PDF 文件的人手动输入数据,我被要求找到一种方法来减少这个时间。我的解决方案是将 PDF 转换为更易于阅读的格式,然后使用 grep 删除标准字段(只留下数据)。然后将其上传到模板中,然后上传到 SAP。
但是,主要问题出现在第一个障碍 - 将 PDF 转换为 txt 文件。我使用的代码如下 -
import sys
import pyPdf
def getPDFContent(path):
content = ""
pdf = pyPdf.PdfFileReader(file(path, "rb"))
for i in range(0, pdf.getNumPages()):
content += pdf.getPage(i).extractText() + "\n"
content = " ".join(content.replace(u"\xa0", " ").strip().split())
return content
f = open('test.txt', 'w+')
f.write(getPDFContent("Adminform.pdf").encode("ascii", "ignore"))
f.close()
这有效,但是它忽略了 PDF 文件中的一些数据。为了向您展示我的意思,此 PDF 页面 -
http://s23.postimg.org/6dqykomqj/error.png
从第一部分(性别、职位、姓名)产生以下内容 -
*职务:*法定名字:*您护照或出生证明上显示的名字和姓氏(如果适用)。地址:*法定姓氏:*您护照或出生证明上的姓氏
基本上,我要捕获的实际数据没有被转换。
有人解决这个问题吗?
谢谢,
一般来说,将 pdf 转换为文本是个坏主意。它几乎总是一团糟。
有 linux 实用程序可以执行您已实施的操作,但我不希望它们做得更好。
我可以建议 tabula
你可以在
它用于通过手动划定 table 的边界从 pdf 中提取 tables。但是 运行 在没有 table 的 pdf 上会输出保留某些格式的文本。
有一些自动化,但有限。 参考
https://github.com/tabulapdf/tabula-extractor/wiki/Using-the-command-line-tabula-extractor-tool
此外,这里可能不完全相关,您可以使用openrefine
来管理杂乱的数据。参考