如何在RShiny应用程序中使用自定义字体

问题描述:

我想将自定义字体合并到我的Rshiny应用程序中。我有一个预感的代码将在标签$风格,但没有实际的代码,以包括这一点。如何在RShiny应用程序中使用自定义字体

示例代码:

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) 

例如起见,假设我想在网络上使用任何自定义字体在那里。

+0

(小备注 - 以防万一,如果你不知道,有一个很好的包装[shinythemes](https://rstudio.github.io/shinythemes /)其中包含7个不错的主题) –

+0

@UnnamedUser,谢谢。不过,我想使用特定的自定义字体,而这是我想要更改的唯一内容。 –

+1

哪一种字体?就像你已经安装的那个一样?你还用什么系统? Windows/Mac/Linux的字体内容略有不同。 –

这应该有所帮助。

首先,您需要从http://www.fontspace.com/gunarta/surabanglus下载字体,然后单击带有ttf扩展名的文件并单击安装来安装它。这里我添加了标签来控制默认的正文字体,以及使用“id标签”来控制特定控件中的字体和背景颜色的标签。

还有其他的方法可以使用单独的CSS文件等来做到这一点。但这是快速和容易,不太脏。

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) 

屈服这样的:

enter image description here

+0

这看起来不错,而且如果我只是从上面复制你的代码,它就可以工作。但是,我无法使用我的实际字体在计算机上工作。标签$ style(HTML('#body {font-family:“surabanglus”,Georgia,Serif')), tags $ style(HTML('# Tab one {font-family:“surabanglus”,Georgia,Serif}'))' –

+0

最好保留问题和回答简短而甜蜜,这已经是一个非常成功的问题和答案,所以我建议你只是标记它纠正并发布有关该问题的另一个问题。会符合每个人的利益。 –