背景信息
之前我的项目中遇到了应用ActiveReportsJS 前端报表控件生成PDF的性能,在IIS 或者Tomcat服务器上部署前端我的项目,生成PDF 超链接(为英文)均能失常显示,然而在Docker中部署,生成PDF时候总是呈现超链接吃字。
失常
通过与公司外部的资深前端大神沟通后,会发现还是因为缺字体导致的,因为尽管在生成PDF 时注册了字体但这个字体是防止了乱码,并未保障可能被正确的画进去,所以钻研后发现,还是须要应用 Web-Fonts
Web Fonts 介绍
Web Fonts 示意能够随着网页的加载下载自定义字体实现以更多不同的、自定义的文本款式。
CSS 中容许为HTML 标签指定 font-family 属性,浏览器会尝试下载font-family 中指定的字体列表直到在运行的客户端零碎中找到可用的字体。
如:
p { font-family: Helvetica, "Trebuchet MS", Verdana, sans-serif;}
以上会保障在零碎中运行良好,但传统Web开发者的字体抉择是无限的。只有少数几种字体,能够保障在所有常见的零碎中都能够应用,称为 Web-safe fonts, 咱们就能够通过 web-safe提供的字体,在字体栈中指定可选的字体文件,但这减少了测试方面的开销,以确保你的设计在每一种字体下看起来都很好。
Web fonts是一个好的抉择,能够保障网页运行良好, Web-Font 是 CSS 的特点,容许指定字体文件随着网站一起下载,也就意味着,任何反对 Web fonts的浏览器都能够精准的指定须要加载的字体。
语法如下:
首先须要在CSS 中定义@font-fce 块, 指定下载字体的文件,留神 src外面就是字体文件的地址:
@font-face {
font-family: "myFont";
src: url("myFont.woff2");
}
能够应用@font-face外面指定的字体名称,在任何须要的标签中,像一般的font-family援用一样利用到须要的标签中:
html { font-family: "myFont", "Bitstream Vera Serif", serif;}
语法的确略微简单一些
对于 Web-Font 咱们须要留神以下事项:
- 留神字体版权
- 所有支流浏览器次要反对的字体格局 为 WOFF或WOFF2(Web Open Font Format versions 1 and 2),即便老的浏览器如IE9也是反对WOFF格局的。
- WOFF2 反对TrueType 和OpenType 规格阐明的全副,蕴含variable fonts, chromatic fonts, 及font collections.
- 列出字体文件的程序很重要。如果提供了浏览器的字体列表,浏览器将抉择首个字体文件来应用。
示例:
@font-face { font-family: 'zantrokeregular'; src: url('fonts/zantroke-webfont.woff2') format('woff2'), url('fonts/zantroke-webfont.woff') format('woff'); font-weight: normal; font-style: normal;}
font-family: 'zantrokeregular', serif;