私は印刷しようとしていますが、このシナリオに到達するまで、JTable
この方法はうまく機能します。print()
前に、最初のページのみ (ヘッダーではなく) に「レポート」というテキストを印刷し、最後に「レポートの終わりです」というテキストを印刷したいとします。ヘッダーやフッターは必要ないことをもう一度明確にしたいと思います。このテキストは、印刷時に最後のページの最初と最後に表示されます。
これどうやってするの?
私は印刷しようとしていますが、このシナリオに到達するまで、JTable
この方法はうまく機能します。print()
前に、最初のページのみ (ヘッダーではなく) に「レポート」というテキストを印刷し、最後に「レポートの終わりです」というテキストを印刷したいとします。ヘッダーやフッターは必要ないことをもう一度明確にしたいと思います。このテキストは、印刷時に最後のページの最初と最後に表示されます。
これどうやってするの?
これを行う 1 つの方法は、ここに示すようにappend()
、一連の適切なPrintable
インスタンスを に作成することです。java.awt.print.Book
補遺:物事を単純化JTable
する方法があります。getPrintable()
概要と簡単なタイトルは次のPrintable
とおりです。
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;
}
}