页面引入外部字体ttf,如何提取所需要的ttf字体或者加载过慢的解决方法-1127更新
最近几天编写手机端的页面之后,文中需要华文行楷字体,在网上下载后,引入到了自己的前端页面,以为没有什么事了,继续码代码
@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更新的更多相关文章
- javac 不是内部或外部命令 和 错误 找不到或无法加载主类 的解决方法
使用package语句与import语句. 实验要求:按实验要求使用package语句,并用import语句使用Java平台提供的包中的类以及自定义包中的类.掌握一些重要的操作步骤. 代码: 模板1: ...
- 页面加载完毕后调用js方法进行布局操控 已实验
页面加载完毕后调用js方法进行布局操控 已实验 $(function(){ var check1 = $("[id$=SMS]").is(':checked'); var bl=$ ...
- ios 底部用定位 fixed。在软件盘出来后,页面元素被顶上去一部分,fixed定位的footer也跑到了上面去。解决方法
ios 底部用定位 fixed.在软件盘出来后,页面元素被顶上去一部分,fixed定位的footer也跑到了上面去.解决方法 $("input").focus(function() ...
- vue页面引入外部js文件遇到的问题
问题一:vue文件中引入外部js文件的方法 //在vue文件中 <script> import * as funApi from '../../../publicJavaScript/pu ...
- JSFF或JSF页面加载时触发JavaScript之方法
现象一 最近在项目中遇到这么一个问题,有些页面元素是在页面加载时通过JavaScript动态渲染而成.当生成这些元素的JavaScript脚本被放置于JSPX文件中时,界面渲染没有问题.但是当我们把生 ...
- jQuery页面加载初始化的3种方法
jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(functio ...
- 减少页面加载时间的n种方法
减少HTTP请求 1:减少调用其他页面.文件的数量 2:使用css spirit , 减少图片加载次数 压缩js,css代码 1:一般js.css文件中存在大量的空格.换行.注释,这些利于阅读,如果能 ...
- (转,记录用)jQuery页面加载初始化的3种方法
jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(functio ...
- (转载) jQuery页面加载初始化的3种方法
jQuery 页面加载初始化的方法有3种 ,页面在加载的时候都会执行脚本,应该没什么区别,主要看习惯吧,本人觉得第二种方法最好,比较简洁. 第一种: $(document).ready(functio ...
随机推荐
- 微信小程序又一爆炸功能上线-云开发
云开发介绍 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云端能力. 云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开 ...
- 前端高质量知识(三)-JS变量对象详解
在JavaScript中,我们肯定不可避免的需要声明变量和函数,可是JS解析器是如何找到这些变量的呢?我们还得对执行上下文有一个进一步的了解. 在上一篇文章中,我们已经知道,当调用一个函数时(激活), ...
- 将命令的输出生成一个Web页面
解决方法: ConvertTo-Html 命令: 生成一个HTML表格来代表命令的输出,为你提供的每个对象创建一行,在每行中,Powershell会创建代表对象属性的值. 实现效果:
- Spring任务执行器(TaskExecutor)
Spring任务执行器(TaskExecutor) Spring通州任务执行器(TaskExecutor)来实现多线程和并发编程,使用ThreadPoolTaskExecutor可实现一个基于线 ...
- git常用命令(三)
====================================================================== 本地仓库操作 ====================== ...
- quartz的持久化任务调度使用应用的dataSource
Quartz提供两种基本作业存储类型--->第一种类型叫做RAMJobStore: 最佳的性能,因为内存中数据访问最快 不足之处是缺乏数据的持久性,当程序路途停止或系统崩溃时,所 ...
- Spring整合JUnit spring静态对象属性的注入
package cn.itcast.d_junit4; import org.junit.Test; import org.junit.runner.RunWith; import org.sprin ...
- xcode怎样分析检测内存泄露(iOS)
虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在.所以了解原理很重要. 这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露, ...
- iOS新浪微博OAuth2.0认证代码
#import "ViewController.h" #import "AFNetworking.h" @interface ViewController () ...
- 爬虫学习(十二)——bs4实践案例
实践项目————诗词名句网<三国演义>小说爬取 import osimport reimport timeimport urllib.requestimport urllib.parsef ...