我花了很多时间研究 RTL 语言的@font-face 问题、不同浏览器上的字体渲染、PDF 支持等等。
我的目标是在 HTML 文档上添加与 CSS 兼容的阿拉伯语(一种 RTL 语言)文本,该文本在呈现为 PDF 时,在 PDF 上的外观、呈现和包装与在 HTML 网页上完全相同,无论用户的浏览器或平台。
我一直在使用@font-face,但事实证明,Windows 机器呈现的字体比它们在 Mac 上的要宽一些,而 PDF 生成器是独立于浏览器的,并且看起来更像是 Mac 呈现的字体。所以发生的情况是 Windows 用户看到一行文本,而 PDF 最终将该行的最后一个单词包裹到下一行,因此 PDF 并不是 Windows 用户所期望的。
我曾一度认为 Cufon 可能是解决方案,因为显然它看起来是相同的跨浏览器 - 但我认为它不支持阿拉伯语?我尝试使用 wkhtmltodpf 和 PhantomJS 生成 PDF,但尽管是很棒的“虚拟”浏览器,但它们都使用 Webkit QT,它呈现的文本与 Windows 不同,所以生成的 PDF 再次具有不同的换行或文本宽度作为原始 HTML 文档。基本上,我的问题是:
- 确保用户在浏览器上看到的文本与他们在 PDF 上看到的完全一致的最佳方法是什么?我真的不需要它是完全像素完美的,只要文本至少遵循相同的换行符,并且包含给定的宽度
div
。我认为我真正需要确保的唯一一件事是字体提示是统一的。或者这一切都归结为使用图像? - 顺便说一句,HTML5 是否有某种跨浏览器字体渲染?