是否可以解析R中PDF文件的文本数据?有does not appear to be a relevant package for such extraction,但有没有人在R?
中尝试或看到过这种情况在Python there is PDFMiner中,但如果可能的话,我想将此分析保留在R中。
有什么建议吗?
答案 0 :(得分:29)
Linux系统有pdftotext
,我取得了合理的成功。默认情况下,它会从商品foo.txt
创建foo.pdf
。
也就是说,文本挖掘包可能有转换器。 quick rseek.org search似乎与您的搜索结果一致。
答案 1 :(得分:26)
这是一个非常旧的主题,但为了将来参考:pdftools R包从PDF中提取文本。
答案 2 :(得分:9)
一位同事让我接触到这个方便的开源工具:http://tabula.nerdpower.org/。安装,上载PDF,然后在PDF中选择需要数据化的表格。不是R的直接解决方案,但肯定比手工劳动更好。
答案 3 :(得分:9)
纯粹的R解决方案可能是:
library('tm')
file <- 'namefile.pdf'
Rpdf <- readPDF(control = list(text = "-layout"))
corpus <- VCorpus(URISource(file),
readerControl = list(reader = Rpdf))
corpus.array <- content(content(corpus)[[1]])
然后你将在一个数组中有pdf行。
答案 4 :(得分:5)
tabula PDF表格提取器应用程序基于基于Java JAR包{4}的命令行应用程序。
tabula-extractor提供了一个R包装器,可以很容易地将路径传递到PDF文件并从数据表中提取数据。
Tabula可以很好地猜测表格的位置,但您也可以通过指定页面的目标区域来判断页面的哪个部分。
可以从多个页面中提取数据,如果需要,可以为每个页面指定不同的区域。
有关示例用例,请参阅:R tabulizer package。
答案 5 :(得分:4)
install.packages("pdftools")
library(pdftools)
download.file("http://www.nfl.com/liveupdate/gamecenter/56901/DEN_Gamebook.pdf",
"56901.DEN.Gamebook", mode = "wb")
txt <- pdf_text("56901.DEN.Gamebook")
cat(txt[1])
答案 6 :(得分:2)
我使用外部实用程序进行转换并从R调用它。所有文件都有一个带有所需信息的前导表
将路径设置为pdftotxt.exe并将pdf转换为文本
exeFile <- "C:/Projects/xpdfbin-win-3.04/bin64/pdftotext.exe"
for(i in 1:length(pdfFracList)){
fileNumber <- str_sub(pdfFracList[i], start = 1, end = -5)
pdfSource <- paste0(reportDir,"/", fileNumber, ".pdf")
txtDestination <- paste0(reportDir,"/", fileNumber, ".txt")
print(paste0("File number ", i, ", Processing file ", pdfSource))
system(paste(exeFile, "-table" , pdfSource, txtDestination, sep = " "), wait = TRUE)
}
答案 7 :(得分:0)
这里有一个使用R和API从PDF提取数据的程序包。一次可以转换的PDF数量没有限制:https://github.com/expersso/pdftables