我正在尝试打印,JTable并且该print()方法在我遇到这种情况之前效果很好。假设我要打印之前,仅在第一页(不是标题)中打印文本“ Report”,最后在文本中打印“ This is the report end”。我想再次澄清一下,我在打印时不需要仅此页眉或页脚出现在第一页的顶部和最后一页的底部。
JTable
print()
我怎样才能做到这一点?
要做到这一点的方法之一是append()一系列适合的Printable一个实例java.awt.print.Book,如图所示这里。
append()
Printable
java.awt.print.Book
附录:JTable有一种getPrintable()应该简化事情的方法;这是一个大纲和简单的标题Printable:
getPrintable()
PrinterJob pj = PrinterJob.getPrinterJob(); Book book = new Book(); book.append(new Title(), pj.defaultPage()); book.append(table.getPrintable(...), pj.defaultPage()); book.append(new EndPage(), pj.defaultPage()); pj.setPageable(book); pj.print(); ... private static class Title implements Printable { Font font = new Font("SansSerif", Font.PLAIN, 48); @Override public int print(Graphics g, PageFormat pf, int pageIndex) throws PrinterException { Graphics2D g2d = (Graphics2D) g; g2d.translate(pf.getImageableX(), pf.getImageableY()); g2d.setFont(font); g2d.setColor(Color.black); g2d.drawString("Report", 50, 200); return Printable.PAGE_EXISTS; } }