-1

管理ダッシュボードを gwt でビルドし、Java 用の Google アプリ エンジンにデプロイしました。ダッシュボードには「マイカード」と呼ばれる機能があり、献血者は自分の献血者登録カードを見ることができます。

現在、このカードを作成して Google ストレージに保存しています。誰かが「マイ カード」に移動すると、ダッシュボードで iFrame を使用してカードをレンダリングします。

このカードを印刷できるようにしたいと考えています。方法を教えてください。

追加するだけで Print.it jar を試しましたが、廃止されたようで、gwt ではうまく機能しません。

4

2 に答える 2

3

このスクリプトを iframe コンテンツ ページのタグに追加します

<script type="text/javascript">
function printPage() {focus();print(); }
</script>

このネイティブ メソッドを GWT クラスに追加します

public native void printIframeContent(String id)/*-{
    var iframe = $doc.getElementById(id);
    var ifWin = iframe.contentWindow || iframe;
    iframe.focus();
    ifWin.printPage();
    return false;
}-*/;

印刷ボタンのクリック イベントのアクション ハンドラー。

public void onClick(ClickEvent event) {
    printIframeContent("printiframe"); // Use the correct id for your iframe
}

コードはこのディスカッションから派生しています

于 2012-07-25T11:34:34.913 に答える
0

これは、GWT の単純な Printer クラスです。ページを印刷します。

import com.google.gwt.user.client.ui.UIObject;

com.google.gwt.user.client.Element をインポートします。

パブリック クラス プリンター {

public static native void it(String html) /*-{
    var frame = $doc.getElementById('__printingFrame');
    if (!frame) {
        $wnd.alert("Error: Can't find printing frame.");
        return;
    }
    frame = frame.contentWindow;
    var doc = frame.document;
    doc.open();
    doc.write(html);
    doc.close();
    frame.focus();
    frame.print();
}-*/;
public static void it(UIObject obj) {
    it("", obj.getElement().toString());
}
public static void it(Element element) {
    it("", element.toString());
}
public static void it(String style, String it) {
    it("<it><header>"+style+"</header><body>"+it+"</body></it>");
}
public static void it(String style, UIObject obj) {
    it(style, obj.getElement().toString());
}
public static void it(String style, Element element) {
    it(style, element.toString());
}

}

于 2013-12-09T15:06:52.813 に答える