如何确保所有浏览器/平台(Cufon?Images?sIFR)中的字体在PDF渲染中看起来一样

时间:2013-02-11 17:03:18

标签: html pdf-generation font-face sifr cufon

我花了很多时间深入研究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是否有某种跨浏览器字体呈现?

1 个答案:

答案 0 :(得分:0)

我可以建议你两件事:

将em用于字体大小。 em是一个相对的衡量标准。

不要使用sIFR或基于闪存渲染的任何内容,因为它不适用于不支持闪存的移动设备。

无法在所有现有的Web浏览器中呈现完全相同的内容,就像在天堂一样。但是,由于我们不在那里,我建议你也要减少一点字体,直到它符合你的目标。

问候。