package org.xhtmlrenderer.demo.browser.actions; import org.xhtmlrenderer.demo.browser.BrowserStartup; import org.xhtmlrenderer.simple.XHTMLPrintable; import org.xhtmlrenderer.util.Uu; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; public class PrintAction extends AbstractAction { protected BrowserStartup root; public PrintAction(BrowserStartup root, ImageIcon icon) { super("Print", icon); this.root = root; } public void actionPerformed(ActionEvent evt) { Uu.p("printing"); final PrinterJob printJob = PrinterJob.getPrinterJob(); printJob.setPrintable(new XHTMLPrintable(root.panel.view)); if (printJob.printDialog()) { new Thread(new Runnable() { public void run() { try { Uu.p("starting printing"); printJob.print(); Uu.p("done printing"); } catch (PrinterException ex) { Uu.p(ex); } } }).start(); } } }