LaiteX PDF与来自shinyapp网站的图像

Phi*_*p R 7 latex r pandoc r-markdown shiny

我曾经能够在闪亮的应用程序生成的PDF报告中包含来自URL的图像![](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解决方法正常运行?
  • 如何在shinyapps中将PDF图像包含在PDF中?

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)
Run Code Online (Sandbox Code Playgroud)

server.R chunk触发报告生成

## 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)
    }
)
Run Code Online (Sandbox Code Playgroud)

Phi*_*p R 6

最新版本的rmarkdown要求在本地下载图像.添加pandoc_args: ["--extract-media","."]到YAML标头适用于本地rmarkdown文件,但不适用于闪亮的应用程序环境.

降低版本1.9以下的rmarkdown将使图像能够自动下载.

或者,可以使用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")
Run Code Online (Sandbox Code Playgroud)