2016-05-23 18 views
2

Ich möchte eine benutzerdefinierte Schriftart in meine Rshiny App integrieren. Ich habe eine Ahnung, der Code würde in Tags $ Stil gehen, aber nicht den eigentlichen Code, um dies zu umfassen.So verwenden Sie eine benutzerdefinierte Schriftart in einer RShiny App

Beispielcode:

ui <- fluidPage(
     tags$style(), 
     column(12, 
       dataTableOutput("testtab") 
      ) # close column 
) #close fluidpage 

server <- function(input, output, session) { 
    output$testtab <- 
     DT::renderDataTable({ 
           tab <- data.frame(a = 1:10, b = 11:20, c = 21:30) 
           dat.tab <- datatable(tab) %>% formatPercentage('a', 0) %>% 
                  formatCurrency(1:ncol(tab), '$') 
           return(dat.tab) 
          }) # close renderDataTable 
} # close server 

shinyApp(ui=ui, server=server) 

Zum Beispiel willen, lassen Sie uns sagen, ich will da draußen jede benutzerdefinierte Schriftart verwenden, auf dem Netz.

+0

(Kleine Bemerkung - nur für den Fall, wenn Sie nicht wissen, dass es ein schönes Paket ist [shinythemes] (https://rstudio.github.io/shinththemes /) welches 7 schöne themen enthält) –

+0

@UnnamedUser, danke. Ich möchte jedoch eine spezielle benutzerdefinierte Schriftart verwenden, und das ist die einzige Sache, die ich ändern möchte. –

+1

Welche Schrift? Wie in einem, den Sie bereits installiert haben? Welches System benutzt du? Schriftarten sind etwas anders für Windows/Mac/Linux. –

Antwort

3

Dies sollte helfen.

Zuerst müssen Sie die Schriftart von http://www.fontspace.com/gunarta/surabanglus herunterladen und installieren, indem Sie auf die Datei mit der ttf Erweiterung klicken und auf Installieren klicken. Hier habe ich Tags hinzugefügt, um die Standardschriftart zu steuern, und Tags, die das "ID-Tag" verwenden, um die Schriftarten in bestimmten Steuerelementen und den Hintergrundfarben zu steuern.

Es gibt andere Möglichkeiten, dies mit separaten CSS-Dateien usw. zu tun. Aber das ist schnell und einfach und nicht zu schmutzig.

library(shiny) 
library(dplyr) 
library(DT) 

ui <- fluidPage(
    tags$style(HTML('body {font-family:"Times New Roman",Georgia,Serif; background-color:orange}')), 
    tags$style(HTML('#testtab {font-family:"surabanglus",Georgia,Serif; background-color:lightblue}')), 
    tags$style(HTML('#hello2 {font-family:"Courier",Georgia,Serif; background-color:pink}')), 
    column(12, 
     dataTableOutput("testtab"), 
     actionButton("hello1","Hello There (uses font inherited from body)"), 
     actionButton("hello2","Hello There again (uses Courier)") 

) # close column, 
) #close fluidpage 

server <- function(input, output, session) { 
    output$testtab <- DT::renderDataTable({ 
    tab <- data.frame(a = 1:10, b = 11:20, c = 21:30) 
    dat.tab <- datatable(tab) %>% formatPercentage('a', 0) %>% 
     formatCurrency(1:ncol(tab), '$') 
    return(dat.tab) 
    }) # close renderDataTable 
} # close server 

shinyApp(ui=ui, server=server) 

Nachgeben dies:

enter image description here

+0

das sieht gut aus, und funktioniert, wenn ich nur Ihren Code von oben kopieren. Jedoch kann ich es nicht mit meiner tatsächlichen Schriftart, die ich habe, auf meinem Computer arbeiten. Mein Tab hat zwei Wörter als Titel, vielleicht ist das das Problem: 'Tags $ Stil (HTML ('# body {font-family:" surabanglus ", Georgia, Serif}')), Tags $ Stil (HTML ('# Tab 1 {font-family: "surabanglus", Georgia, Serif})) –

+0

Es ist am besten, Fragen zu beantworten und kurz und knapp zu beantworten, und das war eine ziemlich erfolgreiche Frage und Antwort bereits, also würde ich vorschlagen, dass Sie nur markieren Es korrigiert und posten eine weitere Frage zu diesem. Wäre in jedermanns Interesse. –

Verwandte Themen