问题
How can I display DT::datatable objects from a rmarkdown script onto a pdf document? My code so far is breaks down with the following error:
processing file: reportCopy.Rmd
output file: reportCopy.knit.md
Functions that produce HTML output found in document targeting latex output.
Please change the output type of this document to HTML.
Including always_allow_html: yes in the YAML header suppresses the error, but nothing appears on the pdf.
I would be grateful for any help. My code is currently:
---
title: "DT"
output: pdf_document
---
### Chart 1
```{r}
DT::datatable(head(mtcars))
```
( I don't know if it matters, but my datatables are in fact created in a shiny application. Ideally, I would have liked to have the prerendered tables simply dumped into the rmarkdown script... but I switched tactic and now try to render the tables directly in the rmarkdown code)
回答1:
Since knitr v1.13, HTML widgets will be rendered automatically as screenshots taken via the webshot package.
You need to install the webshot package and PhantomJS:
install.packages("webshot")
webshot::install_phantomjs()
(see https://bookdown.org/yihui/bookdown/html-widgets.html)
回答2:
You cannot usedatatable in pdf_document (datatable is interactive, pdf is static), only in html_document!
The only possibility for PDF is to use the kable or for example pandoc.table
--> if You really wanna get the look of datatable and as You said datatable is created in a shiny application, then You can have a look at the webshot package, which is going to create a screenshot of Your datatable from shiny app which You can use further in pdf as a image.
来源:https://stackoverflow.com/questions/44543858/how-to-render-dtdatatables-in-a-pdf-using-rmarkdown