r - 带有来自 Shinyapp 中的网络图像的 LaTeX PDF

标签 r shiny latex r-markdown pandoc

我曾经能够将来自 URL 的图像包含在由 Shiny 的应用程序生成的 PDF 报告中 ![](url.com) .几个 Markdown 版本后,我收到以下错误:! Unable to load picture or PDF file https://i0.wp.com/wptavern.com/wp-content/uploads/2016/07/stack-overflow.png?ssl=1对于相同的代码。
Adding pandoc_args: ["--extract-media", "."]YAML在本地下载图像文件,但只能在本地使用 r-markdown文件。

  • Shinyapp 如何存储本地文件以及如何获取extract-media解决方法?
  • 如何在shinyapps的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)
    
    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)
        }
    )
    

    最佳答案

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

    将 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")
    

    关于r - 带有来自 Shinyapp 中的网络图像的 LaTeX PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52652934/

    相关文章:

    重置 Shiny 的 react 计时器

    python - 恢复 Latex 编译错误

    逐行操作、选择助手和 dplyr 中的 mutate 函数

    r - 使用一个共享图例排列 ggsurv 图

    r - 如何在响应式 R Shiny 应用程序中的模块之间引导数据流?

    R Shiny / Shiny 服务器-查找包的问题

    python - 使用 python 导出 Sympy Latex

    latex - 如何拆分 latex 表格中的单元格?

    轴标签与表达式的 R 对齐

    r - 如何将 SQL 间隔字符串转换为 lubridate 持续时间?