将PDF文件中的数据读入R中

Jus*_*tin 49 linux pdf r pdf-scraping scrape

这甚至可能!?!

我有一堆遗留报告需要导入数据库.但是,它们都是pdf格式.有没有R可以阅读pdf的软件包?或者我应该将其留给命令行工具?

报告是在excel中进行的,然后是pdfed,所以它们有规则的结构,但很多空白的"细胞".

Jus*_*tin 31

所以......即使在相当复杂的桌子上,这也让我很接近.

bmi pdf下载样本pdf

library(tm)

pdf <- readPDF(PdftotextOptions = "-layout")

dat <- pdf(elem = list(uri='bmi_tbl.pdf'), language='en', id='id1')

dat <- gsub(' +', ',', dat)
out <- read.csv(textConnection(dat), header=FALSE)
Run Code Online (Sandbox Code Playgroud)


Car*_*oft 21

只是警告可能希望提取数据的其他人:PDF是容器,而不是格式.如果原始文档不包含实际文本,而不是文本的位图图像,或者甚至可能比我想象的更丑陋的东西,除了OCR之外什么都不能帮助你.

最重要的是,在我的悲伤经历中,无法保证创建PDF文档的应用程序的行为都相同,因此表格中的数据可能会或可能不会按所需顺序读出(因为文档的方式是建).要小心.

可能会让一对研究生为您转录数据更好.他们很便宜:-)

  • 机械土耳其?:-) (14认同)
  • 人类很糟糕.我知道,因为我是一个,我知道很多其他人.他们擅长三件事:解决新问题; 创造力(音乐,艺术和文学); 和人际关系的情感支持或说服力.他们不能依赖转录. (4认同)

Ben*_*Ben 10

目前包大谈特谈为获取文本的PDF文件进行的是pdftools(继任者Rpoppler,上面提到的),在Linux,Windows和OSX的伟大工程:

install.packages("pdftools")
library(pdftools)
download.file("http://arxiv.org/pdf/1403.2805.pdf", "1403.2805.pdf", mode = "wb")
txt <- pdf_text("1403.2805.pdf")

# first page text
cat(txt[1])

# second page text
cat(txt[2])
Run Code Online (Sandbox Code Playgroud)


hrb*_*str 6

您也可以(现在)使用新的(2015-07)pacakge Rpoppler:

Rpoppler::PDF_text(file)
Run Code Online (Sandbox Code Playgroud)

它包括3个函数(4个,真的,但只有一个只是让你获得PDF对象的ptr):

  • PDF_fonts PDF字体信息
  • PDF_info PDF文件信息
  • PDF_text PDF文本提取

(发布作为帮助新搜索者找到包裹的答案).