Shiny UI に PDF ビューアー (Web ブラウザーのデフォルトの PDF ビューアー、たとえば mozilla の pdf.js) を埋め込むには、src が PDF へのパスとなる iframe を使用できます。
インターフェイスに iframe を含めるには、次の 2 つの方法があります。
iframe
Ui では、次のように絶対 src 属性を持つタグを直接追加できます。
tags$iframe(style="height:600px; width:100%", src="http://localhost/ressources/pdf/R-Intro.pdf"))
または、サーバーの ui から URL を取得iframe
し、入力 URL を含むタグを記述して、UI の htmlOutput に HTML コードを返します。
うい:
textInput("pdfurl", "PDF URL")
htmlOutput('pdfviewer')
サーバー:
output$pdfviewer <- renderText({
return(paste('<iframe style="height:600px; width:100%" src="', input$pdfurl, '"></iframe>', sep = ""))
})
ページが HTTP(S) プロトコルで読み込まれる場合 (Shiny アプリの場合)、セキュリティ上の理由から、ローカル ファイルを「file:」URL でフレーム化できないことに注意してください。locals pdf を表示する場合は、http(s):
URL を使用してアクセスする必要があるため、それらを www ディレクトリ (ローカル Web サーバー) に保存し、URL を使用してファイルにアクセスする必要がありhttp(s):
ます (URL は のようなものになりますhttp://localhost/.../mypdf.pdf
)。私の例の2番目のiframe。(その後、fileInputを直接使用することはできません。フォーマットする必要があります)
Ui.R :
library(shiny)
row <- function(...) {
tags$div(class="row", ...)
}
col <- function(width, ...) {
tags$div(class=paste0("span", width), ...)
}
shinyUI(bootstrapPage(
headerPanel("PDF VIEWER"),
mainPanel(
tags$div(
class = "container",
row(
col(3, textInput("pdfurl", "PDF URL"))
),
row(
col(6, htmlOutput('pdfviewer')),
col(6, tags$iframe(style="height:600px; width:100%", src="http://localhost/ressources/pdf/R-Intro.pdf"))
)
)
)
))
Server.R :
shinyServer(function(input, output, session) {
output$pdfviewer <- renderText({
return(paste('<iframe style="height:600px; width:100%" src="', input$pdfurl, '"></iframe>', sep = ""))
})
})
PDF ビューアのある Web ページ:

この助けを願っています。