5

在我的应用程序中,我使用 aQTextEdit来显示一些文本,使用 HTML 进行格式化。可以打印显示的文档。这就是问题所在:虽然在屏幕上字距调整是正确的,但在打印时文档看起来很糟糕(主要是:一些字母后的空间太大)。

为了理解问题,我将 HTML 输出到一个外部文件中,并在真实浏览器中对其进行了测试。在 Chrome 中存在完全相同的问题,而在 Firefox 中,字距调整对于打印也是正确的。问题肯定来自 HTML 渲染引擎,但我没有使用 QtWebkit 模块(我什至没有编译它),这可以解释 Chrome 中出现同样的问题。

我怎样才能解决这个问题 ?

编辑

这是它的样子:

首先是应该呈现的文本(Firefox): 使用 Firefox 调整字距

然后用 Qt/Chrome 渲染的内容(在 M 和 p 之后尤其明显): 使用 Qt/Chrome 调整字距

4

1 回答 1

0

这是一个简单的解决方法,

使用下面的函数并在 QImage 上绘制完整的 QTextEdit 小部件,然后打印该 QImage。

http://doc.qt.io/qt-5/qwidget.html#render

Qt 使用不同的渲染器进行打印,我认为这是一个与之相关的问题。

http://doc.qt.io/qt-5/paintsystem-devices.html

于 2011-08-18T08:56:41.960 回答