I am wondering which is the most pragmatic option for a function that prints. lets say I have a printer and a print method like so.
printerEngine.Print("StuffToPrint",Printer,Qty);
If something failed should I return a bool (in this case false) or raise a PrintingFailed event.
The printing failed event allows me to add more context as to why it failed but I am unsure as to the best way to proceed.
You probably want to fail with an exception, since something exceptional has happened to cause your print job to fail. You can include as much detail as you need in the exception and handle it where you need to. Maybe use a bool only if something happens that you expect that causes the job to fail.
Have a look at this blog entry from Eric Lippert on exception handling, it is a good guide.