Controle de Impressão

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