code_junkie

Can a Java Applet use the printer?

Nov 13th, 2011
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. public class HTMLPrinter implements Printable{
  2. private final JEditorPane printPane;
  3.  
  4. public HTMLPrinter(JEditorPane editorPane){
  5. printPane = editorPane;
  6. }
  7.  
  8. public int print(Graphics graphics, PageFormat pageFormat, int pageIndex){
  9. if (pageIndex >= 1) return Printable.NO_SUCH_PAGE;
  10.  
  11. Graphics2D g2d = (Graphics2D)graphics;
  12. g2d.setClip(0, 0, (int)pageFormat.getImageableWidth(), (int)pageFormat.getImageableHeight());
  13. g2d.translate((int)pageFormat.getImageableX(), (int)pageFormat.getImageableY());
  14.  
  15. RepaintManager rm = RepaintManager.currentManager(printPane);
  16. boolean doubleBuffer = rm.isDoubleBufferingEnabled();
  17. rm.setDoubleBufferingEnabled(false);
  18.  
  19. printPane.setSize((int)pageFormat.getImageableWidth(), 1);
  20. printPane.print(g2d);
  21.  
  22. rm.setDoubleBufferingEnabled(doubleBuffer);
  23.  
  24. return Printable.PAGE_EXISTS;
  25. }
  26. }
  27.  
  28. HTMLPrinter target = new HTMLPrinter(editorPane);
  29. PrinterJob printJob = PrinterJob.getPrinterJob();
  30. printJob.setPrintable(target);
  31. try{
  32. printJob.printDialog();
  33. printJob.print();
  34. }catch(Exception e){
  35. e.printStackTrace();
  36. }
Add Comment
Please, Sign In to add comment