我希望能够识别特定类别中的所有字体(sans,sans-serif),这可以从Google的网络字体查看器中找到,但似乎无法通过API工作。
https://developers.google.com/webfonts/docs/developer_api#Details
答案 0 :(得分:2)
我不认为API支持这一点。如果检查从API返回的JSON文件,则不会显示此信息。 Google Web Font小组也提出了类似的问题,但没有答案。
https://groups.google.com/forum/?fromgroups=#!topic/googlefontdirectory-discuss/U2cROKUjRqM
答案 1 :(得分:2)
简短回答:从this gist
获取 更长的答案:这是一个很小的scala程序来执行此操作。您需要从http://code.google.com/p/googlefontdirectory结帐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"
)
}
获取完整的字体列表