我们在gwt中构建了管理信息中心,并在谷歌应用引擎上部署了java。在仪表板上有一个名为“我的卡”的功能,献血者可以在那里看到他的献血者登记卡。
目前,我们正在谷歌存储中创建并存储此卡,当有人访问“我的卡”时,我们会在仪表板中使用iFrame呈现卡片。
我们希望能够打印此卡。请告诉我该怎么做?
只是为了添加我试过的Print.it jar但看起来已经过时并且不再与gwt玩得很好
答案 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());
}
}