üzerinden knitr belgesine yükleme PDF belgeleri oluşturmak için Shiny ve knitr bileşimini kullanıyorum.Resmi parlak
Şu anda kullanıcının, oluşturulan belgeye yerleştirilecek resmi yüklemesine izin verecek bir özellik eklemek istiyorum. Ancak, gerçekten sıkışmış durumdayım çünkü giriş resminin yolunu alamıyorum. Birisi bana yardım edebilir mi?
Basit bir örnek:
Uygulama:
library(knitr)
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fileInput("picture", label = 'Picture'),
downloadButton('report', label = 'Download PDF')
),
mainPanel()
)
)
server <- function(input,output){
picture <- reactive({
input$picture[,4]
})
output$report = downloadHandler(
filename = "test.pdf",
content = function(file){
picture = picture()
out = knit2pdf(input = 'test.Rnw', compiler = 'xelatex', clean = TRUE)
file.rename(out, file)
},
contentType = 'application/pdf'
)
}
shinyApp(ui = ui, server = server)
ve .Rnw
belge: Ben sadece geçici resim yolunu bilmiyorum çünkü '\includegraphics[height=3in]{', picture,'}
açıkçası, soruna neden olan
\documentclass{article}
\begin{document}
Put picture here:
<<echo = FALSE , message = F, results='asis'>>=
cat(paste('\\includegraphics[height=3in]{', picture,'}'))
@
\end{document}
Bölüm bir.
1) seçtiğiniz bir klasöre geçici dosya kopyalama ve bu görüntüyü kullanmak: Eğer (bu durumda R ise
observe({
if (is.null(input$picture)) return()
picture<-"your/final/path/to/disk/uploadImage.jpg" # OR do a PASTE with the PATH and the upload file name
file.copy(input$picture$datapath, picture)
if(file.exists(picture)){
# PROCESS THE IMAGE IF NEEDED
}
picture<<-picture # sometimes needed to R to see the variable outside the observe scope
})
2)
yüklenen dosya yolu girişi $ resim datapath' –
Evet, $ ama geçici dizinin yolunu mi ve nasıl çalışır hale getirmek için hiçbir fikrim yok 'dır. Dahası, $ datapath kodumdaki [, 4] ile aynı. –
'.Rnw' dosyanızda' paste 'ile 'paste' değiştirmeyi deneyin, aksi takdirde dosya adından sonra resim boşluk kalır ve resim bulunmaz. – NicE