1 package fr.orsay.lri.varna.applications;
5 import java.awt.print.*;
7 public class VARNAPrinter implements Printable {
8 private Component componentToBePrinted;
10 public static void printComponent(Component c) {
11 new VARNAPrinter(c).print();
14 public VARNAPrinter(Component componentToBePrinted) {
15 this.componentToBePrinted = componentToBePrinted;
19 PrinterJob printJob = PrinterJob.getPrinterJob();
20 printJob.setPrintable(this);
21 if (printJob.printDialog())
24 } catch(PrinterException pe) {
25 //System.out.println("Error printing: " + pe);
29 public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
33 Graphics2D g2d = (Graphics2D)g;
34 g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
35 disableDoubleBuffering(componentToBePrinted);
36 componentToBePrinted.paint(g2d);
37 enableDoubleBuffering(componentToBePrinted);
42 public static void disableDoubleBuffering(Component c) {
43 RepaintManager currentManager = RepaintManager.currentManager(c);
44 currentManager.setDoubleBufferingEnabled(false);
47 public static void enableDoubleBuffering(Component c) {
48 RepaintManager currentManager = RepaintManager.currentManager(c);
49 currentManager.setDoubleBufferingEnabled(true);