2009-08-03 6 views
3

WebKitから印刷すると、自動的に縮小率が出力されるようです。できればWebKitのソースを変更せずに、印刷時に縮小を無効にする方法はありますか?
Qt 4.6トランクを使用し、より長い高さでsetFixedLayoutを使用してWebKitをトリックすることは可能かもしれませんが、まだ試していません。おそらく私はこれを行うことができますWebKitの基礎を取得する方法がありますか?Qt WebKit Printing Shrink Factor

EDIT: 印刷レイアウトの高さを拡張することでChromeがこれを処理します。
http://src.chromium.org/viewvc/chrome/trunk/src/chrome/renderer/print_web_view_helper.cc?view=markup

答えて

3

私は数ヶ月前に自分自身でその問題に遭遇したので、QT 4.5ではできません。私はQt 4.6については今はしません。

原因は、115行目と126行目でsrc/3rdparty/webkit/WebCore/page/PrintContext.cppです。縮小率は一定ではありませんが、利用可能な印刷領域に最も適合するように計算されています。

許可された縮小範囲(PrintingMinimumShrinkFactorおよびPrintingMaximumShrinkFactor)を制御する両方の定数を1に設定すると、問題が解決されます。当時の問題を非常に徹底的に分析したところ、Qtにパッチを当てるよりも優れた解決策を思いつきませんでした。

+0

行103として変更した変数の名前を表示するのはすばらしかったでしょう:do {と109は:printedPagesHeight + = currPageHeight; 変更する値は次のとおりです。 const float PrintingMinimumShrinkFactor = 1.25f; および const float PrintingMaximumShrinkFactor = 2.0f; 今はそれぞれ120行目と126行目にあります。メソッド名:\t void PrintContext :: begin(float width).. –

+0

はい、あなたは正しいです。私はその答えの一部を明確にしました。 – sebasgo