Make sure that you have enough space to spool print jobs. 500 MB extra in /var is a minimum according to Sun.
If your printer is a local printer, connect it to your machine.
If your printer is a network printer, connect it to the network. See that it has an IP address which can be resolved using any of your name services (files, dns, ldap, ...).
Use either /usr/sadm/admin/bin/printmgr (GUI) or lpadmin (TUI). The admintool from Solaris 8 and previous is obsoleted. Other administrative tasks are executed using smc, the Solaris Management Console. Printing, however, uses a different graphical interface. The lpadmin command still works as you would expect. This is how you add a new printer on the command line:
# lpadmin -p newprinter -v /dev/pts/6 -m netstandard -T PS -I postscript
This is for a local printer. Network printers are added using the /dev/null device. This is again for a PostScript printer:
# lpadmin -p prtr -v /dev/null -m netstandard -o dest=printer_hostname -T PS -I postscript
After you've added your printer, make it accept jobs from other hosts:
# accept newprinter
If you have multiple printers, you may want to make classes for each type of printer you have. E.g. a printerclass with color printers which are only accessible by research members, and a printer class with monochrome printers, available for all users.
Initialize a class and assign it to a printer, simply by naming the class, this will create it:
# lpadmin -p newprinter -c newclass
Make the new class available to other hosts:
# accept newclass
Check that both lpd and lpsched are running. If they are not, start them using the lp script in /etc/init.d with the start argument.
Use the lpstat command to check that the printer is accepting jobs.
Set the default printer using either the PRINTER shell variable, or using the -d option to lpadmin:
# lpadmin -d newclass
This will make newclass the default printerclass. If you only want a default printer, not an entire class of printers, use that printer's name instead.
Test that your printer is working using the lp command, e.g.:
user@host ~> lp /etc/profile
Don't forget to format non-text files to something the printer understands, e.g. PostScript. You may want to install the a2ps package to have some converting tools at hand.
In order to avoid compatibility problems between different versions of the Line Printer Daemon on different versions of Unix, you may want to look into CUPS, the Common Unix Printing System, which uses IPP, so it is also by default compatible with Windows systems.
Troubleshooting lpd problems is imho best done by eliminating the erroneous printer and/or printclass and adding them again. Their will be no end to your misery if you try to single out the bug, in my experience at least there wasn't.