2012-04-20 35 views
5

我試圖打印JTableprint()方法,直到我遇到這種情況。假設我想在之前打印的第一頁(不是標題)中輸入文本「報告」,最後輸入文本「這是報告結束」。我希望再次澄清一下,我不需要頁眉或頁腳,只有當我打印它們時,纔會將該文本顯示在最後一頁的第一頁和最下面的頂部。在JTable之前和之後附加打印文本

我該怎麼做?

+0

不可能。 Actuall dublicate! – Vagelism 2012-04-20 18:49:05

+0

好的。我認爲它被刪除了!謝謝! – Vagelism 2012-04-20 18:54:25

回答

4

執行此操作的一種方法是將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; 
    } 
} 
+0

謝謝,但似乎仍然提高我的技能!似乎只打印2行很複雜。這是它的方式嗎?更簡單的東西? – Vagelism 2012-04-20 18:36:22

+1

我已經闡述過了;您可能必須使用平臺的打印預覽稍微做一點實驗。 – trashgod 2012-04-20 19:06:38

相關問題