我创建了一个涉及简单侧边栏布局的Shiny应用程序。主面板包含四个图和一个表,这些图根据用户指定的某些参数创建和呈现。我正在尝试添加“下载按钮”,以便用户可以下载(和/或打印)主面板上显示的所有这些图表。到目前为止,我已经为ui.R
找到了这个conditionalPanel(
condition = "input.returnpdf == true",
strong("PDF size (inches):"),
sliderInput(inputId="w", label = "width:", min=3, max=20, value=8, width=100, ticks=F),
sliderInput(inputId="h", label = "height:", min=3, max=20, value=6, width=100, ticks=F),
br(),
downloadLink('pdflink')
)
,这适用于server.R
plotInput <- reactive({
if(input$returnpdf){
pdf("plot.pdf", width=as.numeric(input$w), height=as.numeric(input$h))
plot(rnorm(sample(100:1000,1)))
dev.off()
}
plot(rnorm(sample(100:1000,1)))
})
output$myplot <- renderPlot({ plotInput() })
output$pdflink <- downloadHandler(
filename <- "myplot.pdf",
content <- function(file) {
file.copy("plot.pdf", file)
}
)
但这不太有用。如何修改此类代码,以便R获取整个当前主面板的“屏幕截图”并将其导出为PDF文件?