Why is there a need for installing the UNIX LPD service, port 515 listener, on your Windows system:
Because SAP uses communication method L (U is preferred) or Unix system prints using LP to the windows queue.
A system uses the LP / LPD protocol and you want to capture the printer data stream for further ELP processing.
As explained in the document Theory of installation of W-ELP in MS Windows the Print Processor implementation of W-ELP into the Windows Spooler might loose in very rare cases some manufacturer provided printing functionality, e.g. watermarks. However usually not duplex, stapling etc.
If a user misses one of those functionality, there are two possible solutions for that:
3.1) This solution does not need ELP at all, then simply install the manufacturer driver again, using the same port. You even can set priorities in the Enhanced tab of the queue properties to vote which process prints first, if both have data available. Then you are done here.
3.2) If ELP is needed, then install as well a second queue with the PCL5 driver from the manufacturer, using their print processor with the needed function, but do NOT activate ELP, instead set the port monitor to the shared ELP activated queue:
Note: If you need to capture standard TCP/IP raw (e.g. port 9100) jobs just continue to read here: Get IP Jobs Register Tab
Install the Windows LPD Service:
Just add the role "LPD Service" (here a screenshot of Windows Server 2019). For testing purpose it's recommended to install the LPR port monitor as well. Then open the services menu (c:\Windows\System32\CompMgmtLauncher.exe) and check if the LPD Print services is started.
A simple test:
Open the windows print queue which needs to receive the LPD jobs and usually where where ELP is activated. Set it temporarily to hold and enter a release (share) name if not jet done.
Open a command prompt (usually search in the start menu for CMD and press enter or click in the start menu on the option RUN... and enter CMD and press enter.
Type in lpr and press enter. If the tool is there you will get the command line help. Otherwise you might want to use lprU supplied with W-ELP:
lpr -S Server -P Printqueue AnyFileFoundInDirectory
c:\ProgramFile (x86)\WELP\lprU -S Server -P Printqueue -U Username AnyFileFoundInDirectory
The "Job" arrives not in the held queue, where it needs to be erased, as it is certainly NOT a print job.
To be sure that the security settings of the print server are not working against you, walk to any other PC and send again any file, using the same command. This time replace 127.0.0.1 (localhost) with the correct IP Address for the print server. As the Microsoft LPD cannot handle IPv6 please make sure that you use IPv4 all the time, especially when using DNS/Hostname resolution.
If you only need to receive a job from UNIX/Linux (version 1. and 2. above), then tell now the other side the IP Address of your sever and the share name of the queue, And this is it.
Sending a job from Windows queue A to B. (3.2 above)
Install now the new queue with the manufacturer driver. You may direct select the LPR Port protocol, enter the IP of your PC/Print Server (IPCONFIG) or if the queues are on the same server use the local IP (not 127.0.0.1 as this might not work all the time). As the queue name please enter the share name of the queue above.
Once a job form the new queue is printed, it should arrive in the second ELP activated queue. Try it with the windows test page.
Finally: In order to release the jobs turn the job holding off.
Note: The owner of the data stream (User name) could be lost on the way from Queue 1 to Queue 2. In that case
Make sure that the name is passed in the PJL section of the data stream.
If ELP is activated in Queue A, you may try to use "Process User" option with the "Current" or a "Named" user account, but this might not always work out.