Генерация PDF текущей веб-страницы в Shiny - PullRequest
0 голосов
/ 20 февраля 2020

Можно ли создать печатный PDF-файл в Shiny без рендеринга всего объекта (например, это решение: Сохранить карту листовки в Shiny )?

И еще как использование вывода, уже отображенного в пользовательском интерфейсе, но реорганизация их с использованием указанного для этой цели c CSS файла?

Вот пример того, что я ' я пытаюсь распечатать:

library(shiny)
library(leaflet)
library(leaflet.extras)
library(tidyverse)
library(sf)

#Create T0New data
lat <- c(49.823, 49.823, 58.478, 57.478, 45.823)
lng <- c(-10.854,-10.854,-10.854,2.021,2.02)
date_start_min <- c(123,125,135,168,149)
T0New <- data.frame(lat,lng)

ui <- fluidPage(

  leafletOutput("map", height = "50vh"),
  textInput("dateStart","Date start (from 123 to 149)",value = ""),
  textInput("dateEnd","Date end (from 123 to 149)",value = ""),
  plotOutput("distribPlot", height = "47vh",
             brush = brushOpts(id = "distribPlot_brush", direction = "x", resetOnNew = FALSE))
)

server <- function(input, output, session) {

  #filtrer les données par attribut du graphique
  filteredGraphData <- reactive({

    currentlyFiltered <- T0New

    if(!is.null(input$distribPlot_brush)){
      thisSel <- input$distribPlot_brush
      currentlyFiltered <- currentlyFiltered %>% 
        filter(date_start_min >= thisSel$xmin, date_start_min <= thisSel$xmax)
    }
      return(currentlyFiltered)
  })


  #Sortie map
  output$map <- renderLeaflet({
    leaflet()%>%
      addProviderTiles(providers$OpenTopoMap)
  })

  observe({
      mapData <- filteredGraphData()
      mapProxy <- leafletProxy("map", session = session, data = mapData)
      mapProxy %>%
        clearGroup('A') %>%  
        addCircleMarkers(
          data = mapData,
          lat = mapData$lat,
          lng = mapData$lng,
          radius = 5,
          color = 'red',
          stroke = F,
          fillOpacity = 1,
          group = 'A'
        )
  })


  #Sortie graph
  output$distribPlot <- renderPlot({

    distribPlot <- ggplot(T0New,aes(date_start_min)) +
      geom_density(col = "#053144", fill = "#43a2ca", alpha = 0.3, adjust = 0.75)

    return(distribPlot)
  })
}

# Create Shiny app ----
shinyApp(ui = ui, server = server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...