我正在使用Laravel 5.1 SnappyPDF包装器,它正在使用WKHTMLTOPDF
库。我正在尝试为我的PDF文件添加一些自定义谷歌字体,但这些字体在生成的PDF文件中不起作用。
我试过,将字体转换为Base64
并尝试按绝对URL和相对URL包含字体,也尝试了堆栈溢出时可用的许多答案,但它们都不适用于我。如何解决这个问题。
//Calling fonts
@font-face {
font-family: Roboto Condensed;
src: url("/fonts/RobotoCondensed-Regular/RobotoCondensed-Regular.ttf");
}
@font-face {
font-family: 'Open Sans';src: url("/fonts/OpenSans/OpenSans-Regular.ttf");
}
@font-face {
font-family: 'Open Sans Semi Bold Italic';
src: url("/fonts/OpenSans/OpenSans-SemiboldItalic.ttf");
}
//implenting fonts
.report-page2-col-wrapper .col-heading{
font-family:"Open Sans Semi Bold Italic";
font-size:12pt;
line-height:17pt;
}
查看屏幕截图的差异
1)这是网页浏览器的HTML版本,看起来很容易实现查找和字体
2)这是生成的PDF版本,字体未正确应用
答案 0 :(得分:2)
有多种解决方案可以实现这一目标:
1)如果您使用谷歌字体,请尝试以下操作:
使用application.setAttribute
包含Google字体
<link>
使用<link href='http://fonts.googleapis.com/css?family=YOURFONTFAMILY' rel='stylesheet' type='text/css'>
应用字体效果
<style>
2)使用Base64 encode tool对字体进行编码并在css中使用
<style type = "text/css">
p { font-family: 'YOURFONTFAMILY'; }
</style>
希望上面的一个是你的解决方案!
参考ref:use custom fonts with wkhtmltopdf,helvetica font not working in wkhtmltopdf
答案 1 :(得分:0)
除了AddWeb,您还必须将具有Unicode信息的HTML标头添加到HTML
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">