This is a big area. Without trying to answer all the questions, here are the main areas.
How to get your data to the printer
Do you have a spooler set up to do this?
A spooler can do a lot of necessary conversions if set up right.
Do you have the required drivers set up?
What kind of printer, Parallel port, USB, Network Connected
What kind of data?
Text
Graphics
Formatted Text
Is some kind of conversion needed, or will the printer understand
your data directly?
Assuming you can send the file to the printer from a shell script, you can always
use system() to perform an identical operation from a program, Photon or otherwise.
That is not always what you want to do.
On top of all this, Photon may be used to format the output in the same way you use
it to display information on the screen, using widgets.