我有一个大的Shiny应用程序,它有许多提示,然后根据这些输入生成表格和绘图.我不使用rmarkdown或knitr或任何东西来格式化输出.我只使用标准的Shiny元素(sidebarPanel,mainPanel等).对于图和表,我使用标准的反应式renderPlot和renderTable对象.我正在寻找一种简单的方法来获得一个名为"导出为PDF"的按钮,该按钮将页面上的元素导出为PDF文档.
我已经研究过使用knitr和rmarkdown生成一个带有一些花哨格式的文档(参见这里和这里的例子).问题是我似乎需要在一个downloadHandler对象中的Rmd文件或server.R中重新生成表和图,我想避免这种情况.
有没有办法更容易地将页面输出为pdf.更具体地说,有没有办法直接引用Rmd文件中的输出表和图(即输出$对象),这样就不需要生成两次图和表.
编辑:这是一些简化的代码.注意getDataset()是一个响应函数,它根据输入查询数据库.我的目标是简单地添加一个"导出"按钮,用于导出已生成的图和表.(另外作为旁注,有什么方法可以获得在所有被动元素之间共享的被动数据集?即不需要在每个对象中都有ds < - getDataset()?)
服务器
output$hist
ds
# do data transformations
ggplot(ds, aes(val)) +
geom_histogram(binwidth = binSize, aes(fill = ..count..)) +
labs(title = "val dist", x = "val", y = "Count") +
scale_fill_gradient("Count", low = "green", h