【问题标题】:How do I install custom fonts in shinyapps.io apps?如何在 shinyapps.io 应用程序中安装自定义字体?
【发布时间】:2020-10-22 01:13:35
【问题描述】:

这个问题与易辉在这里给出的答案有关:

https://groups.google.com/g/shinyapps-users/c/0czcsM4vziM/m/GNuyL3ClCgAJ

在指令中,它说:

  1. dir.create('~/.fonts')
  2. 下载字体,例如通过download.file(),到~/.fonts
  3. 运行系统('fc-cache -f ~/.fonts')

在尝试将应用程序部署到 shinapps.io 之前,我已将其放入我的 .app 代码中(就在我的所有 library() 调用之后):

dir.create('~/.fonts') 
download.file('https://github.com/**MY USERNAME**/fonts', '~/.fonts')
system('fc-cache -f ~/.fonts')

如您所见,我已将应用程序所需的所有字体放入我的 github 帐户上的公共存储库中。这是字体 .ttf 文件来自的 URL。但是,我认为我可能误解了方向,因为我从 shinyapps.io 收到此错误:

Error in value[[3L]](cond) : Error sourcing /srv/connect/apps/font/app.R
Calls: local ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted 

我希望使用的字体是“Sarabun”和“Garamond”系列的派生字体。

请问有人可以提供更详细的易辉解决方案吗?任何帮助将不胜感激。如果您还有另一种很高兴听到的解决方案。但是,请注意,“字体样式包”往往不适用于 shinyapps.io,因为它们会在本地查找样式,这违背了它的目的!此外,我希望使用特定的 .ttf 文件。

大家好,

马特

【问题讨论】:

    标签: r github shiny fonts shinyapps


    【解决方案1】:

    URL https://github.com/**MY USERNAME**/fonts 指向存储库概览,而不是文件夹本身,因此您可能只下载该 URL 上的 HTML 页面。

    您需要根据您的操作系统下载存档(Windows 上的 ZIP,Unix 上的 .TAR.GZ)。

    download.file("https://github.com/**USERNAME**/fonts/archive/master.tar.gz", destfile = "fonts.tar.gz")
    
    # or ZIP file on Windows
    download.file("https://github.com/**USERNAME**/fonts/archive/master.zip", destfile = "fonts.zip")
    

    然后你必须提取存档:

    untar("fonts.tar.gz", exdir = "~/.fonts/")
    
    # or with ZIP file on Windows
    unzip("fonts.zip", exdir = "~/.fonts/")
    

    然后你可以在你的脚本中使用它:

    system('fc-cache -f ~/.fonts')
    

    我希望方法是明确的,因为它可能会根据您的操作系统、字体和子文件夹等而有所不同......这样的东西应该可以工作。

    【讨论】:

    • 非常感谢您向我指出这一点!这个答案引起了另一个问题,正常!目前,我有你的解决方案: dir.create('~/.fonts') download.file("github.com**USERNAME**/fonts/archive/master/fonts.zip", destfile = "fonts .zip") unzip("fonts.zip", exdir = "~/.fonts") system('fc-cache -f ~/.fonts') 但是,我的公式(在我的包中)有如下调用:extrafont ::ttf_import(system.file("extdata/fonts", package = "*******")) 修改这些以查看我们在 shinapps.io 上创建的 .fonts 路径的最佳方法是什么?
    • @Dussek 我认为调用extrafont::ttf_import("~/.fonts/") 就足够了,但这又取决于您的目录结构和您的R 代码。如果这不起作用,请随时打开一个包含详细信息的新问题...
    • 非常感谢您的帮助。我已将其包含在我的代码中,并在此处发布了新问题:stackoverflow.com/questions/62771749/…
    猜你喜欢
    • 2020-07-12
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 2013-05-12
    • 2011-03-31
    相关资源
    最近更新 更多