Cancelling or deleting a job from the print queue takes ages in Windows. This is a common annoyance, which pretty much anyone who has ever used printers would be familiar with.
Apparently, this occurs because the temporary file created for the print job can’t be deleted while it is still being accessed by Windows. The solution is to manually kill the spoolsv.exe service using Task Manager and delete all job files present in C:WindowsSystem32spoolPRINTERS. Off course, if you need to continue printing you would have to either restart your computer or manually restart the spoolsv.exe service.
The trouble with this solution is that it demands too much work. However, a helpful Reddit user has created a batch file to automate the process. In order to use it you can download the batch file from here or manually copy the following code into Notepad and save it as file_name.bat.
echo Stopping print spooler.
net stop spooler
echo deleting stuff... where? I'm not sure. Just deleting stuff.
FOR %%A IN (%systemroot%system32spoolprinters*.*) DO DEL %%A
echo Starting print spooler.
net start spooler
Now, whenever you need to delete all printing jobs, just double click on the batch file. However, be careful while using this in a work environment as if you are on a print server, it would cancel printing jobs for all connected printers.