打印能力以gwt为单位

时间:2012-07-25 03:48:13

标签: gwt

我们在gwt中构建了管理信息中心,并在谷歌应用引擎上部署了java。在仪表板上有一个名为“我的卡”的功能,献血者可以在那里看到他的献血者登记卡。

目前,我们正在谷歌存储中创建并存储此卡,当有人访问“我的卡”时,我们会在仪表板中使用iFrame呈现卡片。

我们希望能够打印此卡。请告诉我该怎么做?

只是为了添加我试过的Print.it jar但看起来已经过时并且不再与gwt玩得很好

2 个答案:

答案 0 :(得分:2)

将此脚本添加到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
}

代码源自this discussion

答案 1 :(得分:0)

这是一个简单的GWT打印机类。它打印出页面。

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

导入com.google.gwt.user.client.Element;

public class Printer {

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());
}

}