我正在尝试在Rails 3网站上使用wicked_pdf在HTML中使用特定字体生成PDF文件。我在这里找到了其他建议。对我来说唯一(大部分)工作的是将字体转换为base64。我在这里找到了原始答案: Wicked PDF +fonts+heroku+rails3.2
我不得不将@ font-face CSS直接放入使用它的部分文件中,而不是将其放入样式表中以使其工作。它现在在我的本地副本中工作正常。当我将它部署到我们的登台服务器时,它只有一半工作。其中一种字体加载,但字体的粗体版本无法加载。
这是我在部分中包含的@ font-face CSS(this pastebin包含完整的Base64代码,但它很有用):
<style type="text/css">
@font-face {
font-family: 'MuseoSans300';
src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQAABAA...excess text removed);
}
@font-face {
font-family:'MuseoSans700';
src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQAABAA...excess text removed);
}
</style>
使用这些字体的常规样式表(使用SASS)中的样式如下所示:
#profile_pdf {
font-family: 'MuseoSans300';
h1 {
font-size: 30px;
font-family: 'MuseoSans700';
}
h2 {
font-size: 20px;
font-family: 'MuseoSans300';
}
}
我试过以各种方式改变这种情况。我使用了与此建议相同的格式: http://blog.shahariaazam.com/use-google-web-fonts-for-wkhtmltopdf-tools/#.UtwZUmQo5hE
这使它完全停止了工作。
使用上面显示的格式,它可以在我本地运行的副本上运行。在登台服务器上只有一种字体可以工作;它只加载300版本的所有内容,700版本不加载。还有其他人遇到过这个问题吗?
答案 0 :(得分:1)
我和Wicked PDF有类似的问题。我解决它的方法是定义一个字体系列,其中包含我想要定位的每个重量。它看起来像这样:
@font-face {
font-family: 'Karla';
font-weight: 400;
font-style: normal;
src: ...;
}
@font-face {
font-family: 'Karla-Bold';
font-weight: 700;
font-style: bold;
src: ...;
}
我认为您需要明确指定字体粗细数,以使其正确显示粗体版本。我的问题和你的问题完全相同,这也为我解决了。
答案 1 :(得分:0)
我认为在网址部分,如果你将它们置于资产之下,它应该是/assets/.....
而不是/font
,因为rails会将所有内容编译成资产