LaTeX PDF с изображениями из Интернета в shinyapp - PullRequest
0 голосов
/ 04 октября 2018

Раньше я имел возможность включать изображения из URL-адресов в отчеты PDF, созданные из блестящих приложений, выполняющих ![](url.com).Несколько версий уценки позже я получаю следующую ошибку: ! Unable to load picture or PDF file https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?ssl=1 для того же кода. Добавление pandoc_args: ["--extract-media", "."] к YAML загружает файл изображения локально, но работает только в локальных r-markdown файлах.

  • Как shinyapp хранит локальные файлы и как получитьextract-media Обходной путь для работы?
  • Как включить веб-изображения в PDF-файлы в shinyapps?

r-markdown пример


title: "Test"
header-includes:
    - \usepackage{graphicx}
    - \usepackage{hyperref}
output:
  pdf_document:
    latex_engine: xelatex
    pandoc_args: ["--extract-media","."]
    number_sections: yes
    keep_tex: yes
classoption: article
papersize: A4
fontsize: 10pt
geometry: margin=0.9in
linestretch: 1.15
---
## R Markdown
![click](https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?ssl=1)

server.Генерация отчета о запуске блока R

## img report
output$downloadImgReport <- downloadHandler(
    filename = function() {
        paste0(format(Sys.time(), '%Y%m%d'),'-WS-CM-image-report-',docounts()$count, '.pdf')
    },
    content = function(file) {
        src <- normalizePath('Untitled.Rmd')
        src1 <- normalizePath('logo.png')
        owd <- setwd(tempdir())
        on.exit(setwd(owd))
        file.copy(src, 'Untitled.Rmd', overwrite = TRUE)
        file.copy(src1,'logo.png')
        library(rmarkdown)
        out <- render('Untitled.Rmd', output_format=pdf_document(latex_engine = "xelatex"))
        writetolog(1,session$token)
        file.rename(out, file)
    }
)

1 Ответ

0 голосов
/ 10 октября 2018

Последняя версия rmarkdown требует, чтобы изображения загружались локально.Добавление pandoc_args: ["--extract-media","."] к заголовку YAML работает для локальных файлов rmarkdown, но не в блестящей среде приложения.

Понижение rmarkdown ниже версии 1.9 позволит автоматически загружать изображения.

В качестве альтернативы, файлы могут быть загружены локально, используя download.file() и ссылку с абсолютным путем.

title: "Test"
header-includes:
    - \usepackage{graphicx}
    - \usepackage{hyperref}
output:
  pdf_document:
    latex_engine: xelatex
    pandoc_args: ["--extract-media","."]
    number_sections: yes
    keep_tex: yes
classoption: article
papersize: A4
fontsize: 10pt
geometry: margin=0.9in
linestretch: 1.15
---
## R Markdown
download.file(url = "https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?ssl=1"), destfile = "stack-overflow.png")
![click]("stack-overflow.png")
...