由DOMPDF生成的PDF中的Google Webfonts

时间:2017-06-24 17:40:57

标签: css dompdf google-webfonts

我在一个页面中使用了两个webfonts,我使用dompdf将其转换为PDF。我在标题中有这个:

<link href='http://fonts.googleapis.com/css?family=Signika:600|Roboto+Condensed' rel='stylesheet' type='text/css'>

然后我在CSS规则中使用它们,如

body {
  font-family: "Roboto Condensed", sans-serif;
  [ ... ]
}
h1 {
  font-family:'Signika', Arial, Helvetica, sans-serif;
  [ ... ]
}

现在,当我生成PDF时,h1以“Signika”字体显示,但“Roboto Condensed”被Helvetica或其他一些标准的sans-serif字体替换。

如果我打开“预览”文件(即我在PDF生成脚本中包含的php页面),“Roboto Condensed”会按预期显示,但它不会进入PDF。但正如我写的那样,“Signika”就在PDF中,这对我来说有点奇怪。顺便说一句,我还尝试将font-face规则直接包含在pdivli等的CSS规则中,但这不会改变任何内容。

我有什么建议可以解决这个问题吗?

EDIT / ADDITION:

考虑到这一点,两种字体之间的区别在于Roboto Condensed在其名称中有一个空格。我想知道这是否会导致问题(即dompdf无法处理这样的字体名称)?但只要我从Google服务器获取字体,我就无法改变它。

1 个答案:

答案 0 :(得分:1)

我自己找到了解决方案:

正如我在编辑中添加到我的问题中,原因显然是字体系列名称&#34; Roboto Condensed&#34;包含一个空间,dompdf似乎并不喜欢。

我下载了字体,使用Fontsquirrel上的字体生成器创建了它的三个版本,并将它们与此样式表一起放在我的服务器上:

@font-face {
    font-family: 'roboto_condensedregular';
    src: url('robotocondensed-regular-webfont.woff2') format('woff2'),
         url('robotocondensed-regular-webfont.woff') format('woff'),
         url('RobotoCondensed-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

然后,在我的CSS规则中,我在roboto_condensedregular中使用了新的字体名称font-family: roboto_condensedregular, sans-serif;

现在它也适用于PDF。