使用WKHTMLTOPDF库在自定义PDF中无法使用自定义字体

时间:2016-12-23 04:54:55

标签: css laravel laravel-5.1 wkhtmltopdf true-type-fonts

我正在使用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版本,看起来很容易实现查找和字体

enter image description here

2)这是生成的PDF版本,字体未正确应用

enter image description here

2 个答案:

答案 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 wkhtmltopdfhelvetica font not working in wkhtmltopdf

答案 1 :(得分:0)

除了AddWeb,您还必须将具有Unicode信息的HTML标头添加到HTML

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">