当前位置: 首页 > 软件库 > 其他开源 > 开源字体 >

muruoxi-Check-Font-Copyright

查字体版权,免法律纠纷
授权协议 未知
开发语言 PHP
所属分类 其他开源、 开源字体
软件类型 开源软件
地区 国产
投 递 者 闻人越
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

这个项目可以帮助你在检测电脑上已经安装的字体文件里,哪些字体无法被用于商业用途。

原理

在前端,你没法直接读取电脑上已经安装的字体列表,这是一个权限安全的问题。

因此需要借助一个取巧的方式,通过 CSS 来搞定它。

function CheckFont(t) {
    if (t == "") { return "" };
    var f = "他们给我说这个东西越长就越精准我特别想试试ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrsyuvwxyz1234567890";
    var s = document.createElement("span");
    s.style.fontSize = '72px';
    s.innerHTML = f;
    var b = document.getElementsByTagName("body")[0];
    b.appendChild(s);
    s.style.fontFamily = f;
    var w = s.offsetWidth;
    var h = s.offsetHeight;
    s.style.fontFamily = t + ',' + f;
    var r = ((s.offsetWidth != w) || (s.offsetHeight != h));
    b.removeChild(s);
    return r ? true : false;
}

如你所见,创建一个元素,假如当前电脑不存在这个字体,则它的offsetWidth和offsetHeight会和字体存在时的值不同。

理论上来说,只要元素足够大,内容足够多,就可以判断出一个字体是否存在。

虽然上面的代码是JavaScript,然而它其实是通过CSS中的offsetWidth和offsetHeight去判断的。

 相关资料
  • 问题内容: 我必须导入Klavika字体,并且已经收到多种形状和大小的字体: 现在,我想知道是否有可能仅通过一个-query 将它们导入CSS ,即在查询中定义的位置。我想避免将查询复制/粘贴8次。 所以像: 问题答案: 实际上,@ font-face有一种特殊的风味,可以满足您的要求。 这是一个示例,该示例使用相同的字体系列名称,并且具有与不同字体相关联的不同样式和粗细: 现在,您可以指定或对所

  • 以JSON格式,创建一系列的Shape(形状)来表示一个字体。 该类在内部由FontLoader所使用。 例子 geometry / text / shapes 构造函数 Font( data ) data -- 表示字体的JSON数据。 这一构造函数创建一个新的Font,它是一个Shapes数组。 属性 .data : Array 传入到构造函数的JSON数据。 方法 .generateShap

  • Fonts can be created or imported for use in either the GUI Text or the Text Mesh Components. 字体可以在GUI文本(GUI Text)或文本网格(Text Mesh)组件创建或导入来使用。 Importing True Type Font files (.ttf) 导入True Type字体文件(.ttf)

  • 主要内容:1 JasperReports 报表字体,2 JasperReports 字体属性,3 JasperReports 字体类型,4 JasperReports PDF字体名称,5 JasperReports 默认字体和继承,6 JasperReports 字体的示例报表包含文本元素,每个元素都可以有自己的字体设置。可以使用<textElement> 标记中可用的 <font> 标记指定这些设置。一个报表可以定义多种字体。定义后,它们可以用作整个报表中其他字体定义的默认或基本字体设置。 1

  • 问题内容: 是否可以在页面加载之前预加载或以其他方式缓存@ font-face字体(最有可能使用javascript),以便在页面最终加载时不会出现难看的跳转? 问题答案: 我目前尚无任何避免字体加载时出现闪烁的技术,但是您可以通过为字体发送适当的缓存头并确保该请求尽快通过来最大程度地减少闪烁。

  • 文本是任何一款游戏中不可或缺的重要要素之一,Pygame 通过 模块来创建一个字体对象,从而实现绘制文本的目的。该模块的常用方法如下所示: 方法 说明 pygame.font.init() 初始化字体模块 pygame.font.quit()  取消初始化字体模块 pygame.font.get_init()  检查字体模块是否被初始化,返回一个布尔值。 pygame.font.get_defau