提问人:Subaru Spirit 提问时间:11/17/2022 最后编辑:Subaru Spirit 更新时间:11/18/2022 访问量:99
R Shiny 如何从控制台显示状态消息 (pdf_ocr_text)
R Shiny how to show status messages from the console (pdf_ocr_text)
问:
例如,当我从pdftools使用时:,它将在R控制台中显示状态,如下所示。pdf_ocr_text
text1 <- pdf_ocr_text("0.pdf", dpi = 300)
Converting page 1 to 0_1.png... done!
Converting page 2 to 0_2.png... done!
Converting page 3 to 0_3.png... done!
Converting page 4 to 0_4.png... done!
但是当我在 Shiny 应用程序中使用它时,我如何显示此状态?因为我希望用户看到它正在被处理,而不是在他们单击按钮时什么都没有显示(这可能需要一段时间才能完成)?
在下面的可重现代码中,您可以将任何 pdf 文件导入其中,但您需要创建一个名为该文件夹的文件夹,该文件夹应位于 R 文件的同一文件夹中。还要在外部浏览器中运行应用程序,否则无法正常工作。www
library(tidyverse)
library(shiny)
library(pdftools)
library(tesseract)
library(tidytext)
library(reactable)
library(shinyFeedback)
library(shinyjs)
library(shinyalert)
ui <- shinyUI(fluidPage(
useShinyjs(),
useShinyalert(),
shinyFeedback::useShinyFeedback(),
sidebarLayout(
sidebarPanel(
titlePanel("Demo"),
fileInput("file_import", "Upload Files ( . pdf format only)",
multiple = T, accept = ".pdf"),
disabled(actionButton("ocr_button","OCR (click this when nothing shows up)",
class = "btn-danger",
icon=icon("fa-sharp fa-solid fa-triangle-exclamation",
lib = "font-awesome"))),
textOutput("sometext"),
tableOutput("files")
),
mainPanel(
uiOutput("pdfview"),
reactableOutput("test")
)
)
))
server <- function(input, output, session) {
### display the pdf ########################################################
x = reactiveVal(1)
observeEvent(input$file_import,{
enable("ocr_button")
file.rename(input$file_import$datapath[x()], "0.pdf")
file.copy("0.pdf","www", overwrite = T)
output$pdfview <- renderUI({
tags$iframe(style="height:1200px; width:100%", src="0.pdf")
})
})
observeEvent(input$ocr_button, {
### OCR ###########################################################
text1 <- reactive({pdf_ocr_text("0.pdf", dpi = 300)})
######################################################################
output$sometext = renderText({
text1()
})
})
}
shinyApp(ui, server)
答: 暂无答案
评论
cat