我有多个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()
})
我知道Datatables(被动)不能用于静态PDF文档。 Webshot是一个修复程序,但它会破坏格式化。
我有一个RMarkdown文件,它为我生成PDF和HTML格式的报告。 knitr包使用“webshot”但不保留HTML文档的格式。我能把它建成RMarkdown吗?
还有其他选择吗?
答案 0 :(得分:0)
您的代码对我来说没有开箱即用,因为您还没有包含所需的库。由于这是一般的DataTable问题,因此我将使用帮助页面中生成的DateTable(请参阅?data.table
)。
执行此操作的一种方法是使用knitr。下面是一个可以保存在文本文件中的最小可行示例,例如:的 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转换为乳胶表并打印出来然后按原样包含在文档中(结果=&#34; asis&#34;)。
保存此文件后,必须运行knitr才能创建 dt.tex ,例如:
Rscript -e 'library(knitr);knit("dt.Rnw")'
然后可以将其编译成pdf( dt.pdf ),其中包含格式良好的表格(显然这可以扩展为托管多个表格):
pdflatex dt.tex