shiny - 如何使用 rmarkdown 将带有嵌入图像的表格格式化为 pdf 格式?
问题描述
我编写了一个脚本来生成一个rmarkdown
报告,该报告在输出为 pdf 格式时将包含数字结果的 QR 码附加到数据框中(请参阅我的kable
相关帖子)。QC 代码作为图像矢量生成,并在生成报告时附加到数据框中的新列。
这很好用,但是要以 .pdf 格式输出表格,我必须设置kable(df, format = "markdown")
,否则 QR 码的图像不会放在输出表中,只是文件路径文本。这很好用,除非我想使用 kableExtra 格式选项修改表格,这要求kable
格式为latex
.
在我在下面列出的示例代码中,您可以看到当kable(df, format = "markdown")
图像格式正确但kableExtra
格式不起作用时。kable(df, format = "latex")
相反,当kableExtra
格式选项有效但图像无效时。
---
title: "QR Code in Column"
author: "me"
date: "2019/01/20"
output: pdf_document
---
```{r mychunk, echo = FALSE, fig.path = "qr/", results = 'asis', fig.show='hide'}
library(knitr)
library(qrcode)
library(kableExtra)
df <- data.frame(test = LETTERS[1:2],
result = as.character(round(rnorm(2), 2)),
stringsAsFactors = F)
res.qr <- lapply(df$result, function(qr) {
qrcode_gen(qr) # create qrcodes
nrow(qr) # save number of rows of df
})
path <- paste0(opts_current$get("fig.path"), opts_current$get("label"), "-")
total <- 0
df$Code <- paste0("![](", path, (1:length(res.qr)) + total, ".pdf){width=72px}")
```
```{r echo = FALSE}
# This example works to generate the desired output, but the kableExtra options won't work.
kable(df, format = "markdown") %>%
add_header_above(c(" ", "Class 1" = 2))
```
```{r echo = FALSE}
# This example works to use the kableExtra formatting options, but the QR Code isn't an image.
kable(df, format = "latex") %>%
add_header_above(c(" ", "Class 1" = 2))
```
我希望能够使用 .pdf 文件格式化输出表kableExtra
,但是我愿意接受任何其他可能有效的选项!
解决方案
推荐阅读
- javascript - UnhandledPromiseRejectionWarning: TypeError: firestore.collection(...).doc is not a function (Firebase, Firestore)
- node.js - 如何从回调中返回json消息而不是触发错误| NestJs 文件上传
- java - 杰克逊包含一个空字符串的键
- jquery - 为什么我的 BootBox 似乎无法访问?
- c - scanf() 将它之前的变量更改为 ASCII 值,如果在将其用于 "%d" 后设置为 "%s"
- wso2-am - 违反 wso2 api manager 3.2.0 分析仪表板唯一约束 (APIM_ANALYTICS_DB.SYS_C009268)
- python - 使用 pd.factorize 来查找分类变量之间的相关性
- sql - 如何将 SSMS 中的数据导出为 sql?
- google-apps-script - 如何通过 Google Apps 脚本为没有编辑权限的用户访问不同 Google 电子表格上的数据?
- arduino - 如何使我的 FFT 库代码工作?它吐出完全错误的频率