Udskrift af JTabel på flere sider ??
Jeg har denne kode som udskriver et JTabel, men der kommer kun én side ud, hvor den cutter resten af tabellen. Nogen der kan sige mig hvad jeg skal gøre for at den udskriver over flere sider ??-----
package View;
import java.awt.*;
import javax.swing.*;
import java.awt.print.*;
import java.awt.Component.*;
import java.awt.geom.Dimension2D.*;
import java.awt.Dimension.*;
import java.awt.Image.*;
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();
printJob.setPrintable(this);
if (printJob.printDialog())
try {
printJob.print();
} catch(PrinterException pe) {
System.out.println("Printerfejl: " + pe);
}
}
public int print(Graphics g, PageFormat pf, int pageIndex) throws PrinterException
{
if (pageIndex != 0)
return NO_SUCH_PAGE;
if (g instanceof Graphics2D)
{
Graphics2D g2 = (Graphics2D)g;
double dXscale = pf.getImageableWidth()/ pf.getWidth() ;
double dYscale = pf.getImageableHeight()/ pf.getHeight();
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.scale( dXscale, dYscale );
componentToBePrinted.paint(g2);
return PAGE_EXISTS;
}
else
return NO_SUCH_PAGE;
}
public static void disableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);
}
public static void enableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(true);
}
}
