我开发了一个闪亮的应用程序,基本上只显示pdf文件。这在Safari浏览器中就像我的Mac上的魅力,但不是在OSX Firefox中。 在Windows上,它似乎根本不适用于IE(或Edge)或Firefox。 一位同事在Linux上对它进行了测试,它可以在Firefox和Chrome中运行。
这是指向闪亮应用https://butterlab.imb-mainz.de/EvoAnnotate/
的链接有没有人建议我能做什么?例如,我希望显示与PNG相比的PDF,因为PNG的文件大小要大得多,而且分辨率总是有限的。
作为一个可重复的例子,这里有一些代码。它希望在工作目录中有一个名为test.pdf
的文件。
ui <- shiny::fluidPage(
imageOutput("myImage")
)
server <- function(input, output, session) {
output$myImage <- renderImage({
list(src = 'test.pdf',
contentType = 'application/pdf',
width = 960,
height = 680,
alt = 'test.pdf')
},
deleteFile=FALSE)
}
shinyApp(ui = ui, server = server)
修改
我现在为所有PDF文件创建了一个png版本,并在没有显示PDF的情况下为用户提供了一个开关。不是最好的解决方案,但也许有人可以建议更具互动性的东西?也许使用javascript来检查文件是否显示?
答案 0 :(得分:1)
它不起作用,因为PDF本身并不是严格意义上的图像,而renderImage
会尝试在网页上的<img>
标记内显示该对象。我的想法是,显示PDF的浏览器是异常的,而不是标准的。更广泛地搜索如何在网页上显示PDF显示一种方法是使用<iframe>
。 (see here)
因此,实现此目标的一种方法是在<img>
标记与<iframe>
output$myImage <- renderUI({
if (input$toggle == "PDF") {
tags$iframe(style = 'height: 680px; width: 960px;',
src = 'test.pdf')
} else if (input$toggle == "PNG") {
tags$img(style = 'height: 680px; width: 960px;',
src = 'test.pdf')
}
})