In addition printers contain custom specific IP blocks related to everything from ethernet to scan and print functionality. It is just not feasible for someone to be able to write custom firmware for a printer without access to the hardware documentation for these devices. More sophisticated printers even have multiple CPUs for doing various tasks.