I am trying to use a download button in the input column of a flex dashboard to download a collection of charts rendered as *.pdf. The entire dashboard works just fine, and the download button renders properly; however, when I click the download button, the file that does get downloaded does not contain the intended charts. The warning I get from my Mac when it tries to open the file is that the file might be damaged or that it's a form that Preview (or Acrobat) doesn't recognize. The following is a highly redacted form of my code that contains the problematic sections. Any guidance on how to get charts to download in a flexdashboard as charts download in Shiny?
---
title: "My Model"
runtime: shiny
output:
flexdashboard::flex_dashboard:
theme: cerulean
vertical_layout: scroll
orientation: rows
---
```{r global, include=FALSE}
library(shiny)
library(shinyBS)
library(shinyWidgets)
library(flexdashboard)
library(tidyverse)
library(readxl)
library(knitr)
library(RColorBrewer)
source("MLHS_Distributions.R")
source("interp.R")
source("tooltips.R")
```
```{r Inputs}
downloadButton("downlaodReport","Price Comparision Report")
downloadHandler(filename = function() {
filename = paste0("ModelReport-", Sys.Date(), ".pdf")
},
content = function(file) {
pdf(file, width = 8.5, height = 6.14)
renderPrint({output$gg.prob.win.price()})
dev.off()
}
)
```
```{r priceProbWinChart}
renderPlot({
gg.prob.win.price <- --ggplot code--
plot(gg.prob.win.price)
})
```