2

我花了很多时间研究 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 文档。基本上,我的问题是:

  1. 确保用户在浏览器上看到的文本与他们在 PDF 上看到的完全一致的最佳方法是什么?我真的不需要它是完全像素完美的,只要文本至少遵循相同的换行符,并且包含给定的宽度div。我认为我真正需要确保的唯一一件事是字体提示是统一的。或者这一切都归结为使用图像?
  2. 顺便说一句,HTML5 是否有某种跨浏览器字体渲染?
4

1 回答 1

0

我可以建议你两件事:

使用 em´s 作为字体大小。em 是一个相对量度。

不要使用 sIFR 或任何基于 flash 渲染的东西,因为它不能在不支持 flash 的移动设备上工作。

没有办法在所有现有的网络浏览器上呈现完全相同的东西,就像在天堂一样。但由于我们不在那里,我建议你也减少一点字体,直到它适合你的目标。

问候。

于 2013-11-27T16:48:10.783 回答