There’s a disconnect when trying to use a service principle since Universal Print is technically an M365 thing. It seems that Universal Print was trying to remote workers printing to a centralized printer. However, enterprises need the ability to automate the printing jobs from software. In our case, we are printing PDFs that are generated and stored in Cosmos and trying to print them on local printers through a custom queuing process (i.e. auto insurance cards print to drawer 1 on printer A in letter, checks print to the MICR printer, etc).
This is different than impersonating users as these jobs are likely automated from Power Automate and Azure Functions.