我有多个DataTables,我需要打印在一个PDF文档。HTML文档的工作原理是保留格式。
artistTable1.data <- reactive({
df <- artistData.filtered()
df <- df[c("old_level", "level", "reason", "rank", "apacDominant")]
# names(df) <- c("ARTIST (click for wikipedia)","LEVEL", "REASON", paste0("RANK (of ", my.sum(artistData$hasLevel), " ranked artists)"), "RISK FLAG(S)")
datatable(df, filter = "none", escape = FALSE,
rownames = FALSE, caption = "HIGH LEVEL DATA SUMMARY",
options = list(columnDefs=list(list(targets = 0:3, class="dt-center")),
paging = FALSE, searching = FALSE, autoWidth = FALSE, lengthChange = FALSE, info = FALSE, ordering = FALSE),
class = 'cell-border hover compact')
})
output$artistTable1 <- renderDataTable({
artistTable1.data()
})
我知道数据(反应性)不能在静态PDF文档中使用。网射是一个修复程序,但它破坏了格式化。
我有一个RMarkdown文件,它为我生成PDF和HTML格式的报告。针织品包使用“web快照”,但不保留HTML文档的格式。我能把它构建到RMarkdown中吗?
还有别的选择吗?
发布于 2017-09-12 00:06:31
因为您没有包含所需的库,所以您的代码不会超出我的范围。由于这是一个一般的DataTable问题,我将使用在帮助页面中生成的DateTable (参见?data.table
)。
其中一种方法是使用针织品。下面是一个最低限度可行的示例,可以保存在文本文件中,例如dt.Rnw
\documentclass{article}
\begin{document}
<<dt,results="asis">>=
library(data.table)
library(xtable)
DT = data.table(x=rep(c("b","a","c"),each=3), y=c(1,3,6), v=1:9)
xtable(DT,caption="cap")
@
\end{document}
这将R代码嵌入到乳胶环境中。xtable将data.dable对象DT转换为latex表并打印它,然后将其包含在文档中(result="asis")。
保存此文件后,必须运行针织品才能创建dt.tex,例如:
Rscript -e 'library(knitr);knit("dt.Rnw")'
然后可以将其编译成一个pdf (dt.pdf),其中包含一个格式良好的表(显然可以扩展到托管多个表):
pdflatex dt.tex
https://stackoverflow.com/questions/46161732
复制相似问题