Eu resolveria isso adicionando um ouvinte ao seu aplicativo e executando-o no backround.
Se você olhar para o javax.print.PrintService; link para a documentação encontrada: aqui você encontrará um método chamado addPrintServiceAttributeListener que permite registrar um ouvinte para eventos de impressão.