2011-08-10 27 views
5

私のアプリケーションでは、書式設定にHTMLを使用して、テキストを表示するのにQTextEditを使用しています。表示された文書を印刷することができます。そして、ここに問題があります。スクリーン上ではカーニングが正しいうちに、印刷された文書は非常に見栄えが悪い(主に、手紙の後に余分なスペースがあります)。Qtカーニングの問題

問題を理解しようとすると、HTMLを外部ファイルに出力し、それを実際のブラウザでテストしました。 Chromeではまったく同じ問題がありますが、Firefoxではカーニングが印刷にも適しています。この問題はHTMLレンダリングエンジンにはっきりとありますが、QtWebkitモジュールを使用していません(私はそれをコンパイルしていません)。これは同じ問題がChromeで発生すると説明しています。

どうすればこの問題を解決できますか?

EDIT

は、ここでは次のようになります。

まず、それがレンダリングされなければならないようなテキスト(Firefoxの): kerning with Firefox

その後はQt/Chromeでレンダリングされているもの(particulary目立ちますMとpの後): kerning with Qt/Chrome

+0

あなたはIExploreで見てみましたか?あなたはどんなOSですか? – RedX

+0

はい、私はInternet Explorer 9で試しました。その結果は、Qt/Chromeのバージョンより優れていますが、Firefoxのものほど良くはありません。私のソフトはWindows用に開発されました。 – gregseth

+0

2つのサンプルテキストのポイントサイズが異なるのはなぜですか?カーニングは小さなフォントサイズほど良くないと予想されます。おそらく、Firefoxのテキストと同じ大きさのChromeテキストを作成すると、問題は消えてしまいます。とにかく、試してみる価値があります。 – TonyK

答えて

0

これは簡単な回避策です。

以下の関数を使用して、完全なQTextEditウィジェットをQImageに描画し、そのQImageを出力します。

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

Qtは印刷のための別のレンダラを使用して、私はこれはそれに関連する問題であると思います。

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

+0

ええ、画像を作成することは、1ページの文書では問題ありません。しかし、mulipageドキュメントでは、改行が手動で行の途中で行われないように、手動でページブレークを管理する必要があります。 – gregseth

+0

QApplication :: setGraphicsSystem( "raster")を試すことができますか? (http://doc.qt.nokia.com/latest/qapplication.html#setGraphicsSystem)?私はそれが複数のグラフィックスシステムと関係していると信じています。 – SunnyShah

+0

結果をお知らせください。 – SunnyShah