<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></OBJECT>
<input type=button value=打印 onclick="document.all.WebBrowser.ExecWB(6,1)">
<input type=button value=直接打印 onclick="document.all.WebBrowser.ExecWB(6,6)">
<input type=button value=页面设置 onclick="document.all.WebBrowser.ExecWB(8,1)">
<input type=button value=打印预览 onclick="document.all.WebBrowser.ExecWB(7,1)">
<input type=button value=打印 onclick="document.all.WebBrowser.ExecWB(6,1)">
<input type=button value=直接打印 onclick="document.all.WebBrowser.ExecWB(6,6)">
<input type=button value=页面设置 onclick="document.all.WebBrowser.ExecWB(8,1)">
<input type=button value=打印预览 onclick="document.all.WebBrowser.ExecWB(7,1)">
import java.io.PrintWriter;import nextapp.echo2.webrender.Connection;
import nextapp.echo2.webrender.ContentType;
import nextapp.echo2.webrender.Service;
import nextapp.echo2.webrender.WebRenderServlet;
import nextapp.echo2.webrender.output.XmlDocument;import org.w3c.dom.Element;
import org.w3c.dom.Text;public class PrintPreviewService implements Service { private static final String SERVICE_ID = "PrintPreview"; public static final PrintPreviewService INSTANCE = new PrintPreviewService(); static {
WebRenderServlet.getServiceRegistry().add(INSTANCE);
} public String getId() {
return SERVICE_ID;
} public int getVersion() {
return DO_NOT_CACHE;
} public void service(Connection conn) throws IOException {
XmlDocument doc = new XmlDocument("html", null, null,
"http://www.w3.org/TR/xhtml1"); Element objectElement = doc.getDocument().createElement("OBJECT");
objectElement.setAttribute("id", "WebBrowser");
objectElement.setAttribute("classid",
"CLSID:8856F961-340A-11D0-A96B-00C04FD705A2");
// objectElement.setAttribute("height", "0");
// objectElement.setAttribute("width", "0");
Text trash = doc.getDocument().createTextNode("trash");
objectElement.appendChild(trash); Element printButtonElement = doc.getDocument().createElement("input");
printButtonElement.setAttribute("type", "button");
printButtonElement.setAttribute("value", "打印预览");
printButtonElement.setAttribute("onclick",
"document.all.WebBrowser.ExecWB(7,1)"); doc.getDocument().getDocumentElement().appendChild(objectElement);
doc.getDocument().getDocumentElement().appendChild(printButtonElement); conn.setContentType(ContentType.TEXT_HTML);
PrintWriter pw = conn.getWriter();
doc.render(pw);
pw.close(); }}
package nextapp.echo2.webcontainer.print;import nextapp.echo2.app.Component;
import nextapp.echo2.app.update.ServerComponentUpdate;
import nextapp.echo2.webcontainer.ComponentSynchronizePeer;
import nextapp.echo2.webcontainer.ContainerInstance;
import nextapp.echo2.webcontainer.DomUpdateSupport;
import nextapp.echo2.webcontainer.RenderContext;
import nextapp.echo2.webrender.output.CssStyle;
import nextapp.echo2.webrender.servermessage.DomUpdate;import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Element;
import org.w3c.dom.Node;public class PrintPreviewButtonPeer implements ComponentSynchronizePeer,
DomUpdateSupport { public String getContainerId(Component child) {
throw new UnsupportedOperationException(
"Component does not support children.");
} public void renderAdd(RenderContext rc, ServerComponentUpdate update,
String targetId, Component component) {
DocumentFragment htmlFragment = rc.getServerMessage().getDocument()
.createDocumentFragment();
renderHtml(rc, update, htmlFragment, component);
DomUpdate.renderElementAdd(rc.getServerMessage(), targetId,
htmlFragment); } public void renderDispose(RenderContext rc, ServerComponentUpdate update,
Component component) {
// TODO Auto-generated method stub } public boolean renderUpdate(RenderContext rc, ServerComponentUpdate update,
String targetId) {
DomUpdate.renderElementRemove(rc.getServerMessage(), ContainerInstance
.getElementId(update.getParent()));
renderAdd(rc, update, targetId, update.getParent());
return false;
} public void renderHtml(RenderContext rc, ServerComponentUpdate update,
Node parentNode, Component component) {
Element parentDiv = parentNode.getOwnerDocument().createElement("div");
parentDiv.setAttribute("id", ContainerInstance.getElementId(component));
Element iframe = parentNode.getOwnerDocument().createElement("iframe");
iframe.setAttribute("scrolling", "no");
iframe.setAttribute("src", rc.getContainerInstance().getServiceUri(
PrintPreviewService.INSTANCE)); CssStyle style = new CssStyle();
style.setAttribute("height", "25PX");
style.setAttribute("width", "200PX");
iframe.setAttribute("style", style.renderInline());
parentDiv.appendChild(iframe); parentNode.appendChild(parentDiv); }}
<html xmlns="http://www.w3.org/TR/xhtml1">
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" id="WebBrowser" height=0 width=0>trash</OBJECT>
<div id="c_44" style=" width:100%;height=100%;cursor:pointer;margin:0px;border-spacing:0px;
border:1px outset #6f6f8f;color:#efefff;background-color:#4f4f5f;
padding:3px 20px 3px 20px;" tabindex="0" onclick="document.all.WebBrowser.ExecWB(7,1)">
<center>
打印预览
</center>
</div></html>