The lpr command lets you put a print job in a local queue and notifies the local lpd daemon that new jobs are waiting in the spooling area.
The daemon either schedules the job to be printed locally, or if printing remotely, attempts to forward the job to the appropriate machine. If the printer can't be opened or the destination machine can't be reached, the job remains queued until the work can be completed.