wkhtmltopdf amazon linux 不会对表情符号进行编码

wkhtmltopdf amazon linux won't encode emoji

我正在尝试通过 wkhtmltopdfAmazon Linux os 中生成 PDF,一切正常,但是当我尝试在 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'

感谢您的宝贵时间。

如果您是 运行 PHP 7.x,我一直在使用 dockerized 图像中的 wkhtmltopdf 扩展时遇到问题。我们试图使用很棒的字体,但文本没有正确呈现。有一些编译问题导致了这个。

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

希望对您有所帮助。

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

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