Печать двух Jpanels в одном документе - PullRequest
0 голосов
/ 22 июня 2009

У меня есть две разные панели, но мне нужно отправить их в одном документе на две страницы. Первая страница печатается спереди, а вторая - сзади, может кто-нибудь, пожалуйста, помогите мне, я отправил одну jpanel, но как отправить вторую с этим. Вот мой код

private void printCard() {

        PrinterJob printjob = PrinterJob.getPrinterJob();
        printjob.setJobName(" CARD ");
        Printable printable = new Printable() {
                public int print(Graphics pg, PageFormat pf, int pageNum) {
                    if (pageNum > 0) {
                        return Printable.NO_SUCH_PAGE;
                        }

                        Dimension imageDimension = jLayeredPane2.getSize();
                        BufferedImage bufferedImage = new BufferedImage(imageDimension.width, imageDimension.height, BufferedImage.TYPE_INT_RGB);
                        jLayeredPane2.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);

                        Dimension backimage=jLayeredPane4.getSize();
                        BufferedImage bufferedImage1 = new BufferedImage(backimage.width, backimage.height, BufferedImage.TYPE_INT_RGB);
                        jLayeredPane4.print(bufferedImage1.getGraphics());
                        g2.drawImage(bufferedImage1, 0, 0, (int) pf.getWidth(), (int) pf.getHeight(), null);
                        return Printable.PAGE_EXISTS;

                }
        };

        Paper paper = new Paper();
        paper.setImageableArea(0, 0, 153, 243);
        paper.setSize(243, 153);
        PageFormat format = new PageFormat();
        format.setPaper(paper);
        format.setOrientation(PageFormat.REVERSE_LANDSCAPE);
        printjob.setPrintable(printable,format);

        try {
               printjob.print();
        } catch (PrinterException ex) {
                System.out.println("Sorry No Image Found" + ex);
        }

Спасибо }

1 Ответ

1 голос
/ 11 сентября 2009

Вместо использования java.awt.print.Printable используйте вместо него java.awt.print.Pageable. Это позволит вам указать две страницы, а затем распечатать в дуплексе, чтобы получить переднюю и заднюю часть. PrinterJob имеет функцию setPageable (), а также setPrintable (). Чтобы сделать это еще проще, используйте книгу и просто добавьте две печатные формы, по одной на каждую страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...