【问题标题】:How do I convert RMarkdown ioslides presentations to 2-up PDFs programmatically?如何以编程方式将 RMarkdown ioslides 演示文稿转换为 2-up PDF?
【发布时间】:2018-12-31 15:40:23
【问题描述】:

我使用 rmarkdown 生成 ioslides HTML 演示文稿,使用自定义 css。这一点很棒,我喜欢它。我的问题是关于生成演示文稿的“注释”版本。

我看到从这些幻灯片中获取 2up PDF A4 笔记的唯一方法是从 Safari 中打印出来,方法是单击打印...,然后单击横向,然后布局 2 页,然后边框 = 细线,然后另存为。然后找到正确的文件夹等。但是,它会获得正确的格式和字体,并且 Webkit 会呈现 Chrome 或其他解决方案不会呈现的东西。

这对于一份副本来说很好。但我现在一次定期更新 9 到 30 个单独的演示文稿,所有的点击都让我发疯,尤其是当我只需要更新一个小问题,并且我想检查所有文件是否已重新生成为 PDF 时。

是否有任何解决方案可以快速以编程方式生成一组 RMarkdown ioslides 演示幻灯片的 2-up PDF 版本?或者,我们将不胜感激。

【问题讨论】:

    标签: pdf webkit rstudio r-markdown ioslides


    【解决方案1】:

    您可以使用webshot 包来捕获 HTML 图形的输出并将其保存到图形设备(PDF、PNG、PDF)。你可以阅读它here

    假设您有一个名为 testPres.Rmd 的文件存储在以下脚本的同一工作目录中,它会将报告转换为 PDF:

    # Setup
    install.packages("webshot")
    webshot::install_phantomjs()
    
    library(webshot)
    library(rmarkdown)
    
    rmdshot("testPres.Rmd", "document.pdf")
    

    创建了幻灯片的 PDF 后,我们现在需要将它们转换为两页的 PDF。可能有一种更优雅的方式来执行此操作,但您可以使用非常基本的 R Markdown 文档。以下脚本会将所有幻灯片加载到两页布局中:

    ---
    output: pdf_document
    header-includes:
      - \usepackage{pdfpages}
    papersize: a4paper
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = TRUE)
    ```
    
    \includepdf[pages={1-},scale=0.75, nup=1x2]{document.pdf}
    

    我不确定这是否完全满足您的确切要求,但希望足以让您朝着正确的方向前进。

    您可以查看pdfpages LaTeX 页面的文档以自定义幻灯片的 PDF 在文档中的显示方式(添加边距、边框等)

    【讨论】:

    • 谢谢 Mikey - 这听起来是个不错的解决方案。我认为制作我所有单独的幻灯片然后将它们胶乳成大型 pdf 文档的 makefile 可能是理想的。我不知道 webshot 包,所以希望它能捕捉到我所有古怪的输入。非常感谢。
    • 太好了,如果您满意,您可以投票并标记为已接受吗?随意调整此解决方案并发布您的最终结果:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2017-04-08
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多