helvetica字体在wkhtmltopdf中不起作用

Pad*_*han 25 html css wkhtmltopdf

我一直在尝试使用Helvetica字体创建pdf,但字体不会反映在pdf中.

我做了一些谷歌并找到了一些解决方案,但没有一个是可行的.

尝试过的解决方案1

我在这里发现了类似的东西: 字体问题

尝试了那里提到的最后一个解决方案

解决方法是在你的css中定义@ font-face并将src链接到wkhtmltopdf可访问的外部主机

但解决方案不起作用.

尝试解决方案2 我也尝试使用谷歌字体API,但结果仍然无法使用. helvetica字体

这是自定义字体的示例 示例

试过的解决方案3 我尝试使用css属性@page.但那也行不通.

什么是可行解决方案的方法.

Arm*_*n H 29

修复wkhtmltopdf字体问题的最简单方法是对字体进行Base64编码(可以使用此工具)并将其包含在CSS中:

@font-face {
    font-family: 'Helvetica';
    src: url(data:font/truetype;charset=utf-8;base64,AAEAAAATAQA...
}
Run Code Online (Sandbox Code Playgroud)

这适用于所有字体(包括Google字体),并保证跨不同机器和操作系统的跨平台兼容性.

  • 是的,我认为它与此处给出的解决方案相同.http://stackoverflow.com/questions/6721295/google-web-fonts-and-pdf-generation-from-html-with-wkhtmltopdf/16204485#16204485.然而,生成的剂量似乎显示出helvetica字体 (3认同)
  • 谢谢伙伴!如果有人有兴趣我使用这个base64:https://github.com/alixaxel/typhon/blob/master/typeface/sans-serif/Helvetica%20Neue.base64 (3认同)
  • @JaredEitnier,旧链接已脱机.[试试这个网站](http://www.opinionatedgeek.com/dotnet/tools/base64encode/)相反,它做同样的事情. (2认同)

bax*_*ang 8

对我来说,从Google字体加载字体不起作用.将base64ed二进制文件放入CSS文件对我来说似乎有点太多了(韩文类型是几兆字节).我建议安装您需要在机器上使用的字体.对于Ubuntu,您只需从Google Fonts下载字体文件,然后将文件复制到$HOME/.fonts目录并fc-cache在命令行中运行命令以重建字体列表.

$ mkdir ~/.fonts
$ copy your-font-file.ttf ~/.fonts/
$ fc-cache -fv
Run Code Online (Sandbox Code Playgroud)

对于Rails应用程序,您可以进行符号链接

$ ln -s /your/app/root/assets/fonts ~/.fonts
Run Code Online (Sandbox Code Playgroud)

然后,您将能够列出所有可用的字体.

$ fc-list
Nimbus Sans L:style=Regular Italic
URW Palladio L:style=Roman
Century Schoolbook L:style=Bold Italic
Nimbus Sans L:style=Bold
URW Chancery L:style=Medium Italic
Nimbus Roman No9 L:style=Regular
Century Schoolbook L:style=Bold
Century Schoolbook L:style=Italic
Nimbus Sans L:style=Regular
....
Run Code Online (Sandbox Code Playgroud)