Good question, :-)
The fact is that this program allows you to strip out the file name from the command, then what it reads is the input that you pass to it,
man page for lpr[
^], reads as,
Quote:
If no names appear, the standard input is assumed.
Input can be the bytes that you want to send. In C# however, you would use the standard input for the process,
Process.StandardInput
Property (System.Diagnostics)[
^]. Then you write the bytes to this property (it is a writer object, read documentation for more).
To get the bytes, just use
File.ReadAllBytes(string)
of
System.IO
namespace, that would work perfectly. Then pass them via writer to the input stream.