LPRng is the "New Generation" of the LPR client program for the BSD LPD protocol.
The "classic" lpr client passed off most of the responsibility for processing to the LPD daemon. This is problematic if the host to which data is to go is on a remote host that has no "data filtering" capabilities.
Moreover, it required that configuration information be managed on the local host in /etc/printcap. If the printer is on a remote host, then there's no real value in managing information locally; that just increases the amount of system administration work required to manage printers.
LPRng allows the local client to manage filtering (if needed), and directs data directly to the remote host.
It apparently has other "neat functionality" too; I haven't had need for it thus far.
Possible source of public printing protocol standards