在GWT中通过JSNI调用JS脚本去执行web页面打印:
首先是预览打印界面,代码如下:
package net.carefx.sde.editor.web.editor.client.partogram;
import net.carefx.component.editor.web.client.jsni.PartogramScript;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Image;
/**
* 产程图预览打印窗口
* @author icarefx-lqy
*
*/
public class PartogramPreview extends Dialog
{
//向产程图绘制程序发出请求资源:imgUrl + imgName = 请求地址
// private String imgUrl = "http://localhost:8080/chanchengtu/img?";
private String imgUrl = null;
private String imgName;
private PartogramScript script;
public PartogramPreview (String imgName, String imgUrl)
{
this.imgUrl = imgUrl;
this.imgName = imgName;
script = new PartogramScript();
initUI();
}
private void initUI ()
{
setSize (960, Window.getClientHeight () - 64);
setHeading("产程图预览");
setLayout(new FitLayout());
final LayoutContainer lc = new LayoutContainer();
lc.setId("imgContainner");//set div.id="imgContainner";
Image img = new Image();
img.setUrl(imgUrl+imgName);
lc.add(img);
lc.setScrollMode(Scroll.AUTO);
this.setButtons("");
this.setButtonAlign(HorizontalAlignment.CENTER);
this.add(lc);
Button print = new Button("打印");
print.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
// TODO 调用打印函数
script.excutePrint(imgUrl+imgName);
}
});
Button cancel = new Button("取消");
cancel.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
// TODO 关闭预览打印
hide();
}
});
this.addButton(print);
this.addButton(cancel);
}
}
然后是JSNI调用:
package net.carefx.component.editor.web.client.jsni;
/**
* 产程图打印脚本
* @author icarefx-lqy
*
*/
public class PartogramScript {
public PartogramScript()
{}
public native void excutePrint(String id)
/*-{
$wnd._divprint(id);
}-*/;
public native void getElementById (String id)
/*-{
$wnd._getdivbyid(id);
}-*/;
}
JSNI调用的JS脚本:
/**
* 打印DIV包裹的内容
* @param printdiv
* @returns {Boolean}
*/
function _divprint (id)
{
var win = window.open('','','width=925,height=1055');;
var headstr = "<html><head><title></title></head><body>";
var img = "<img src='"+id+"' />";
var footstr = "</body></html>";
win.document.open("text/html","replace");
win.document.writeln(headstr);
win.document.writeln(img);
win.document.write(footstr);
win.document.close();
win.print();
}
- 大小: 18.1 KB
分享到:
相关推荐
GWT-JSNI.pdf GWT-JSNI.pdfGWT-JSNI.pdf
gwt-jsni 用于 GWT 项目的 JSNI 实用程序。 用法 将依赖项添加到您的 Maven POM: < groupId>com.bytebybyte.gwt</ groupId> < artifactId>jsni < version>1.0.0 < scope>provided 和你的 .gwt.xml 文件: ...
GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文主要介绍如何利用 GWT 进行 Ajax 的开发。 GWT特性简介 1.动态,可重用的UI组件 GWT提供的...
官网gwt SDK ,通过java 开发前端页面,并且自动解决页面兼容及国际化问题,以MVP为主开发模式
通过这本精巧的食谱,深入了解GWT编程世界,其中介绍了GWT Toolkit的常用配方! 它涵盖了广泛的主题,从示例应用程序和面试问题到回调功能和各种小部件。
Google Web toolkit (gwt)的介绍,可以快速进入
很好的一篇论文,主要讲解google的gwt框架及j2ee的结合
4. JSNI 5. 在GWT中使用XML 6. GWT控件详解 7. 使用GWT控件 8. GWT-RPC 9. Ext GWT 10. (实战)俄罗斯方块游戏 11. (实战)费用申请审批流程 12. GWT与Flex整合 13. 图片缓存 CSS Sprite 14. 本地化 15. 其他高级功能
smartgwt最新版本GWT的DEMO 谷歌web工具箱实例
gwt 练习gwt 练习gwt 练习gwt 练习
Gwt中文手册,GWt入门Gwt中文手册,GWt入门Gwt中文手册,GWt入门
GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文主要介绍如何利用 GWT 进行 Ajax 的开发。 Ajax技术是当前开发web应用的非常热门的技术,也是Web...
gwt开发实例实现web +ajax
GWT API文档(史上最全),通过java写WEBUI,开发必不可少的文档,Gwt将不同模块页面生成到相关文件及页面,使用IFrame方式将各个模块组合在在HTML页面中
EXT-GWT2.0.1+API+DOC gwtdesigner Gwt-Ext基础-中级-进阶 GWT快速开发 GWT入门 GWT中文教程
NULL 博文链接:https://musicmmm.iteye.com/blog/751262
fwefwefwGWT工具GWT工具GWT工具GWT工具GWT工具GWT工具
Accelerated GWT: Building Enterprise Google Web Toolkit Applications
GWT操作数据库例子,用表格显示在页面上!