Here is a very, very, very basic Autohotkey script. It checks every ten seconds for the current ip and changes the default printer. If it's more like the solution you're looking for, feel free to enhance it!
Documentation about printui.dll can be found here:
http://www.microsoft...view/printuidll.mspx
#NoEnv
#persistent
#SingleInstance force
;#NoTrayIcon
SetTimer,Check,10000
Gosub,Check
return
Check:
if A_IPAddress1 = %OldIP%
Return
If A_IPAddress1 = 192.168.1.238
run,rundll32 printui.dll`,PrintUIEntry /y /n\\PCNV\PDFCreator
If A_IPAddress1 = 192.168.1.2
run,rundll32 printui.dll`,PrintUIEntry /y /n\\Machine2\Printer2
If A_IPAddress1 = 192.168.1.3
run,rundll32 printui.dll`,PrintUIEntry /y /n\\Machine3\Printer3
If A_IPAddress1 = 192.168.1.4
run,rundll32 printui.dll`,PrintUIEntry /y /n\\Machine4\Printer4
TrayTip,Default printer changed
OldIP := A_IPAddress1
Return