One of the most common annoyances for home PC users is down to their printers refusing to cancel any print jobs immediately when ordered to. Well, it’s a no-brainer that printers of modern days are just as unreliable and unstable as back in the days when they are just going mainstream (it’s beyond wonder why are we still stuck with the same technology for more than a decade…).
But then Windows also has to be blamed for this fiasco. You see, when users create a print job, the files to be printed will first be spooled before sending to the Windows Temp folder awaiting calls from the hardware printer. So if the Temp files are being used by Windows, it is virtually impossible for users to delete anything…well, unless if you restart your machine. Curse you, Windows!
Therefore, to overcome the limitations of both printers and Windows, there are three options for cancelling print jobs without waiting for ages. The first is by the creation of a Windows Batch File, while the second is through specifically-designed software capable of overcoming the limitations. The third option is well…manual cancellation, which is of course for geeks and nerds with too much brain cells and time at hand.
1. Delete Print Jobs Immediately via Windows Batch File
A Windows Service called Print Spooler is important to the spooling of files before and as they get to be printed. Therefore, stopping and restarting the service will allow Windows to immediately delete the print jobs. Under such theory, the batch file’s scripts will have to contain this:
@net stop spooler
@del %windir%system32spoolprinters*.* /q /f
@net start spooler
Simply open Notepad, copy and paste this 3-line script into it, and save it in any file name you like; without forgetting to add the all-important .bat file extension at the end of the file name. For example, you can save it under the name of ‘RefreshPrintSpooler.bat’ (without quotation).
However, do note that this batch file will delete ALL print jobs, including functioning print jobs, so this method is less feasible on a print server; you’ll delete all print jobs in queue by executing this batch file regardless of them being working or stalled!
2. Delete Print Jobs with Stalled Printer Repair, a free software from FantasticFreeware
Adam Pash of Lifehacker post this freeware up in case any users wanted the least geeky way to solve this problem: Delete Print Jobs is a utility that does the same job as the batch file above – only that it will only find and delete print jobs that are confirm stalled.
Stalled Printer Repaired works on Windows 2000, XP and Vista, but Windows 7 should be able to run it as well.
Download Stalled Printer Repair here.
3. Manually cancel print jobs and restarting the Printer Spooler Services.
This is a manual process of fixing stalled print jobs and is essentially a non-scripted version of the first method shown previously. Because of different printers and different Windows version, the steps below are optimized to suit all Windows version and on all types of printers:
1. Make sure all working print jobs are complete and that no new print jobs are being submitted.
2. Open Windows Task Manager and on the Processes tab, locate spoolersv.exe and kill it.
3. Open the C:WINDOWSSYSTEM32SPOOLPRINTERS in My Computer.
4. Delete all files located in this folder. Files in the Printers are named xxxx.spl, xxxx.shd where xxxx is a hexadecimal number. Files with .shd and .spl extensions are printer files.
5. Open the ‘Run…’ console and type in ‘services.msc’
6. Find a Windows Service called ‘Print Spooler’ and start the service. Your printer is now functioning properly again.
Regardless of which method you like to use, you can be assured that the stalled printer job handling is officially a thing of the past!