我需要将divs
HTML 文档中包含的文本呈现为 PDF。我正在考虑使用 PhantomJS,但有一件事非常重要。不同的浏览器和平台以不同的方式呈现文本。因此,如果我有以下代码:
<div style='width:150px; height:80px; position:absolute; top:130px; left:78px'>
<p> Some text, yayy! :) </p>
</div>
它可以像这样在一个浏览器上呈现:
Some text, yayy!:)
但在另一个这样的:
Some text,
yayy!:)
发生的事情是(我猜是因为字体提示),第一个示例中的文本最终具有适合包含的特定宽度div
,但是由于第二个浏览器上的字体呈现,文本最终只占用了容器中放不下的更多空间,不得不绕到下一行。我无法承受这种输出结果的不可靠性。如果 HTML 在一行上,我也需要 PDF 在同一行上。
我实际上在这里问了一个相关问题:Make fonts on Windows render like Mac/Linux: disabling font-hinting and/or deal with anti-alias on client side with no luck,但它基本上是在尝试解决同样的问题.
PhantomJS 可以对此做些什么吗?或者 PhantomJS 至少可以以某种方式计算文本的真实宽度,而不需要字体提示和任何其他涉及的东西?或者,如果包含提示,可以计算它可能呈现的内容?或者任何东西,只要它们在 HTML 上看起来像在 PDF 上出现。(鉴于我正在处理的应用程序,我没有自由更改包含的 CSS 样式DIV
)。