Boa tarde galera, to com uma duvida que acredito eu que seja bem fácil de resolver, só não to sabendo usar bem a classe Printable, nunca tinha usado métodos de impressão em java antes, então desculpem qualquer erro grotesco que encontrarem.
Bem eu estou usando o seguinte código
public class Impressao1 implements Printable {
public Impressao1() {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
printJob.setJobName("M&K Papelaria Cupom");
try {
if (printJob.printDialog()) {
printJob.print();
}
} catch (Exception PrintException) {
PrintException.printStackTrace();
}
}
public int print(Graphics g, PageFormat pageFormat, int page) {
int i;
Graphics2D g2d, g2d2;
if (page == 0) {
g2d = (Graphics2D) g;
g2d.setColor(Color.black);
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
g2d.setFont(new Font("Arial", Font.PLAIN, 10));
g2d.drawString("M&K Papelaria", 50, 30);
g2d.setFont(new Font("Arial", Font.PLAIN, 8));
g2d.drawString("Cupom não fiscal", 47, 45);
g2d.drawLine(0, 50, 180, 50);
g2d.setFont(new Font("Courier New", Font.BOLD, 8));
g2d.drawString("Descrição", 10, 58);
g2d.drawString("Quant.", 75, 58);
g2d.drawString("Valor", 130, 58);
g2d.drawLine(0, 60, 180, 60);
int loop = 70;
for (i = 0; i < 80; i++) {
g2d.setFont(new Font("Arial", Font.PLAIN, 7));
g2d.drawString("" + i, 10, loop);
g2d.drawString("CLIPS ACC 3/0", 15, loop);
g2d.drawString("1", 75, loop);
g2d.drawString("2,50", 130, loop);
loop += 10;
}
return (PAGE_EXISTS);
} else
return (NO_SUCH_PAGE);
}
public static void main(String s[]) {
new Impressao1();
}
}
Oque eu estou querendo é imprimir em uma impressora térmica não fiscal um pedido, só que quando as mercadorias ultrapassam uma folha ele não imprime, ou seja, só ta imprimindo uma folha e para o serviço, alguém saber como posso resolver ?