Salve raga

sto cercando di ottimizzare la stampa su a4 di alcuni jPanel (diverso formato) di un piccolo software...

Il problema principale è che le stampe sono sempre fuori formato, o più larghe, o più lunghe, e mai centrate...

Io dovrei adattare il jPanel al formato a4 e centrarlo nel foglio

Tramite ricerche su google, ho creato una classe con il seguente metodo print, ma sembra manchi qualcosa per risolvere il mio caso...

codice:
public void print() {
    
    PrinterJob printJob = PrinterJob.getPrinterJob();
    PageFormat pf = printJob.defaultPage();
    Paper paper = new Paper();
    paper.setSize(594.936, 841.536);
    double margin = 0;
    paper.setImageableArea(0, 0, paper.getWidth(), paper.getHeight() );
    pf.setPaper(paper);
    pf.setOrientation(PageFormat.PORTRAIT);
    
    PrintRequestAttributeSet attr_set =  new HashPrintRequestAttributeSet();
    attr_set.add(MediaSizeName.ISO_A4);
    
    printJob.setPrintable(this,pf);
    if (printJob.printDialog())
      try {
        printJob.print(attr_set);
      } catch(PrinterException pe) {
        System.out.println("Error printing: " + pe);
      }
  }
Quakche suggerimento?

Thanks