Olá pessoal!
Eu estou usando a classe a seguir para imprimir a minha tela de cadastro.
Só que a imagem da tela de cadastro fica muito grande e fica cortada na folha A4.
Tem como deixar a imagem menor?
import java.awt.*;
import java.awt.print.*;
import javax.swing.*;
/**
*
* @author Andreia
*/
public class PrintableDocument implements Printable {
private Component compent;
public static void printComponent(Component c) {
new PrintableDocument(c).print();
}
public PrintableDocument(Component compent) {
this.compent = compent;
}
public void print() {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if (printJob.printDialog()) {
try {
printJob.print();
} catch (PrinterException ex) {
ex.printStackTrace();
}
}
}
public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex > 0) {
return (NO_SUCH_PAGE);
} else {
Graphics2D graph = (Graphics2D) g;
graph.translate(pageFormat.getImageableX(),
pageFormat.getImageableY());
disableBuffering(compent);
compent.paint(graph);
enableBuffering(compent);
return (PAGE_EXISTS);
}
}
private void disableBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);
}
private void enableBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(true);
}
}
Se alguém puder ajudar eu agradeço!