This week's book giveaway is in the OCPJP forum.
We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line!
See this thread for details.
The moose likes Swing / AWT / SWT and the fly likes Printing Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "Printing" Watch "Printing" New topic


Talhah Mafawalla

Joined: Nov 05, 2006
Posts: 24
Hi all,

I hope this is the right section to post this question. I was wandering if anyone might help me. I am trying to print a JTable and i also want to put a header on the page as well as a footer with the page number. Is there also a way to get a print dialog that asks for the printer and also i can set the page orientation.

Thanks in advance
Talhah Mafawalla
jad yuuu

Joined: May 06, 2007
Posts: 8
Use the helper Class:

import java.awt.*;
import javax.swing.*;
import java.awt.print.*;

public class PrintUtilities implements Printable {
private Component componentToBePrinted;

public static void printComponent(Component c) {
new PrintUtilities(c).print();

public PrintUtilities(Component componentToBePrinted) {
this.componentToBePrinted = componentToBePrinted;

public void print() {
PrinterJob printJob = PrinterJob.getPrinterJob();
if (printJob.printDialog())
try {
} catch(PrinterException pe) {
System.out.println("Error printing: " + pe);

public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
if (pageIndex > 0) {
} else {
Graphics2D g2d = (Graphics2D)g;
//g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());

public static void disableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);

public static void enableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);

More details on
Scott Cook

Joined: Aug 01, 2006
Posts: 14
Thanks Jad!

although the example doesn't do the headers and footers as requested, I found it helpful.

Here's my update to Jad's code, with the addition of automatically setting the origin and aspect ratio:

I agree. Here's the link:
subject: Printing