R Сантехник, разместивший PDF - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь получить доступ к PDF через запрос HTTP HTTP с помощью R Plumber, прочитать его с помощью пакета tabulizer и ответить PDF в формате JSON.Я отправляю PDF-файл размером 53 КБ через Postman на мой маршрут и получаю сообщение об ошибке:

Ошибка в normalizePath (path.expand (path), winslash, mustWork).

Мой код маршрута R API приведен ниже:

#' @post /tab
#' @json
function(req){
  library("tabulizer")
  f <- req$postBody
  extract_tables(f)

}

Когда я использую функцию extract_tables () с локальным путем к PDF, который я использую, он отлично работает как маршрут получения.

#' @get /tab
#' @json
function(){
  library("tabulizer")
  f <- "C:/Users/kelse/Desktop/Rscripts/Tessaract/table.pdf"
  extract_tables(f)
}

Кто-нибудь знает, как разместить pdf-файл через Plumber и получить к нему доступ в функции?

1 Ответ

0 голосов
/ 07 августа 2019

Вы можете попробовать с помощью @ serializer получить сообщение через HTTP

#* @serializer contentType list(type="application/pdf")
#* @get /pdf
function(){
  tmp <- tempfile()
  pdf(tmp)
  plot(1:10, type="b")
  text(4, 8, "PDF from plumber!")
  text(6, 2, paste("The time is", Sys.time()))
  dev.off()

  readBin(tmp, "raw", n=file.info(tmp)$size)
}
...