有字库SDK

一、介绍

1.中文动态子集化服务

由于中文字体文件过大,有字库采用“按需截取”(根据页面内容把字体中不需要的字型删除掉)的方案,将中文字体压缩成和英文字体一样小巧玲珑,该方案也叫做“动态子集化(Dynamic Subsetting)”。

有字库专注于动态子集化方案的应用与优化,本文档即是有字库面向后端程序提供的动态子集化服务的SDK文档。

用户通过后端程序调用有字库的SDK,提交页面内容,有字库根据所提交的内容生成相对应的专属子集字体文件。当内容在前台显示时,引用这个子集字体文件,即可使页面内容产生预期的字体效果。

2.工作流程

   ①用户用后端程序调用SDK,提交动态内容到有字库的子集化(裁切)服务器
   ②服务器接收到所提交内容后,根据内容裁剪出对应的小字体文件,并转换为4种通用字体格式(woff、eot、ttf、svg)
   ③服务器将所有字体文件上传至阿里云CDN
   ④服务器用文件的CDN路径拼出能兼容所有浏览器的@font-face语句
   ⑤服务器通过SDK将@font-face语句返回给用户的后端程序

3.@font-face语句

SDK的返回值主要内容是@font-face语句,@font-face语句是CSS3中的一个功能模块,是所有浏览器天然支持的CSS语句。它的作用是将一个远程字体文件加载到当前页面,并且定义成一个字体,使得前端页面能够像使用本地字体一样使用该字体。
所以,@font-face语句是实现在线字体效果的核心代码。

4. 显示字体效果

用户可以将@font-face语句与内容相对应保存至数据库,以便在内容被加载时,该语句能跟随内容一起加载到前端页面,从而使内容显示字体效果;
用户也可以不保存@font-face语句:有字库允许用户自定义字体存放路径,当需要显示字体效果时,可以根据自己所定义的路径拼组出@font-face语句,然后将语句输出到前端页面,即可使内容显示字体效果。

二、参数及返回值

SDK其实是针对不同语言(.Net、Java、PHP),将有字库的API接口打包封装,形成更方便用户调用有字库的动态子集化服务的工具(您也可以直接通过API接口方式自己写Post方法来调用有字库的动态子集化服务),SDK将实体类型的参数转为API接口字符串类型的参数,然后用内置的Post方法提交到对应的API接口,当收到API接口的返回值(json类型)时,将返回值实体化。

因此SDK的参数与返回值的数据结构与API接口是一样的,可以参考API接口文档上关于参数与返回值的介绍。

API接口的返回值是json数据,而SDK的返回值则是实体类,两者的字段结构相同。

API接口的参数需要用户将数据拼接成一个字符串,而SDK的参数是实体化的类,用户将数据赋值给实体化类,两者的字段结构相同。

三、下载

SDK-Net(兼容.NET Framework version 3.5及以上所有版本)
SDK-Net(兼容.NET Framework version 4.5及以上所有版本;增加对异步调用[使用async和await]的支持)
SDK-Java
SDK-PHP  
SDK-NodeJs

四、GitHub文档教程

Sample-Net        Sample-Java            Sample-PHP         Sample-NodeJS

五、Demo

Demo-Net       Demo-Java       Demo-PHP      Demo-NodeJs      

请先同意托管协议
展开