我在一个页面中使用了两个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规则直接包含在p
,div
,li
等的CSS规则中,但这不会改变任何内容。
我有什么建议可以解决这个问题吗?
EDIT / ADDITION:
考虑到这一点,两种字体之间的区别在于Roboto Condensed在其名称中有一个空格。我想知道这是否会导致问题(即dompdf无法处理这样的字体名称)?但只要我从Google服务器获取字体,我就无法改变它。
答案 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。