javascript - PhantomJS 字体渲染

标签 javascript phantomjs webfonts truetype

PhantomJS 可以渲染网页中嵌入的 truetype 字体吗? 我有这样的 CSS

@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: normal;
src: local('Roboto-Regular.ttf'), url('Roboto-Regular.ttf') format('truetype');
}

最佳答案

答案是“视情况而定”。 Phantomjs,作为一个“ headless ”浏览器,与任何其他浏览器相似,因为它只能渲染如上所示的字体,前提是该字体安装在进行渲染的系统上。如果我在访问您的网页时在我的机器上安装了 Roboto,那么我将按预期看到 Roboto。但是,如果我的本地计算机上没有安装 Roboto,它将呈现我的浏览器使用的任何默认后备字体。

Phantomjs 不仅能够呈现 Google 字体,如 Roboto,如果您将它们作为外部字体加载,从第 3 方网站链接。或者,更好的是,使用 https://github.com/typekit/webfontloader这将为您完成加载网络字体的繁重工作。

从 Phantomjs 2.0 开始,phantomjs 能够呈现“websafe”字体。然而,这将再次取决于这些字体是否安装在相关机器上。例如,如果您的网络服务器运行的是 Linux 风格,您可能会遇到问题。这是因为“网络安全”字体实际上是 Microsoft 字体,并且已获得许可供 Windows 和 OSX 等操作系统使用。此类字体不一定安装在其他操作系统中,可能需要手动安装,如所述here .

关于javascript - PhantomJS 字体渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26363554/

相关文章:

javascript - 为什么在为 Canvas 声明变量时要添加 [0]?

javascript - 调整图标大小以适应容器元素?

javascript - 当鼠标未悬停在元素上方时使用 onmouseout 运行?

phantomjs - 使用 PhantomJS 设置远程调试

html - 任何字体都可以用作网络字体吗(特别是用于 HTML 电子邮件)

css - 任何 iOS 网络浏览器是否通过 CSS 支持 OpenType 字体功能?

javascript - React-Bootstrap/React-Router-Bootstrap 中 NavBar 品牌化的最佳实践

html - Python + Selenium + PhantomJS 呈现为 PDF - 多个文件

python - python 中的 webdriver.PhantomJS 超时?

css - 如何为数字添加字母间距?