如何在与R Shiny应用程序相同的窗口中打开PDF文件?

问题描述 投票:0回答:1

如何在R Shiny应用程序的同一窗口中加载PDF文件?

这里是一个例子:

library(shiny)

ui <- fluidPage(
   navbarPage("Demo",
              tabPanel("Overview", fluidPage(fluidRow("Overview page"))),
              tabPanel("PDF file", fluidRow(uiOutput("load_pdf_file")))))

server <- function(input, output) {

  # 1. Load PDF file
  output$load_pdf_file <- renderUI({

    # 1.1. This loads pdf file in a 'new' window
    browseURL("http://www.africau.edu/images/default/sample.pdf")

    # 1.2. How to load pdf file in the 'same' window where R Shiny app works
    #      Expect to see pdf file on the page in 'PDF file' section
    # ...
  })

}

shinyApp(ui = ui, server = server)
r url browser shiny
1个回答
2
投票

[我所知道的方法,不依赖于提供PDF,它使用的是在传统网页中使用的标准HTML方法,并带有shiny代码js包装器将其放置在iFrame中。

[使用这种方法,在tabPanel中设置一个iFrame,并给它一个尺寸(我选择了任意一个),以决定是否滚动,使用src为它提供pdf文件的路径。当然,条件是您的PDF文件可以通过某种指向外部世界的本地路径或URL来发现。

library(shiny)

ui <- fluidPage(
   navbarPage("Demo",
              tabPanel("Overview", fluidPage(fluidRow("Overview page"))),
              tabPanel("PDF file", 
                          tags$iframe(style="height:800px; 
                                             width:200%; 
                                             scrolling=no", 
              src="https://your-path/your-file.pdf"))))
© www.soinside.com 2019 - 2024. All rights reserved.