【问题标题】:r shiny pdf display is blankr闪亮的pdf显示为空白
【发布时间】:2021-09-23 08:43:43
【问题描述】:

我正在尝试在闪亮的应用程序中显示导入的 pdf,下面是可重现的代码,但导入后 pdf 查看器是空白的,也没有显示任何错误。不知道如何让它工作。

library(tidyverse)
library(shiny)
library(pdftools)

ui <- fluidPage(
  titlePanel("Demo"),
  fileInput("file_import", "Upload Files", multiple = T, accept = ".pdf"),
  tableOutput("files"),
  uiOutput("pdfview")
)

server <- function(input, output, session) {
  output$files <- renderTable({input$file_import})
  
  observeEvent(input$file_import,{
    
    output$pdfview <- renderUI({
      
        tags$iframe(style = 'height: 680px; width: 960px;scrolling=yes',
                    src = input$file_import$datapath)
      
    })
    
  })
}

shinyApp(ui, server)

【问题讨论】:

    标签: r pdf iframe shiny


    【解决方案1】:

    以下工作正常。

    library(shiny)
    
    ui <- shinyUI(fluidPage(
      
      titlePanel("Testing File upload"),
      
      sidebarLayout(
        sidebarPanel(
          fileInput('file_input', 'upload file ( . pdf format only)', accept = c('.pdf'))
        ),
        
        mainPanel(
          uiOutput("pdfview")
        )
      )
    ))
    
    server <- shinyServer(function(input, output) {
      
      observe({
        req(input$file_input)
        
        file.copy(input$file_input$datapath,"www", overwrite = T)
        
        output$pdfview <- renderUI({
          tags$iframe(style="height:600px; width:100%", src="0.pdf")
        })
        
      })
      
    })
    
    shinyApp(ui = ui, server = server)
    

    请确保您有一个 www 文件夹并重新启动 RStudio。它应该在浏览器中本地工作。然后尝试部署并测试它 - 在确保您保存 app.R 的文件夹下有一个 www 文件夹之后。

    【讨论】:

    • 我在 SO 上也看到过这个解决方案,但它没有用。当我导入 pdf 时,pdf 视图显示“未找到”。
    • 请注意,您正在加载的pdf文件被复制到www文件夹,然后显示。您确定此代码(原样)不适用于显示 pdf 文件吗?
    • 我复制粘贴你的代码并运行它,上传一个存储在本地驱动器上的pdf,显示为“未找到”。它对你有用吗?我已经在 mac 和 windows 上测试过,在 safari 和 chrome 上测试过,都不起作用,都显示“未找到”谢谢
    • 您应该能够在您的 www 文件夹中找到0.pdf。请检查一下。如果您没有名为 www 的文件夹,则应在保存 R 程序的当前工作文件夹下创建它。这段代码在 RStudio 中对我来说很好用。
    • 请确保您有 www 文件夹并重新启动 RStudio。它应该在本地工作。然后尝试部署它并对其进行测试(确保在保存 app.R 的文件夹下有 www 文件夹之后)。这段代码对我来说很好。用户无需直接访问 www 文件夹,应用运行时屏幕上会显示 pdf 文件。
    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 2014-06-16
    • 2019-06-08
    • 2021-09-26
    • 2017-03-23
    • 1970-01-01
    相关资源
    最近更新 更多