Bom dia Pessoal,
Estou criando um sistema de Controle de Impressão, gostaria de rodar essa aplicação em segundo plano monitorando o Spooler, quando alguém enviar alguma impressão capturar as informações e gravar em Banco de dados.
Segue abaixo o meu código inicial:
package print;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.event.PrintServiceAttributeEvent;
import javax.print.event.PrintServiceAttributeListener;
public class Print{
public static void main(String[] args) {
//Localiza a impressora padrão
final PrintService impressoraPadrao = PrintServiceLookup.lookupDefaultPrintService();
final PrinterJob pj = PrinterJob.getPrinterJob();
try {
pj.setPrintService(impressoraPadrao);
pj.setPrintable(null);
}catch (PrinterException e){
e.printStackTrace();
}
impressoraPadrao.addPrintServiceAttributeListener(new PrintServiceAttributeListener(){
@Override
public void attributeUpdate(PrintServiceAttributeEvent psae) {
try{
pj.setPrintService(impressoraPadrao);
}catch (PrinterException e){
e.printStackTrace();
}
System.out.println(pj.getUserName()); //Nome do Usuário
System.out.println(impressoraPadrao); //Impressora que Imprimiu
System.out.println(pj.getCopies()); //Quantidade de Cópias
}
});
}
}