gpt4 book ai didi

google-webfonts - 如何使用 Google Webfonts API 按类别对字体进行排序?

转载 作者:行者123 更新时间:2023-12-02 22:33:37 28 4
gpt4 key购买 nike

我希望能够识别特定类别(sans、sans-serif)中的所有字体,这可以通过 Google 的网络字体查看器实现,但似乎无法通过 API 实现。

https://developers.google.com/webfonts/docs/developer_api#Details

最佳答案

简答:从this gist获取

更长的答案:这是一个小的 scala 程序来执行此操作。您需要从 http://code.google.com/p/googlefontdirectory 中 check out googlefontdirectory 项目在下面的程序中使用它并更改 basePath:

import com.google.gson.GsonBuilder
import org.apache.commons.io.IOUtils
import java.io.FileInputStream
import collection.mutable
import collection.JavaConverters._

object Webfonts {
private val basePath = new java.io.File("/path/to/googlefontdirectory")

def main(args: Array[String]) {
val fontDetailsList = mutable.ListBuffer.empty[FontDetails]
val categoryMap = mutable.Map.empty[String, java.util.List[String]]

val gson = new GsonBuilder().setPrettyPrinting().create()
for (font <- FontsList.fonts ) {
fontDetailsList += gson.fromJson(IOUtils.toString(new FileInputStream(new java.io.File(basePath, font))), classOf[FontDetails])
}

fontDetailsList.filter(_.subsets.contains("latin")).foreach((font) => {
val a = categoryMap.getOrElseUpdate(font.category, new java.util.ArrayList[String]())
a.add(font.name)
})

val json = gson.toJson(categoryMap.asJava)
println(json)
}


case class FontDetails(name: String, license: String, category: String, size: Int, subsets: Array[String]) {
override def toString = category + " : " + name
}

}

object FontsList {
val fonts = Array(
"./apache/aclonica/METADATA.json",
"./apache/calligraffitti/METADATA.json",
"./apache/cherrycreamsoda/METADATA.json",
"./ufl/ubuntucondensed/METADATA.json",
"./ufl/ubuntumono/METADATA.json"

)
}

您可以在 https://gist.github.com/4085914 获得完整的字体列表。

关于google-webfonts - 如何使用 Google Webfonts API 按类别对字体进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11807467/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com