The reason to use DHCP is because you have random assignments (often not documented) and then you have conflicts, etc. That is why they created the reservation table in DHCP. Now you have all the convience of Static with the convenience of DHCP. If a printer is having issues using DHCP, then fix the printer.
I only assign static IP's to my infrstructure, such as routers, switches, and critical servers. I do this and do documentation one time when I build out an enviorment. My AD server, DHCP, DNS, Routers all get IP's static. All the other servers get reservations not in the scope, and the switches (normally) get private IP's on a different subnet asigned to vlan 1, and I assign myself a static IP in the range (or on the server, with a normal IP and the private IP) if I need to talk to them.