我对 r 和 Shiny 仍然很陌生,而且我对原本应该是简单逻辑的东西感到困惑。我正在尝试在 imageOutput 小部件中显示 pdf 文件,但没有运气。有人可以引导我朝着正确的方向前进吗?
样本 ui.R
shinyUI(pageWithSidebar(
mainPanel(
selectInput("sel_ed",
label = "View outputs for Ecodistrict:",
choices = c(244,245,247,249),
selected = NULL,
multiple = FALSE),
imageOutput("imp_pdf",width="500px",height="500px")
))
示例服务器.R
shinyServer(function(input, output, session) {
importance <- function(inputSpecies){
img_dir <- pdf(paste(inputSpecies,"\\models\\MATL\\MATRF_Importance",sep=""))
}
output$imp_pdf <- renderImage({importance(input$sel_ed)})
})
我得到的大多数错误都与预期的字符向量参数或原子向量有关。我知道 Shiny 或多或少设计用于渲染和显示图像或绘图,但必须有一种方法来显示已经在本地驱动器上的 pdf。
最佳答案
在包含 server.R 和 ui.R 脚本的原始目录中创建一个名为 www 的文件夹。将 PDF 放在 www/文件夹中,然后使用类似于以下代码的内容:
在 server.R 中:
shinyServer(function(input, output) {
observeEvent(input$generate, {
output$pdfview <- renderUI({
tags$iframe(style="height:600px; width:100%", src="foo.pdf")
})
})
})
在 ui.R 中:
shinyUI(fluidPage(
titlePanel("Display a PDF"),
sidebarLayout(
sidebarPanel(
actionButton("generate", "Generate PDF")
),
mainPanel(
uiOutput("pdfview")
)
)
))
关于r - 以 Shiny 的方式显示来自本地驱动器的 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19469978/