如何将html表格打印为pdf?

时间:2018-09-19 11:26:38

标签: r markdown r-markdown

考虑这个简单的例子

library(knitr)
library(kableExtra)
dt <- mtcars[1:5, 1:4]

# HTML table
kable(dt, format = "html", caption = "Demo Table") %>%
  kable_styling(bootstrap_options = "striped",
                full_width = F) %>%
  add_header_above(c(" ", "Group 1" = 2, "Group 2[note]" = 2)) %>%
  add_footnote(c("table footnote"))

enter image description here

在这里,我想要一个非常简单的东西。以pdf(可能以管道方式)打印此表。我希望桌子看起来像这样。

我知道这是html,但是我们能将html页打印到Chrome中的pdf吗?必须有一种方法(我希望)。我不想处理乳胶,也不想创建rnotebook文档。渲染必须来自我裸露的.R脚本。那不可能吗?

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

这是解决部分生成pdf表格的问题的解决方案。您将需要在xtable中调整表格的样式,以获得所需的斑马条纹和合并的列。一般来说,从html到pdf的转换不是那么简单,因此更好的解决方案是首先使用LaTeX生成表(我知道您不希望使用LaTeX,但至少使用R和{将其编译为pdf {1}}努力工作):

xtable

您应该查看https://cran.r-project.org/web/packages/xtable/vignettes/xtableGallery.pdf,以按照自己的方式进行样式设置。祝你好运。

编辑: 似乎您也可以使用library(xtable) dt <- mtcars[1:5, 1:4] filename <- tempfile(fileext = ".tex") capture.output(print(xtable(dt)), file = filename) foo <- readLines(filename) writeLines(c("\\documentclass[hidelinks]{article}", "\\begin{document}", foo, "\\end{document}"), con = filename) tools::texi2dvi(filename, pdf = TRUE)

kabelExtra