我在 Ubuntu 12.04 LTS 上使用 PhantomJS/wkhtmltopdf 将 HTML 转换为 PDF,并出现非常奇怪的字母间距错误。例如,之间的内部距离英语和xa看起来非常随机且不正确。
当我在 OS X 上运行完全相同的代码时,我没有遇到这些问题,这让我认为该问题与 Linux 有关。另外,当我渲染为 PNG 时,它看起来不错。
我正在使用 Microsoft Core 字体并且所有字体都有相同的字偶距问题。例如xa总是一个问题,所以我认为这也不是字体问题。
我尝试根据这些链接的建议修改 ~/.fonts.conf 但没有什么区别。
- https://wiki.ubuntu.com/Fonts
- http://www.kilobitspersecond.com/2009/04/17/ubuntu-font-hinting-you-a-cautionary-tale/
我对如何解决这个问题的想法很困惑。
答案1
我的解决方案是迁移到 wkhtmltopdf。
事实证明我的问题是在这种情况下发生的:
- 始终与 PhantomJS 在一起
- 当 ~/.fonts.conf 存在并且无效时,使用 wkhtmltopdf
PhantomJS 和 wkhtmltopdf 之间的区别在于后者使用 X 服务器来进行渲染,这可能是我遇到的不同行为的原因。
使用 wkhtmltopdf 现在可以正常工作,而 PhantomJS 仍然提供有趣的字体渲染。在我看来,当只需要 html 到 pdf 转换时,wkhtmltopdf 似乎是一个更成熟的选择,所以我可能会坚持使用它。
这看起来更好(不同的字体,但字体本身从来不是问题)