JSNI를 통해 GWT 웹 페이지 내용 인쇄
4104 단어 gwt
먼저 인쇄 인터페이스를 미리 봅니다. 코드는 다음과 같습니다.
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();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
GWT 2.8.2와 Maven으로 Hello World를 진행하도록 하겠습니다., 읽었다 , 있다 , 해 보았다 , 그래서 적어 두었다. 최근의 웹 응용 프로그램에서는 REST라는 개념과의 통합에 지쳐 있기 때문에 클라이언트 개발에 있어서 GWT가 대단하겠지. 에서도 썼듯이 RSocket과 g...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.