【发布时间】:2013-03-13 01:39:25
【问题描述】:
我曾尝试在同一页面上打印 2 个 JPanel,每个 jpanel 都完全适合半页。
我所做的是将 jpanel 包装在另一个实现 Printable 的 jpanel 中。
问题是,只正确打印第一个(顶部)jpanel,
页面的其余部分用灰色方块填充
这是 Wrapper Jpanel 的代码
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
throws PrinterException
{
if (pageIndex == 0)
{
Graphics2D g2 = (Graphics2D) graphics;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.scale(.485, .473);
paint(graphics);
g2.setColor(Color.white);
g2.fillRect(0, 0, 1, 1);
return Printable.PAGE_EXISTS;
} else
{
return Printable.NO_SUCH_PAGE;
}
}
这是调用代码
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setJobName("Factura Procter & Gamble");
if (pj.printDialog())
{
try
{
for (int i = 0; i < 1; i++)
{
pj.setPrintable(listaPaneles.get(i));
pj.print();
}
} catch (PrinterException e)
{
System.out.println(e);
}
}
请帮帮我,谢谢。
【问题讨论】: