Ho scritto il codice qui sotto per stampare il contenuto di un JPanel funziona abbastanza bene
ma non riesco a posizionare header e footer potreste aiutarmi.
__________________________________________________ _________________
package print;
import java.awt.*;
import java.awt.print.*;
/**
* @author Thegamer
*/
public class PanelPrinter implements Printable {
avvio.DrawingPane toPrint = null;
public PanelPrinter(Component toPrint) {
this.toPrint = (avvio.DrawingPane)toPrint;
}
public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
if(pageIndex > 0) {
return NO_SUCH_PAGE;
} else {
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
double paperWidth = pageFormat.getImageableWidth();
double paperHeight = pageFormat.getImageableHeight();
float width = toPrint.getAsseX();
float height = toPrint.getAsseY();
double scaleX = 1.0;
double scaleY = 1.0;
//se la larghezza è maggiore della larghezza del foglio...
scaleX = (paperWidth / width);
scaleY = (paperHeight / height);
g2d.scale(Math.min(scaleX,scaleY) , Math.min(scaleX,scaleY));
g2d.scale(0.9,0.9);
toPrint.printAll(g2d);
g2d.translate(0+30,0+30);
g2d.setColor(Color.GRAY);
return Printable.PAGE_EXISTS;
}
}
}