【转】关于font face="Webdings"的对照

本文介绍了如何在HTML中使用Webdings和Wingdings这两种特殊的字体,并提供了使用这些字体时需要注意的问题,例如与Firefox浏览器的兼容性问题及解决方案。此外,还推荐了使用标准Unicode字符作为替代方案。


用法如下:
<font face='webdings'  size="14">i</font>
其中 i 可以用一下来的一些字符来表示,具体代表的含义如下图:

0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z , . / ' [ ] \ \ = - < > ? : \ " { } | + _ ) ( * & ^ % $ # @ ! ` ~

上面的每一个图形对应一个字符,字体为webdings的 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z , . / ' [ ] \ \ = - < > ? : \ " { } | + _ ) ( * & ^ % $ # @ ! ` ~

 

还有一种wingdings的字体,对照如下

0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z , . / ' [ ] \ \ = - < > ? : \ " { } | + _ ) ( * & ^ % $ # @ ! ` ~

上面每一个图形对应一个字符,字体为wingdings的 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z , . / ' [ ] \ \ = - < > ? : \ " { } | + _ ) ( * & ^ % $ # @ ! ` ~

 

不过上面的标记可能不支持firefox浏览器,原因是网页头部定义了

HTML 代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns="http://www.w3.org/1999/xhtml">

把这段代码去掉就正常了。

 

但这终究不是解决办法,有时候需要这段html代码,最后只能用标准的Unicode字符代替,如:← 和 → 等,标准可查询: http://www.unicode.org/charts/

转载于:https://www.cnblogs.com/Miko2012/archive/2012/12/24/2830890.html

<think>我们讨论的是如何将Webdings字体中的符号换为SVG矢量图形。根据引用[3]提到的,Webdings是一种字体图标,其中的字符(包括数字)会显示为特定图形。我们的目标是将这些图形换为SVG格式。方法概述:1.**直接导出法**:如果可以使用字体编辑软件(如FontForge)打开Webdings字体文件,可以直接将每个字符对应的矢量轮廓导出为SVG。2.**浏览器渲染捕获法**:在浏览器中显示Webdings字符,然后通过JavaScript捕获其轮廓并换为SVG路径。3. **使用在线换工具**:利用现有的字体图标SVG工具。具体步骤:###方法1:使用字体编辑软件(如FontForge)1.下载Webdings字体文件(通常为.ttf或.otf格式)。2.使用FontForge(开源字体编辑器)打开该文件。3.找到对应的字符(例如数字0对应的飞机符号),双击打开字符编辑窗口。4.选择菜单中的“文件”->“导出”->“导出SVG...”,即可将该字符的轮廓导出为SVG文件。注意:这种方法需要安装FontForge,并且操作相对专业。 ###方法2:通过浏览器渲染并捕获轮廓(编程实现)1.在HTML中创建一个元素,设置其字体为Webdings,并显示特定字符(如数字0)。2.使用JavaScript和SVG的<text>元素在SVG中渲染该字符,但这样得到的还是字体形式,并非路径。3.为了得到路径,我们可以使用文本路径的方法,这需要借助浏览器的API(如Canvas或SVG的getPathData(),但后者支持度不高)或第三方库(如opentype.js)。使用opentype.js的步骤:-引入opentype.js库:`<scriptsrc="https://cdn.jsdelivr.net/npm/opentype.js@latest/dist/opentype.min.js"></script>`-加载Webdings字体文件,然后获取对应字符的路径数据,再构建SVG字符串。示例代码:```html<scriptsrc="https://cdn.jsdelivr.net/npm/opentype.js@latest/dist/opentype.min.js"></script><script>//加载字体文件(假设已经将Webdings.ttf放在同一目录下)opentype.load('Webdings.ttf',function(err, font) {if (err){console.error('字体加载失败',err);}else {//获取字符'0'(即飞机符号)的路径const path= font.getPath('0',0,0,72);//72是字体大小//将路径换为SVG路径字符串const svgPath= path.toSVG();//构建完整的SVG图像constsvg= `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${path.getBoundingBox().x1} ${path.getBoundingBox().y1} ${path.getBoundingBox().x2- path.getBoundingBox().x1}${path.getBoundingBox().y2 -path.getBoundingBox().y1}"><path d="${svgPath}"fill="black"/></svg>`;//现在svg变量中就是SVG字符串,可以保存或使用console.log(svg);}});</script>```注意:由于跨域问题,如果字体文件不在同一域下,可能需要通过服务器代理或配置CORS。另外,Webdings字体可能有版权限制,使用时请注意。###方法3:使用在线换工具一些在线工具可以将字体图标换为SVG,例如:- Icomoon(https://icomoon.io/app/):可以上传字体文件,然后选择需要的图标,导出为SVG。- Fontello(http://fontello.com/):类似。步骤:1.上传Webdings字体文件。2.在工具中会显示所有字符对应的图标,选择需要的图标。3.导出选中的图标为SVG文件。 ###注意事项-**版权问题**:Webdings是微软的字体,使用时需注意版权许可。- **显示准确性**:不同的换方法可能导致图形细节有差异。- **复杂字符**:有些字符可能由多个路径组成,导出时需确保完整性。根据引用[1]和[2],SVG可以直接嵌入到HTML中,也可以作为数据URI嵌入到CSS中。换后的SVG图形可以按照这些方式使用。总结:推荐使用opentype.js(方法2)或在线工具(方法3)进行换,因为它们相对简单且不需要安装专业软件。 ###相关问题1.如何解决Webdings字体换SVG时的版权问题?2.除了Webdings,还有哪些常见的图标字体可以换为SVG?3.如何将换后的SVG图标优化以减少文件大小?[^4]</think>### 如何将 Webdings 符号换为 SVG 矢量图形 以下是三种主要换方法,结合引用内容提供完整解决方案: #### 方法 1:使用矢量设计软件导出(如 Illustrator) 1. **创建文本对象** - 在 Illustrator 中创建文本层 - 输入目标字符(如数字 `3`) - 将字体设置为 **Webdings** 2. **换为矢量轮廓** ```text 菜单栏 → 文字 → 创建轮廓 (Shift+Ctrl+O) ``` - 此时文本换为可编辑的贝塞尔曲线路径 3. **导出为 SVG** ```text 文件 → 导出 → 导出为 → 选择 SVG 格式 ``` - 在导出选项中: - 勾选 `响应式`(自适应视图) - 选择 `SVG 1.1` 规范 - 启用 `缩小` 优化(引用[4]) - 生成符合 Web 标准的 SVG 文件(引用[1]) #### 方法 2:编程换(使用 opentype.js) ```javascript // 安装依赖:npm install opentype.js const opentype = require('opentype.js'); // 加载Webdings字体文件 opentype.load('path/to/webdings.ttf', (err, font) => { if (err) throw err; // 获取字符路径(如数字'3') const path = font.getPath('3', 0, 0, 72); // x,y,字号 // 换为SVG路径字符串 const svgPath = path.toSVG(); // 生成完整SVG const svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"> <path d="${svgPath}" fill="black"/> </svg>`; console.log(svg); // 输出SVG代码 }); ``` #### 方法 3:在线工具换 1. **字体解析工具** - [FontForge Web](https://fontforge.org/en/):上传字体 → 选择字符 → 导出为 SVG - [IcoMoon](https://icomoon.io/):支持 Webdings 到 SVG 的批量换 2. **优化输出**(引用[4]) - 使用 [SVGO](https://github.com/svg/svgo) 压缩 SVG 代码: ```bash npx svgo input.svg --output optimized.svg ``` - 移除元数据、压缩路径精度 #### 关键注意事项 1. **版权问题** - Webdings 是微软版权字体,商用需授权 - 替代方案:使用开源图标字体(如 Font Awesome) 2. **浏览器兼容性** ```css /* 引用[2]:CSS中嵌入SVG的正确方式 */ .icon { background: url('data:image/svg+xml;utf8,<svg>...</svg>'); } ``` 3. **尺寸优化**(引用[4]) - 单字符 SVG 通常可压缩至 **1-2KB** 以下 - 比传统图片格式节省 **70%+** 带宽 #### 完整工作流示例 ```mermaid graph LR A[输入Webdings字符] --> B{选择换方式} B --> C[设计软件导出] B --> D[编程换] B --> E[在线工具] C --> F[优化SVG] D --> F E --> F F --> G[部署到Web] ``` ### 相关问题 1. 如何将生成的 SVG 图标作为数据 URI 嵌入 CSS?[^2] 2. 有哪些开源替代方案可以避免 Webdings 的版权问题?[^3] 3. 如何优化 SVG 图标以适应不同屏幕分辨率?[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值