我有两个不同的面板,但我需要将它们在一个文档中发送到两页。第一页打印在正面,第二页打印在背面,任何人都可以帮我吗?我已经发送了一个 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);
}
谢谢 }
最佳答案
不要使用 java.awt.print.Printable,而是使用 java.awt.print.Pageable。这将允许您指定两页,然后以双面打印以获得正面和背面。 PrinterJob 有一个 setPageable() 函数和一个 setPrintable() 函数。为了使它更容易,使用一本书并只需添加两个可打印的内容,每页一个。
关于java - 在一个文档中打印两个 Jpanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1026726/