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);
}
}
}
}