如何将Google Web字体与phantomjs一起使用

我正在使用phantomjs 1.9.7版,我相信它应该支持网络字体.我已经使用Google Web字体插入了字体,但是当我自动抓屏时,它只是显示我的后备字体.网络字体在我所有的浏览器中都显示良好.有什么解决方法吗?
最佳答案
我已经为这个问题苦苦挣扎了几个小时.好吧,这个争议有一个简单的原因:用户代理!

某些服务(例如Google字体)会根据用户代理返回不同的CSS内容.当您调用包含带有默认PhantomJs用户代理的Google字体的网页时,Google会返回PhantomJs支持的TTF版本.

但是,如果您设置自定义用户代理(Chrome,FF等),则Google字体将返回.woff2版本. PhantomJs 2.x不支持.woff2.显然,字体不会被加载.

因此,对于在不设置通用用户代理的情况下测试PhantomJ的用户而言,Google字体就可以使用.如果他们设置了例如Google Chrome浏览器用户代理,它将无法正常工作.

因此,您有两个选择:

>避免设置自定义用户代理(如果可能).
>避免使用诸如Google Fonts之类的笨拙的智能字体提供程序,该字体提供程序不会在CSS中输出所有字体版本,而是让浏览器决定所需的字体.

转载注明原文:如何将Google Web字体与phantomjs一起使用 - 代码日志