Como dimensionar o .scale do Graphics2D?

Boa noite, tenho este método que com ele consegui imprimir um jPanel:

    PrinterJob job = PrinterJob.getPrinterJob();
    job.setJobName("Print JPanel");

    job.setPrintable((Graphics pg, PageFormat pf, int pageNum) -> {
        if (pageNum > 0) {
            return Printable.NO_SUCH_PAGE;
        }
        
        Graphics2D g2 = (Graphics2D) pg;
        g2.translate(pf.getImageableX(), pf.getImageableY());
        g2.scale(1.0, 1.0);
        
        jPanel1.paint(g2);
        return Printable.PAGE_EXISTS;
    });

    boolean ok = job.printDialog();
    if (ok) {
        try {
            job.print();
        } catch (PrinterException e) {
            e.printStackTrace();
        }
    }

Porém, no método o g2.scale(1.0, 1.0); eu não consigo usar de forma que ele se adeque a pagina de impressão automaticamente, ele sempre ficar maior que a pagina A4 ou menor, sendo que para ter um resultado satisfatório tenho que ficar mexendo manualmente no g2.scale(1.0, 1.0);. Já tentei getWidth, getHeight de todas as formas possíveis pegando as classes do PageFormat e não tive sucesso. Alguém já passou por algo parecido que possa me ajudar?