首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将DataTable呈现为PDF文档

将DataTable呈现为PDF文档
EN

Stack Overflow用户
提问于 2017-09-11 17:58:37
回答 1查看 891关注 0票数 1

我有多个DataTables,我需要打印在一个PDF文档。HTML文档的工作原理是保留格式。

代码语言:javascript
运行
复制
    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中吗?

还有别的选择吗?

EN

回答 1

Stack Overflow用户

发布于 2017-09-12 08:06:31

因为您没有包含所需的库,所以您的代码不会超出我的范围。由于这是一个一般的DataTable问题,我将使用在帮助页面中生成的DateTable (参见?data.table)。

其中一种方法是使用针织品。下面是一个最低限度可行的示例,可以保存在文本文件中,例如dt.Rnw

代码语言:javascript
运行
复制
\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,例如:

代码语言:javascript
运行
复制
Rscript -e 'library(knitr);knit("dt.Rnw")'

然后可以将其编译成一个pdf (dt.pdf),其中包含一个格式良好的表(显然可以扩展到托管多个表):

代码语言:javascript
运行
复制
pdflatex dt.tex
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46161732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档