2013-03-27 17 views
14

私の上司から、HTMLファイルの「印刷」ボタンを追加するように求められました。まあ、window.print()。 しかし、このソフトウェアに埋め込まれたWebブラウザは私自身によって開発されたため、これは機能しません。プリントをサポートしていない可能性があります。埋め込みWebブラウザでwindow.print()をサポートするにはどうすればよいですか?

とにかく、私はこれをサポートしなければなりません。

このWebブラウザはWebKitを使用していましたが、私はQtとWebKitについて少ししか知りませんでした。

この機能はどのように実装できますか?たとえば、Webブラウザが "window.print"をどのように扱うのでしょうか?

+6

QTポートの 'window.print'のシーケンスは、 です。window.print-> DOMWindow :: print - > Chrome :: print - > ChromeClient :: print(ChromClientQt.cpp) - > emit m_webPage-> printRequested デフォルトでは、QWebPage :: printRequestedはどのスロットにも接続されていません。 'LauncherWindow :: print' do(プレビューダイアログを表示し、QWebFrame :: printを使用して印刷する)のようなスロットを追加する必要があります。 カスタマイズしたWebブラウザでQTポートが使用されていない場合は、ポートの「印刷」機能を実装する必要があります。 あなたのお役に立てば幸いです。 –

+2

シェン:あなたのコメントは完全な答えに昇格されなければならないと思います。それは正解です。 – peppe

答えて

0

AJAX経由でHTML/CSS(またはリンク)のコンテンツをサーバー側のプリントサーバーに送信し、HTMLをレンダリングしてネットワークプリンタに送信することを検討してください。別のオプションは、NSAPI(C++)でブラウザプラグインを作成することです。もう一つの選択肢は、Javaアプレットを埋め込み、HTMLアプレットをレンダリングしてレンダリングし、それをプリンタに送ることです。

+0

@twodaveに言ったように、QTでwindow.printを動作させる設定があります。恩恵に対する答えになるでしょう。 –

0

?print = 1のようなクエリ文字列引数が存在する場合、自動的にwindow.print()が呼び出されるようにHTMLファイルを変更します。その後、別のブラウザプロセスでyour-file.html?print = 1を開いてください。

+0

objective-cウェブキットでは、window.print()が動作するようにデリゲートを設定する必要があります。 Qt、おそらく、window.print()の動作を同様にする必要があります。必要なのは、この質問に対するアンサーです。 –

+0

ああ、そうです。私は間違っているはずです。当時の答えを持っている人をupvoteに行く。 – Dave

関連する問題