我有一个PDF,其中包含表格,文本和一些图像.我想在PDF中的表格中提取表格.
现在我正在手动从页面中查找表格.从那里我捕获该页面并保存到另一个PDF.
import PyPDF2
PDFfilename = "Sammamish.pdf" #filename of your PDF/directory where your PDF is stored
pfr = PyPDF2.PdfFileReader(open(PDFfilename, "rb")) #PdfFileReader object
pg4 = pfr.getPage(126) #extract pg 127
writer = PyPDF2.PdfFileWriter() #create PdfFileWriter object
#add pages
writer.addPage(pg4)
NewPDFfilename = "allTables.pdf" #filename of your PDF/directory where you want your new PDF to be
with open(NewPDFfilename, "wb") as outputStream:
writer.write(outputStream) #write pages to new PDF
Run Code Online (Sandbox Code Playgroud)
我的目标是从整个PDF文档中提取表格.
我有一堆PDF - 可能有数百或数千.它们的格式不一样,但是它们中的任何一个都可能有一个或多个表,其中包含我想要收集到单独数据库中的有趣信息.
当然,我知道我必须写一些东西来做这件事.Perl是我的选择 - 或者也许是Java.我不关心什么语言,只要它是免费的(或者在免费试用期间便宜以确保它适合我的目的).
我正在看CAM :: Parse(使用草莓Perl),但我不确定如何使用它来定位和提取文件中的表.我想我确实偏爱Perl,但实际上我想要一些可靠的工作,并且相当容易进行字符串操作.
这样的事情有什么好办法?我是第一个,所以如果java(或python等)有更好的钩子,现在是了解它的好时机.一般指针好; 首选代码将是首选代码.
我有数千个 PDF 文件,仅由表格组成,结构如下:
然而,尽管结构相当合理,但我无法在不丢失结构的情况下阅读表格。
我尝试了 PyPDF2,但数据完全混乱。
import PyPDF2
pdfFileObj = open(pdf_file.pdf, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pageObj = pdfReader.getPage(0)
print(pageObj.extractText())
print(pageObj.extractText().split('\n')[0])
print(pageObj.extractText().split('/')[0])
Run Code Online (Sandbox Code Playgroud)
我也尝试过 Tabula,但它只读取标题(而不是表格的内容)
from tabula import read_pdf
pdfFile1 = read_pdf(pdf_file.pdf, output_format = 'json') #Option 1: reads all the headers
pdfFile2 = read_pdf(pdf_file.pdf, multiple_tables = True) #Option 2: reads only the first header and few lines of content
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
我想从pdf 文档中提取一个表
我尝试了pdf的路线 - > html - >提取表.转换为html时我上面提到的pdf产生垃圾,可能是因为字体,文件不是英文的.
因为这样的解决方案需要从URL上面提到的,这将有表,但不总是在相同的位置未来的PDF工作用x提取PDF和y坐标是不是一种选择.
请帮忙,
提前致谢.