我有一个通过 wkhtmltopdf 转换为 PDF 的 HTML 页面。在我的本地机器上,一切都很好,很漂亮,阿拉伯字体,PDF 转换为它们,新的自定义字体。我使用了@font-face,本地存储的字体和 utf-8 编码。没问题。
但是在服务器上,不仅 (1) 阿拉伯字符变成了黑框, 但是 (2) 即使是不太特别的英文字体(如 Georgia 和 Impact)也会停止工作。 PDF 以纯无衬线字体呈现。也就是说,如果它渲染的话。有时它甚至不产生输出。我在服务器的 CSS 上添加了@font-face 规则,但 wkhtmltopdf 似乎没有接收到它们。我知道这些字体和路径在服务器上没有问题,因为 HTML 页面使用相同的 CSS 样式表并且呈现完美。
如果我做没有任何奇怪字体的简单纯文本,wkhtmltopdf 工作正常。
有什么想法吗?这与在服务器上有关吗?我的本地机器有 Windows 7,服务器运行的是 Linux。
最佳答案
问题解决了。我确实需要升级我的托管计划,以便我可以使用 X11 运行 wkhtmltopdf 静态二进制文件。虽然 Linux 机器上只有一些 Nimbus 字体,但通过添加字体文件和使用 @font-face css 规则,阿拉伯语和其他字体对我来说工作正常。
附加说明:为了使用自定义阿拉伯语字体文件正确呈现阿拉伯语文本,我使用 FontSquirrel 生成了所需的字体文件和 css 规则。 ,在“专家”渲染选项下使用“无子集”。
关于css - 服务器上的 wkhtmltopdf unicode 和自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12352564/