Java 在JTable前后添加用于打印的文本
我正在尝试打印一个Java 在JTable前后添加用于打印的文本,java,swing,printing,jtable,graphics2d,Java,Swing,Printing,Jtable,Graphics2d,我正在尝试打印一个JTable,而print()方法非常有效,直到我来到这个场景。假设我想在打印之前,只在第一页(而不是页眉)打印文本“Report”,在最后打印文本“This is end of Report”。我想再次澄清,我不需要页眉或页脚,只需要在打印时将此文本显示在第一页的顶部和最后一页的底部 如何执行此操作?执行此操作的一种方法是将一系列合适的可打印的实例附加到,如图所示 附录:JTable有一种简化事情的方法;这里有一个大纲和简单的标题可打印: PrinterJob pj = Pr
JTable
,而print()
方法非常有效,直到我来到这个场景。假设我想在打印之前,只在第一页(而不是页眉)打印文本“Report”,在最后打印文本“This is end of Report”。我想再次澄清,我不需要页眉或页脚,只需要在打印时将此文本显示在第一页的顶部和最后一页的底部
如何执行此操作?执行此操作的一种方法是将一系列合适的
可打印的实例附加到,如图所示
附录:JTable
有一种简化事情的方法;这里有一个大纲和简单的标题可打印
:
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;
}
}
谢谢你,但我的技术似乎还是很先进!!!只打印两行似乎很复杂。这是必须的吗?更简单的事情?我已经在上面详细阐述了;您可能需要使用平台的打印预览进行一些试验。不可能。事实上,我们都是傻瓜!好啊我想它被删除了!非常感谢。