Установка pdftotext в Windows (для использования с пакетом R, 'tm')

У меня возникли проблемы с использованием пакета R, 'tm' для чтения файлов .pdf. В частности, я пытаюсь запустить следующий код:

library(tm)
filename = "myfile.pdf"

tmp1 <- readPDF(PdftotextOptions="-layout")
doc <- tmp1(elem=list(uri=filename),language="en",id="id1")
doc[1:15]

... что дает мне ошибку:

Error in readPDF(PdftotextOptions = "-layout") : 
  unused argument (PdftotextOptions = "-layout")

Я предполагаю, что это связано с тем, что программа pdftotext (часть xpdf, http://www.foolabs.com/xpdf/download.html) неправильно установлен на моем компьютере, поэтому R не может получить к нему доступ.

Каковы шаги для правильной установки xpdf/pdftotext, чтобы приведенный выше код R мог быть выполнен? (Мне известны уже опубликованные подобные вопросы, однако они не решают ту же проблему)


person SuperUser01    schedule 23.03.2016    source источник
comment
что произойдет, если вы вызовете readPDFбез опции -layout?   -  person Karsten W.    schedule 23.03.2016
comment
попробуйте использовать пакет pdftools. Это позволяет избежать проблем с установкой xpdf.   -  person phiver    schedule 23.03.2016
comment
@Karsten: выполнение кода без параметра -layout выдает следующую ошибку: ››› Ошибка в системе2(pdftotext, c(control$text, shQuote(x), -), stdout = TRUE) : ​​'pdftotext' не найден ‹‹‹   -  person SuperUser01    schedule 23.03.2016
comment
@user3641140 user3641140 Я посмотрю на pdftools, но действительно ли установка xpdf такая большая проблема?   -  person SuperUser01    schedule 23.03.2016
comment
Вы добавили путь xpdf к переменным среды?   -  person Wyldsoul    schedule 23.03.2016
comment
@Wyldsoul я посмотрю на это, спасибо   -  person SuperUser01    schedule 23.03.2016
comment
Установка xpdf совсем не проблема, и это необходимо для этой функции tm. Разархивируйте файл и прочитайте инструкции.   -  person RHertel    schedule 23.03.2016
comment
@RHertel, Wyldsoul У меня по-прежнему возникает та же ошибка... Я распаковал zip-файл в C:\Program Files\xpdf и добавил путь к переменной PATH, точно так же, как в этой инструкции: ссылка   -  person SuperUser01    schedule 23.03.2016
comment
Просто примечание: можете ли вы использовать пакет Rpoppler? Это позволяет сделать примерно то же самое без установки внешнего программного обеспечения. Просто установите пакет Rpoppler и в readPDF() используйте аргумент engine, чтобы установить poppler в качестве механизма извлечения.   -  person    schedule 23.03.2016


Ответы (2)


PdftotextOptions не является параметром readPDF. readPDF имеет параметр control, который ожидает список. Таким образом, правильное использование будет:

if(all(file.exists(Sys.which(c("pdfinfo", "pdftotext"))))) { 
  tmp1 <- readPDF(control = list(text = "-layout"))
  doc <- tmp1(elem=list(uri=filename),language="en",id="id1")
}
person lukeA    schedule 23.03.2016
comment
Кажется, это работает на первый взгляд. Я приму ваш ответ вскоре после дальнейшего изучения. - person SuperUser01; 23.03.2016

Установлен

setwd('C:/xpdf/bin64')                 

Меня устраивает.

person David Ferreira Junior    schedule 13.06.2017