我有一个交互式Rmarkdown
文档,其中嵌入了一些根据用户输入生成图表的闪亮应用。
在对生成的图表感到满意之后,我想保存报告(以便它变为静态)。
我已在浏览器(Chrome)中打开报告,并尝试打印到pdf。它有点工作,但是一些数字在分页符时被切成两半。
有谁知道打印/保存此类报告的最佳方式是什么?
答案 0 :(得分:2)
我认为这有点棘手,但这是我在我的应用上使用pdf或png格式保存html plot
的内容。
wkhtmltopdf和wkhtmltoimage是开源(LGPLv3)命令 线工具使用HTML将HTML呈现为PDF和各种图像格式 Qt WebKit渲染引擎。这些完全是"无头"也不要 需要显示或显示服务。
这样,您就可以将html
文件转换为pdf
或img
在我的ShinyApp
中,我在downloadHandler()
函数中使用了这样的内容:
system("wkhtmltopdf --enable-javascript --javascript-delay 2000 plot.html plot.pdf")
我认为您的示例只需使用以下内容转换html
system("wkhtmltopdf yourFile.html yourFile.pdf")
答案 1 :(得分:0)
您可以在ui.R上提供下载按钮:
downloadButton('report', 'Download PDF'
)
和相应的server.R代码:
library(knitr)
output$report = downloadHandler(
filename = function() {
paste("Report_", <date/identifier>, ".pdf", sep="")
},
content = function(file) {
rnw <- normalizePath('input.rnw') # assuming you wrote the code to display the graphs etc in this file
owd <- setwd(tempdir())
on.exit(setwd(owd))
file.copy(rnw, 'input.rnw')
out = knit2pdf(rnw, clean=TRUE)
file.rename(out, file)
}
)