контролировать размер панели на печатной странице

Я хочу напечатать jpanel с двумя таблицами. Две проблемы, с которыми я столкнулся, во-первых, точность напечатанного изображения не очень хорошая. второй, как я могу контролировать размер jpanel на печатной странице ??

вот изображение распечатанной страницы с использованием программы просмотра xps (точность не очень хорошая)

там, чтобы сделать печатное изображение с такой точностьюкак это

и это код:

     PrinterJob printjob = PrinterJob.getPrinterJob();
    printjob.setJobName(" TESSCO CUSTOMER CARD ");

    Printable printable = new Printable() {

            public int print(Graphics pg, PageFormat pf, int pageNum) {

                    if (pageNum > 0) {
                            return Printable.NO_SUCH_PAGE;
                    }

                    Dimension size = jPanel1.getSize();
                    BufferedImage bufferedImage = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);

                    jPanel1.print(bufferedImage.getGraphics());

                    Graphics2D g2 = (Graphics2D) pg;
                    g2.translate(pf.getImageableX(), pf.getImageableY());
                    g2.drawImage(bufferedImage, 0, 0, (int) pf.getWidth(), (int) pf.getHeight(), null);

                    return Printable.PAGE_EXISTS;
            }
    };

    Paper paper = new Paper();
    paper.setImageableArea(0, 0,700,890);
    paper.setSize(700,890);

    PageFormat format = new PageFormat();
    format.setPaper(paper);
    format.setOrientation(PageFormat.LANDSCAPE);

    printjob.setPrintable(printable, format);
    if (printjob.printDialog() == false)
            return;

    try {
            printjob.print();
    } catch (PrinterException ex) {
            System.out.println("NO PAGE FOUND." + ex);

    }

Ответы на вопрос(1)

Ваш ответ на вопрос