On the Windows side, set up AshLPD just like you would for the normal case. You don't really need to do anything different on the AshLPD side for LPD support, except that maybe it would be nice to set it up to be listening on the standard LPD port, which is 515. So I launched my AshLPD with the /PORT:515 switch.
In this example, I just launched a regular instance of A-Shell/Windows and executed the following from the dot prompt: ...
It comes up as usual, except note the port in the title bar and in the status window...
On the Linux side, you need to define an LPD printer. To do this, I opened the browser from the Linux console (CentOS 7 in this example) and browsed to the CUPS URL of localhost:631, clicked on the Administration tab, then the Add Printer option, then selected LPD/LPR Host or Printer ...
On the next screen, you need to specify the AshLPD workstation hostname and the AshLPD printer name. In this example, I am using a printer callled pdfx (for which there must be a printer init file on the AshLPD workstation.) I'm also using the workstation's IP address instead of a FQDN ...
On the next screen, we specify the name of the Linux print queue (ashpdfx) and a description ...
Next, we specify the Generic printer make ...
and Generic text-only model:
Now we can print to it from Linux using the standard lpr command ...
In the above example, I printed the text file ersatz.ini as a test, but any print file would work (whether or not it contains //GDI directives).
If everything is working, you'll see the AshLPD program acknowledge the request...
One problem with this example is that by default, the PDFX printer will prompt for the filename to save the PDF as, which it did in my test. But in a real production environment, obviously you can't rely on anyone monitoring the AshLPD console and responding to user prompts.