2011-08-10 79 views
5

在我的應用程序中,我使用QTextEdit來顯示一些文本,使用HTML進行格式化。顯示的文件可以打印。問題是:在屏幕上,字距是正確的,當打印文檔時看起來非常糟糕(主要是:在一些字母后面的空間太多)。Qt kerning問題

試圖瞭解我在外部文件中輸出HTML的問題,並在真實瀏覽器中對其進行了測試。在Chrome中,問題完全相同,而在Firefox中,字距調整對於打印也是正確的。這個問題肯定來自HTML渲染引擎,但我沒有使用QtWebkit模塊(我甚至沒有編譯它),這將解釋在Chrome中出現同樣的問題。

我該如何解決這個問題?

編輯

這裏是什麼樣子:

首先文本,因爲它應該被渲染(火狐): kerning with Firefox

那麼什麼是渲染使用Qt /鉻(格外引人注目之後的M和p): kerning with Qt/Chrome

+0

您是否試過在IExplore中查看它?你在什麼操作系統上? – RedX

+0

是的,我嘗試過使用Internet Explorer 9.結果比Qt/Chrome版本好,但不如Firefox版本。我的軟件是爲Windows開發的。 – gregseth

+0

爲什麼你的兩個示例文本有不同的磅值?可以預料的是,字距在更小的字體尺寸上不會更好。也許如果你讓Chrome瀏覽器的文本與Firefox文本一樣大,問題就會消失。無論如何,這值得嘗試。 – TonyK

回答

0

這是一個簡單的解決方法,

使用下面的函數並在QImage上繪製完整的QTextEdit Widget,然後打印該QImage。

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

Qt針對印刷不同的渲染器,我認爲這是與此相關的一個問題。

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

+0

是的,創建一個圖像適用於單頁文檔。但是對於一個mulipage文檔,我將不得不手動管理分頁符,以確保中斷不會發生在一行中間,等等...... – gregseth

+0

您可以嘗試QApplication :: setGraphicsSystem(「raster」) (http://doc.qt.nokia.com/latest/qapplication.html#setGraphicsSystem)?我相信這與多個圖形系統有關。 – SunnyShah

+0

請讓我也知道結果。 – SunnyShah