变得灵活编织成 PDF

Getting flextable to knit to PDF

当我想要的只是我的 pdf 中的一些不错的 table 时,我觉得我已经掉进了兔子洞。长话短说,这里是:

我想从 r markdown 打印一些 table 到 PDF。我通常使用 Kable,它工作正常。话虽这么说,这个 table 将有一些非常长的值,以及生成的未知数量的列,我很难指定哪一列的宽度,因为我还不知道在凯布尔。无论如何,这让我想到了 flextable.

当我编织到 html 时,table 看起来很棒,如下所示:

但是我在编织成 pdf 时遇到了问题。我了解到,通过其他堆栈答案,需要将 flextable 保存为要绘制为 pdf 的图像。所以我有这样的代码:

ft <- flextable(x)
ft <- autofit(ft)
tf <- tempfile(fileext = ".png")
## Not run: 
if( require("webshot2") ){
 save_as_image(x = ft, path = "myimage.png")
}

plot(tf)

但一开始它给我的错误是我没有 webshot2 包,所以在遇到一些麻烦后我安装了它(它与我的 R 版本不一致(我在 rstudio.cloud) 然后当我现在尝试 运行 它时,它说

我是不是遗漏了什么明显的东西?如何将 flextable 保存为图像,然后将其绘制在我的 pdf 中?

我在这里也尝试过 Joanna 的解决方案:Is it possible to generate the RTable (FlexTable) in pdf with RMarkdown? 并且 r 告诉我找不到函数“as.html”。即使 flextable 和 htmltools 都已加载。

P.s。鉴于生成 table 的所有代码以及我需要将其编织成 pdf 的事实,提供可重现的数据将非常长,如果有人感兴趣,将提供 rstudio.cloud link

您现在可以在不需要 webshot 包的情况下生成 PDF (flextable >= 0.6.0):

---
title: "Untitled"
output: 
  pdf_document:
    latex_engine: xelatex
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(flextable)
```

```{r}
ft <- flextable(head(airquality))
ft <- autofit(ft)
theme_vader(ft)
```