这是否可能!?!
我有一堆遗留报告需要导入数据库。但是,它们都是pdf格式。是否有可以阅读pdf的R
个软件包?或者我应该将其留给命令行工具?
报告是在excel中制作的,然后是pdfed,所以它们有规则的结构,但很多空白的“细胞”。
答案 0 :(得分:31)
所以......即使在相当复杂的桌子上也能让我接近。
下载示例pdflibrary(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)
答案 1 :(得分:21)
向可能希望提取数据的其他人发出警告:PDF是容器,而不是格式。如果原始文档不包含实际文本,而不是文本的位图图像,或者甚至可能是比我想象的更丑陋的东西,除了OCR之外什么都不能帮助你。
最重要的是,在我的悲伤经历中,无法保证创建PDF文档的应用程序的行为都相同,因此表中的数据可能会或可能不会按所需顺序读出(由于这种方式该文件已建成)。要小心。
可能会让一对研究生为您转录数据。它们很便宜: - )
答案 2 :(得分:9)
用于从PDF中获取文本的当前包 du jour 是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])
答案 3 :(得分:6)
您也可以(现在)使用新的(2015-07)Rpoppler
pacakge:
Rpoppler::PDF_text(file)
它包含3个函数(4个,真的,但只有一个只能让你获得PDF对象的ptr):
PDF_fonts
PDF字体信息PDF_info
PDF文档信息PDF_text
PDF文字提取(发布作为帮助新搜索者找到包裹的答案)。
答案 4 :(得分:3)
每个zx8754 ...以下工作目录在Win7中使用pdftotext.exe:
library(tm)
uri = 'bmi_tbl.pdf'
pdf = readPDF(control = list(text = "-layout"))(elem = list(uri = uri),
language = "en", id = "id1")