You most likely need to hook into the spool server in order to do what you want.
This CodeProject article describes how to do it.
API hooking revealed[
^]
More specifically you need to look into methods inside
spoolsv.exe
,
spoolss.dll
and
gdi32.dll
Here is a list of printer functions
Print Spooler API Functions[
^]
Good luck with the coding.