Вопрос по swing, java – Добавить текст для печати до и после JTable

6

Я пытаюсь напечататьJTable иprint() Метод прекрасно работает, пока я не приду к этому сценарию. Допустим, я хочу напечатать раньше, только на первой странице (не в заголовке) текст & quot; Отчет & quot; и в конце текст «Это конец отчета». Я хотел бы еще раз уточнить, что мне не нужен заголовок или нижний колонтитул только для того, чтобы текст отображался в верхней части первой и нижней части последней страницы при их печати.

Как я могу это сделать?

Хорошо. Я думаю, что это удалено! Спасибо! Vagelism
Невозможно. На самом деле дублировать! Vagelism

Ваш Ответ

1   ответ
4

Один из способов сделать это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;
    }
}
Я разработал выше; вам, возможно, придется немного поэкспериментировать, используя предварительный просмотр вашей платформы.
Спасибо, но, похоже, все еще продвинулись за мои навыки !!! Кажется, сложно печатать только 2 строки. Это так и должно быть? Что-то более простое? Vagelism

Похожие вопросы