将.pdf转换为.txt

5

这个问题在Stackoverflow上并不新鲜,但我确信我错过了一些显而易见的东西。

我正在尝试将一些.pdf文件转换为.txt文件,以便对它们进行文本挖掘。我基于这个优秀的脚本,来实现我的方法。.pdf文件中的文本不是由图像组成的,因此不需要OCR技术。

# Load tm package
library(tm)

# The folder containing my PDFs
dest <- "./pdfs"

# Correctly installed xpdf from http://www.foolabs.com/xpdf/download.html

file.exists(Sys.which(c("pdfinfo", "pdftotext")))
[1] TRUE TRUE

# Delete white spaces from pdfs' names
sapply(myfiles, FUN = function(i){
  file.rename(from = i, to =  paste0(dirname(i), "/", gsub(" ", "", basename(i))))
})

# make a vector of PDF file names
myfiles <- list.files(path = dest, pattern = "pdf",  full.names = TRUE)

lapply(myfiles, function(i) system(paste('"C:/Program Files/xpdf/bin64/pdftotext.exe"', 
paste0('"', i, '"')), wait = FALSE)) 

它应该在dest文件夹中创建任何.pdf文件的.txt副本。我检查了路径,检查了路径中的空格,检查了xpdf常见安装问题,但没有任何反应。
这是我正在工作的存储库。如果有用的话,我可以粘贴SessionInfo。提前致谢。

如果您在命令行上输入命令,程序是否能正常工作? - Jongware
抱歉回复晚了。我刚刚尝试了一下,但是没有任何反应。 - Worice
1
可以使用pdftools R包作为替代吗? - Peter Ellis
@PeterEllis 谢谢您的建议,下次我一定会尝试。 - Worice
1个回答

1
晚回答:
但是我最近发现,使用当前版本的tm(0.7-4),如果您安装了pdftools(install.packages("pdftools")),则可以直接将pdf读入语料库中。
library(tm)

directory <- getwd() # change this to directory where pdf-files are located

# read the pdfs with readPDF, default engine used is pdftools see ?readPDF for more info
my_corpus <- VCorpus(DirSource(directory, pattern = ".pdf"), 
                               readerControl = list(reader = readPDF))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接