2

我正在尝试通过操作系统生成 PDF wkhtmltopdfAmazon Linux一切正常,但是当我尝试在 上使用表情符号时HTML,字体中断并且表情符号显示为黑框。在部署之前,我在本地尝试并且它在本地工作Ubuntu,所以我的猜测是我在生产(亚马逊 Linux 实例)服务器中缺少一些东西(字体?)。我试图安装Google Noto字体,但什么也没发生。我将附加HTML由同一命令通过以下方式生成的同一页面的 2 个屏幕wkhtmltopdf

本地(Ubuntu): 本地图像

生产(亚马逊 Linux): 生产形象

如您所见,即使损坏的表情符号下方的字体也没有呈现为切面,我将添加我在两个服务器中使用的命令:

/my/path/to/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 --lowquality 'file:///my/path/to/page-test-pdf.html' '/home/user/test.pdf'

谢谢你的时间。

4

2 回答 2

1

如果您运行的是 PHP 7.x,我在 dockerized 图像中遇到了 wkhtmltopdf 扩展的问题。我们试图使用 font awesome 并且文本没有正确呈现。有一些编译问题导致了这种情况。

使用以下二进制文件时问题已解决https://github.com/madnight/docker-alpine-wkhtmltopdf

希望这可以帮助您前进。

编辑:您还必须将所有使用的字体安装为系统字体 iirc 否则 wkhtmltopdf 将拒绝工作,因为它找不到字体

于 2018-11-22T19:05:08.020 回答
1

您可以在这里找到类似问题的解决方案,基本上twemoji.min.js将表情符号替换为相应的图像。关于奇怪的字体间距问题,您可以使用等宽字体roboto mono或您喜欢的字体。

于 2018-12-04T16:35:16.170 回答