I am in the same situation where i want to calculate pages against balance for students before the ptinjob is printed.
So i did try the PauseAllNewJobs and it works ok.
The printjob is paused and i can do the calculation.
The problem is when to release the printjob on the fly.
Some printjobs are never released(resumed) and a manually release of printjob is required.
See the sub below how i did.
Private Sub pPrinter_JobAdded(ByVal sender As Object, ByVal e As PrinterQueueWatch.PrintJobEventArgs) Handles pPrinter.JobAdded
e.printjob.paused = True
e.printjob.paused = false
Anyone has an idea how to correct this?