Imprimir um JFRAME

Pessoal estou criando aqui uma uma action para imprimir meu JFRAME. Tenho dois problemas. O primeiro que é que não tem o método ‘scale’ ( ‘g2.’ para pesquisar, não encontra scale), pra eu usar mesmo já tendo dado a importação. E o segundo é que ele acusa que não é possível converter de double para int em “g2.translate”. Caso esteja se perguntando, vou jogar os dados do JFrame dentro do JPanel para imprimir. Ajudem me plssss

import java.awt.Color;
import java.awt.print.PrinterJob;
import java.awt.print.Printable;
import java.awt.Graphics;
import java.awt.print.PageFormat;
import java.awt.Graphics2D;
import java.awt.print.PrinterException;
private void ImprimirActionPerformed(java.awt.event.ActionEvent evt) {                                         
    PrinterJob job = PrinterJob.getPrinterJob();
    job.setJobName("Print Data");
    
    job.setPrintable(new Printable(){
        public int print(Graphics pg, PageFormat pf, int pageNum){
            
            if(pageNum>0){
                return Printable.NO_SUCH_PAGE;
            }
            Graphics g2 = (Graphics2D)pg;
            g2.translate(pf.getImageableX(), pf.getImageableY());
            
            g2.scale(0.24,0.24);
            
            jPanel1.paint(g2);
            return Printable.PAGE_EXISTS;
        }
    
    });
        boolean ok = job.printDialog();
        if(ok){
            try{
                job.print();
            }
            catch (PrinterException ex){}
                
        }
}