<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)">

解决方案 »

  1.   

    meizz(梅花雪),我知道你上面的代码,我只是想问一下我的那段代码为什么会使IE打开一个没有用的新窗口
      

  2.   

    package nextapp.echo2.webcontainer.print;import java.io.IOException;
    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>