最近几天编写手机端的页面之后,文中需要华文行楷字体,在网上下载后,引入到了自己的前端页面,以为没有什么事了,继续码代码

@font-face {
font-family:huawen;
src: url(./css/华文行楷.ttf);
}
body{
font-family: huawen;
}

最终在测试的时候出现问题了,苹果手机的用户,基本看不出来什么问题,安卓测试了一下,页面打开时原来的字体,随着进度条的推移,慢慢华文行楷的字体出来了,问题,加载太慢了,看了一下引入的源文件"华文行楷.ttf" 3M,有点大。

方法一:搜索关键词,ttf提取工具(方法失败)

网上很多都是介绍了Google的一款工具,sfnttool 是谷歌开源项目 sfntly 内置的工具,他的作用是从一个字体文件中提取指定的文字,导出的字体中将只包含你需要的文字。

【下载】http://download.csdn.net/detail/ldpjay/8822587

1. 确保你的电脑已经安装了Java环境(能运行Java命令),这是必须的。

2. 命令行进入到sfnttool所在目录下。(一个小技巧,在当前文件夹里按住Shift再右键,里面有个“在此处打开命令行”。)

3. 输入下面的命令即可:java -jar sfnttool.jar  -s '这是一段测试文字' msyh.ttf msyh_simplify.ttf

4. 输出字体在同目录下。

但是个人根据此方法试了好多次都是失败告终,同事也试了好多次,不知道原因出现在哪,是输出了,6k的大小,无论是输入什么文字。目前还不知道问题出现在哪,如果您看到并且试验成功的话,欢迎交流一下!

方法二:FontCreator字体编辑软件

想着以为可以大量输入,但是想象是美好的,没有这个功能,需要手动一点点把需要的字体拿出来,是个漫长的过程,这个方法也就排除了

方法三:搜索关键词,压缩ttf工具

后来转换了一下思想,既然不能从我的 “华文行楷.ttf”里面提取我需要的字体,我的初衷是变小就行了,那就压缩呗!这个想法一有,就开始找实现的方法,html网页引用中文字体,文件过大,加载缓慢的解决办法【字蛛】 一文吸引了我的注意,文章太长,先操作实现了一下,感觉ok,步骤也不是很长。

1、node -v :安装完node之后,测试node是否安装
2、npm config set registry http://registry.npm.taobao.org
3、npm info underscore (如果上面配置正确这个命令会有字符串response)
4、npm –registry http://registry.cnpmjs.org info underscore:命令行指定
5、npm install font-spider –g:安装字蛛
6、font-spider C:\Users\wangchao\Desktop\index*.html:生成新的字体库,nodejs 命令行输入

也就是你的html完整路径 【*】 是通配符,表示会扫描所有的html文件 ,然后回车

方法四--1127更新:利用现有的在线字体提取工具-https://www.fontke.com/tool/subfont/

致此,压缩后的会保存在同级目录下的.font-spider里面,直接用就行了

 

页面引入外部字体ttf,如何提取所需要的ttf字体或者加载过慢的解决方法-1127更新的更多相关文章

  1. javac 不是内部或外部命令 和 错误 找不到或无法加载主类 的解决方法

    使用package语句与import语句. 实验要求:按实验要求使用package语句,并用import语句使用Java平台提供的包中的类以及自定义包中的类.掌握一些重要的操作步骤. 代码: 模板1: ...

  2. 页面加载完毕后调用js方法进行布局操控 已实验

    页面加载完毕后调用js方法进行布局操控 已实验 $(function(){ var check1 = $("[id$=SMS]").is(':checked'); var bl=$ ...

  3. ios 底部用定位 fixed。在软件盘出来后,页面元素被顶上去一部分,fixed定位的footer也跑到了上面去。解决方法

    ios 底部用定位 fixed.在软件盘出来后,页面元素被顶上去一部分,fixed定位的footer也跑到了上面去.解决方法 $("input").focus(function() ...

  4. vue页面引入外部js文件遇到的问题

    问题一:vue文件中引入外部js文件的方法 //在vue文件中 <script> import * as funApi from '../../../publicJavaScript/pu ...

  5. JSFF或JSF页面加载时触发JavaScript之方法

    现象一 最近在项目中遇到这么一个问题,有些页面元素是在页面加载时通过JavaScript动态渲染而成.当生成这些元素的JavaScript脚本被放置于JSPX文件中时,界面渲染没有问题.但是当我们把生 ...

  6. jQuery页面加载初始化的3种方法

    jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(functio ...

  7. 减少页面加载时间的n种方法

    减少HTTP请求 1:减少调用其他页面.文件的数量 2:使用css spirit , 减少图片加载次数 压缩js,css代码 1:一般js.css文件中存在大量的空格.换行.注释,这些利于阅读,如果能 ...

  8. (转,记录用)jQuery页面加载初始化的3种方法

    jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(functio ...

  9. (转载) jQuery页面加载初始化的3种方法

    jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(functio ...

随机推荐

  1. 域名指向新的服务器IP后不能访问的解决办法

    不能访问是因为本地DNS缓存,缓存清除方法:dos命令窗口输入ipconfig/flushdns ,回车即可.

  2. python定义class

    python也是面向对象的语言,类的重要性不言而喻. class Animal: def __init__(self,voice='hello'): self.voice=voice def __de ...

  3. 谁动了我的I/O?

    首先,是信用卡账单欠款0.13美刀~~~然后上亚马逊云查了一下账单. 3M次I/O...(1215133次超额的,2000000次免费的.) 于是监控了一下数据:每秒至少写5次,每秒写300KB,平均 ...

  4. 【转】run方法与start方法的区别

    在java线程中 start与run的不同start与run方法的主要区别在于当程序调用start方法一个新线程将会被创建,并且在run方法中的代码将会在新线程上运行,然而在你直接调用run方法的时候 ...

  5. C盘空间太大,分区助手减小分区大小教程

    首先看一个需要缩小C盘或需要减少分区空间的一个例子:“我的电脑里C盘剩余空间为530GB,除了C盘外还有一个D盘,但D盘的空间不到30GB,另外还有两个隐藏分区,一个200MB,一个15GB.我想把C ...

  6. Treap 实现名次树

    在主流STL版本中,set,map,都是BST实现的,具体来说是一种称为红黑树的动态平衡BST: 但是在竞赛中并不常用,因为红黑树过于复杂,他的插入 5 种,删除 6 中,代码量极大(如果你要改板子的 ...

  7. 从Internet下载一个文件

    使用的.net框架下的System.Net.WebClient类的DownloadFile()方法以图片为例:

  8. Bean的初始化和销毁

    在我们实际开发的时候,经常会遇到在Bean在使用之前或者之后做些必要的操作,Spring对Bean的生命周期的操作提供了支持.在使用Java配置和注解配置下提供如下两种方式.    1.Java配置方 ...

  9. ajax(form)图片上传(spring)

    第一步:spring-web.xml <!--配置上传下载--> <bean id="multipartResolver" class="org.spr ...

  10. CDH4.5.0下安装snappy

    编译源代码 http://www.cnblogs.com/chengxin1982/p/3862289.html 测试参考 http://blog.jeoygin.org/2012/03/java-c ...