Imprime legal, so que os primeiros registros, ou seja o que teria que ser a primeira pagina não imprime, só a partir da segunda.
if (event.getSource() == jbtRel) {
PrinterJob prnJob = PrinterJob.getPrinterJob();
PageFormat formPag = prnJob.defaultPage();
PagImp pags = new PagImp();
pags.relat =relatorio;
pags.qtdPags = 2;
Book book = new Book();
book.append(pags, formPag, 2);
prnJob.setPageable(book);
if(prnJob.printDialog()) {
try {
prnJob.print();
} catch (Exception PrinterException) {
JOptionPane.showMessageDialog(null, PrinterException, "Erro", JOptionPane.ERROR_MESSAGE);
}
}
}
[code]public class PagImp extends JPanel implements Printable {
public int qtdPags = 0;
public String[][] relat;
private int pagIni = 0;
private int pagFim = 0;
private int linha = 0;
public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {
System.out.println(relat[linha][0] + " " + linha + " " + pi);
if (pi > qtdPags) {return Printable.NO_SUCH_PAGE;}
Graphics2D g2 = (Graphics2D) g;
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.setColor(Color.black);
g2.setFont(new Font("Arial", Font.PLAIN, 12));
g2.drawString("Pagina : " + pi, 0,30);
g2.setFont(new Font("Arial", Font.PLAIN, 8));
for (int i=50; i < 600; i+=10) {
g2.drawString(relat[linha][0], 0,i);
g2.drawString(relat[linha][1], 350,i);
linha += 1;
}
paint(g2);
return Printable.PAGE_EXISTS;
}
}[/code]