Я пытаюсь захватить мультиграфический PDF-файл из функции. В R это дает мне трехстраничный PDF:
pdf(file='test.pdf', onefile=TRUE)
lapply(1:3, 'plot')
dev.off()
Использование OpenCPU:
$ curl http://localhost:6977/ocpu/library/base/R/lapply -H 'Content-Type: application/json' -d '{"X":[1,2,3], "FUN":"plot"}'
/ocpu/tmp/x0dc3dad0/R/.val
/ocpu/tmp/x0dc3dad0/graphics/1
/ocpu/tmp/x0dc3dad0/graphics/2
/ocpu/tmp/x0dc3dad0/graphics/3
/ocpu/tmp/x0dc3dad0/stdout
/ocpu/tmp/x0dc3dad0/source
/ocpu/tmp/x0dc3dad0/console
/ocpu/tmp/x0dc3dad0/info
Я могу получить любую из отдельных страниц в виде одностраничного PDF-файла, но не в виде одного комбинированного файла.
Два возможных обходных пути, не без проблем:
Используйте
par(mfrow)
,layout()
или аналогичный механизм, хотя в конце концов это создаст изображение монстра (в моем коде я имею дело с более чем тремя изображениями).Используйте
tempfile
, создайте файл Rmd на лету, верните имя файла в сеансе (еще не тестировали это) и используйте обработку файлов Rmd в OpenCPU. К сожалению, теперь это использует геометрию LaTeX и нумерацию страниц (для этого существуют обходные пути).
Есть ли другие способы сделать это?