static private class Printer extends Thread{
PrinterJob pj;
PageFormat pf;
Book bk;
public Printer(){
pj=PrinterJob.getPrinterJob();
pf = pj.defaultPage();
Paper p=pf.getPaper();
p.setImageableArea(0.0,0.0,p.getWidth(),p.getHeight());
pf.setPaper(p);
pf = pj.validatePage(pf);
bk=new Book();
}
public void append(ImagePanel image){
bk.append(image, pf);
}
public void print(){
pj.setPageable(bk);
if(pj.printDialog()){
try{
pj.print();
}catch (Exception e){
e.printStackTrace();
System.out.println("9\b"+getClass().getName()+".print:\n\t"+e.getMessage());
}
}
}
}
public void imprimir(final ImagePanel ip)
{
new Thread(){
public void run(){
Printer p=new Printer();
p.append(ip);
p.print();
}
}.start();
}
Esse codigo funciona, mas em tamanho A4 e imprime o panel do tamanho total da folha.
Queria saber se tem como eu imprimir em 5 cm X 9 cm...
alguem tem uma ideia de como eu seto esse tamanho?