【问题标题】:Append text for printing before and after a JTable在 JTable 之前和之后附加用于打印的文本
【发布时间】:2012-05-02 07:22:25
【问题描述】:

我正在尝试打印JTable,而print() 方法效果很好,直到我遇到这种情况。假设我想在第一页(不是标题)之前打印文本“报告”,最后打印文本“这是报告的结尾”。我想再次澄清一下,当我打印它们时,我不需要页眉或页脚,仅此文本出现在第一页的顶部和最后一页的底部。

我该怎么做?

【问题讨论】:

  • 不可能。实际复制!
  • 好的。我觉得是删了!谢谢!

标签: java swing printing jtable graphics2d


【解决方案1】:

这样做的一种方法是将append() 一系列合适的Printable 实例添加到java.awt.print.Book,如图here

附录: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 行似乎很复杂。这是必须的吗?更简单的东西?
  • 我已经在上面详细说明了;您可能需要使用平台的打印预览进行一些试验。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-17
  • 2019-07-07
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多