【问题标题】:How to print some elements in gwt如何在 gwt 中打印一些元素
【发布时间】:2014-08-25 12:16:09
【问题描述】:

我想在 GWT 中打印一个面板。

但是有人说你必须使用iframe,因为它有打印方法。

我试过这段代码,但它不起作用:

     HTML html=new HTML("<iframe id="myframe"></iframe>") ;....
    searchButton.setWidth("80px");
            searchButton.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    MyNative.printIframeContent("myframe", "onlineMap");

                }
            });
    map = new SimplePanel();
    map.getElement().setId("onlineMap");
    map.add(mapView.getMapWidget());

mapView . 是一个返回 GWT MapWidget 的类的实例,以这种方式我想将 GWT 地图添加到 iframe,然后使用 iframe 的打印功能来打印谷歌地图

MyNative是一个使用GWT JSNI调用printPage javascript函数的类

function printPage(idMap,idFrame) {
    var myElement = document.getElementById(idMap);
    var iframe = document.getElementById(idFrame);
    var body = iframe.getElementsByTagName('body');
    body.innerHTML = myElement;
    iframe.contentWindow.print();
}

但浏览器无法加载 iframe 的正文。

【问题讨论】:

  • 它应该像HTML html=new HTML("&lt;iframe id="+myframe+"&gt;&lt;/iframe&gt;") ; 我的意思是用+符号附加字符串连接
  • 试着这样写"&lt;iframe id=myframe&gt;&lt;/iframe&gt;"
  • 当我评论这一行时:body.innerHTML = myElement;browse can load it
  • 什么是idMap??请显示打印页面的调用!!!

标签: java javascript gwt printing


【解决方案1】:

你可以试试这个:

String html = myPanel.getElement().getInnerHTML();
print(html);


public static final native void print(String html) /*-{

    top.consoleRef=$wnd.open('','_blank', "");
    top.consoleRef.document.write(html);
    top.consoleRef.print();
    top.consoleRef.document.close()

}-*/;

【讨论】:

  • 非常感谢,它可以工作,但它只打印地图而不是地图中的东西,我的意思是我有一些显示对象路径但不打印该路径的标记。
猜你喜欢
  • 1970-01-01
  • 2022-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
相关资源
最近更新 更多