【问题标题】:R-Markdown: Rendering to PDF and appending to existing PDFR-Markdown:渲染为 PDF 并附加到现有的 PDF
【发布时间】:2020-07-20 22:20:14
【问题描述】:

我正在使用 RMarkdown 创建一组 6,000 个字母。我正在使用参数在文档中创建自定义输入。我正在使用循环来呈现 PDF 并按如下方式调用它:

for (i in 1:6000) {
  rmarkdown::render(
    input = "/template/letter.Rmd", 
    output_dir = "/output/",
    output_file = paste0("report", i)
  )
}

现在,这会创建 6,000 个单独的 PDF,但我希望将它放在一个长文档中。有没有人对如何使用rmarkdown::render() 并让它生成的当前 PDF 附加到现有 PDF 有任何建议?例如,如果我设置output_file = report,它将简单地覆盖循环中现有的PDF。

【问题讨论】:

    标签: r pdf r-markdown rendering


    【解决方案1】:

    您可以使用 pdf 文件的工具包合并输出。例如,您可以使用staplr 包:

    library(staplr)
    ofiles <- c()
    for (i in 1:6000) {
     ofile <- rmarkdown::render(
       input =  "/template/letter.Rmd",
       output_dir = "/output/",
       output_file = paste0("report", i)
     )
     ofiles <- c(ofiles, ofile)
    }
    staple_pdf(input_files = ofiles, output_filepath = "/output/all-in-one.pdf")
    

    在 Linux 中,您还可以使用 pdftk 合并 pdf 文件:

    cd /output/
    pdftk report*.pdf cat output all-in-one.pdf
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-08
      • 2011-08-11
      • 2021-11-20
      • 2018-04-04
      • 2016-04-20
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      相关资源
      最近更新 更多