【问题标题】:Add page numbers to pdf using pagedown::chrome_print (R package)?使用 pagedown::chrome_print (R包)将页码添加到pdf?
【发布时间】:2020-01-21 20:43:27
【问题描述】:

我正在使用pagedown::chrome_print() 将使用 Rmarkdown 创建的滑动演示文稿转换为 pdf——它比从 Chrome 保存为 PDF 做得更好。但是,尽管研究了帮助文件,但我无法弄清楚如何添加页码。有没有办法做到这一点?

(注意这里的 pagedown 指的是 R 包,而不是 JavaScript markdown 预览器。)

【问题讨论】:

    标签: r pdf r-markdown slidy


    【解决方案1】:

    如果帮助页面在这一点上不清楚,请见谅。

    可以使用 pagedown::chrome_print() 将页眉/页脚选项传递给 Chrome。

    这些选项是 Chrome DevTools 协议为Page.printToPDF method 定义的选项。

    您可以使用 HTML 模板自定义页眉和页脚。 Chrome 还提供以下值:datetitleurlpageNumbertotalPages

    按照此帮助页面上的说明,这里是打印页码的示例:

    library(htmltools)
    
    footer <- div(
      style = "font-size: 8pt; text-align: right; width: 100%; padding-right: 12pt;", 
      span(class = "pageNumber"), "/", span(class = "totalPages")
    )
    
    pagedown::chrome_print(
      "slidy.Rmd", 
      options = list(
        landscape = TRUE, 
        displayHeaderFooter = TRUE, 
        footerTemplate = format(footer, indent = FALSE),
        marginTop = 0,
        marginBottom = 0.4
      )
    )
    

    【讨论】:

    • 完美,正是我所希望的。
    • 注意:至少对我而言,slidy.Rmd 应该是 slidy.html
    【解决方案2】:

    我让它与自定义 CSS 文件一起工作。我创建了一个名为custom.css 的文件并包含在该文件中

    @page  {
      @bottom-right {
        content: counter(page);
      }
    }
    

    然后我将它与其他 pagedown 默认值一起使用,并带有这样的标题

    title: "My Report"
    output:
      pagedown::html_paged: 
        css: ["custom.css", "default-fonts", "default"]
    

    【讨论】:

    • 不会产生html输出吗?
    • 嗯,pagedown 的工作原理是制作 html,然后通过网络浏览器打印到 pdf。至少我是这么理解它的工作原理的。
    • 我认为是对的。所以想法是用html_paged(或者直接通过滑动选项)添加数字,然后使用chrome_print?
    • 我的意思是我完全使用了这个,我在输出中得到了页码。不确定是否有其他方法。
    • 问题在于pagedown::html_paged 产生的输出与slidy_presentation 输出的格式非常不同。我需要找到一种方法将页码添加到原始滑动幻灯片中,或者稍后添加到使用 pagedown::chrome_print 呈现的 pdf 中。
    猜你喜欢
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2022-11-27
    • 2014-02-17
    • 2016-04-25
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多