RESOLVIDO: quem quizer a solução é só entrar em contato comigo, recriei essa classe de uma forma bem diferente.
Pessoal, estou com problemas em minha classe para imprimir um texto na impressora, eu mando imprimir e só imprimi a primeira página. Nunca tinha implementado esse Printable e agora estou apanhando pra ela. Outra coisa está na formatação dela, tive que usar uma gambiarra ali embaixo decrementando o valor de X para que o texto fique no lugar certo.
Segue meu código.
package cifraria.Kernel;
import java.awt.*;
import java.awt.print.*;
public class KernelImprimir implements Printable {
private String texto;
private Book book;
public void imprimir(String texto) {
this.texto = texto;
PrinterJob p = PrinterJob.getPrinterJob();
p.defaultPage();
p.setPrintable(this);
book = new Book();
book.append(this, p.defaultPage());
p.setPageable(book);
try {
if (p.printDialog()) {
p.print();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/** Método da interface Printable */
public int print(Graphics g, PageFormat format, int pageIndex) throws PrinterException {
if (pageIndex != 0) {
return NO_SUCH_PAGE;
}
Graphics2D g2d = (Graphics2D) g;
g2d.translate(format.getImageableX(), format.getImageableY());
Font titleFont = new Font("courier", Font.BOLD, 10);
g2d.setFont(titleFont);
g2d.setPaint(Color.black);
String buffer[] = texto.split("\n");
int i = 0, y = 0;
while (i < buffer.length) {
y = y + 12;
g2d.drawString(buffer[i], -48, y);
i++;
}
return PAGE_EXISTS;
}
}