Ciao ragazzuoli mi rivolgo a voi perchè non so proprio dove sbattere la testa
Allora mi sono creato una classe che stampa un documento di acquisto preso dal mio db ... tutto funziona egragiamente, anke se mi sono dovuto creare delle funzioni per centrale il testo e via discorrendo ... la cosa che non capisco è come faccio e dirli che ho + di una pagina ...
espongo il mio codice:
ho un JButton che manda la stampa:
stampaDocumento stampa = new stampaDocumento();
stampa.passaDocumentiID(docID);
stampa.stampaDocumento();
e questa è la classe stampa:
package stampe;

import globali.jcFunzioni;
import globali.jcPostgreSQL;
import java.awt.print.*;
import java.awt.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;


public class stampaDocumento implements Printable {

public int docID = -1;
private funzioniComuniStampe fun = new funzioniComuniStampe();
private int pagVecchia = -1;


public int print(Graphics grap, PageFormat pageFormat, int pageIndex) throws PrinterException {
int metro = 0;
ResultSet ordine = null;

Graphics2D g2d = (Graphics2D) grap;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());

metro = (int) pageFormat.getImageableY();
metro = fun.stampaLogo(g2d, pageFormat, metro);


jcPostgreSQL.queryDB("SELECT l.listinoid, l.nome, o.qnt, o.p_vendita, o.iva, o.sconto, l.um FROM ordini_oggetti AS o " +
" INNER JOIN listino AS l ON (o.listinoid=l.listinoid) " +
" WHERE o.ordineid=" + docID +
" ORDER BY l.listinoid");

int latoMassimoY = (int)((pageFormat.getImageableHeight() - pageFormat.getImageableY() * 2) * 80 / 100);

try {
Double temp = 0.00;
scorr = new Point(0,0);
oggetti = new Point(0,0);

while (jcPostgreSQL.query.next()) {



metro += scorr.y;

//se le righe sono di più voglio creare una nuova pagina
if (metro>latoMassimoY)
return PAGE_EXISTS;

}
} catch (SQLException ex) {
Logger.getLogger(stampaDocumento.class.getName()). log(Level.SEVERE, null, ex);
}

return Printable.NO_SUCH_PAGE;
}

public void passaDocumentiID(int documentoID) {
docID = documentoID;
}

public void stampaDocumento() {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(this);
job.setJobName("PapiniComputer - Stampa documento ID " + Integer.toString(docID));
boolean ok = job.printDialog();
if (ok) {
try {
job.print();
} catch (PrinterException ex) {
/* The job did not successfully complete */
JOptionPane.showMessageDialog(null, ex);
}
}

}
}
e mi stampa una pagina bianca ... eppure nel debug tutto funzica .... (la classe non l'ho postata tutta ...)
io abituato con il vb li dicevo si c'è un'altra pagina, no non ci sono + pagine ... qua è lo stesso ??

thanks for help