Как напечатать некоторые элементы в gwt

Я хочу напечатать одну панель страницы в 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 для печати карты Google.

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.

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

}-*/;
Другие вопросы по тегам