W-ELP takes unless a print job is processed no system resources. There are 2 main ways to implement a print data stream based interface into the spooler:

  • As a new Port Monitor
  • As a new Print Processor

The ELP functionality supports both ways of integration. If you use the ELP Print Processor and you have used only Microsoft drivers, then you will have with W-ELP still the 100% compatibility to all printing functions. If you did use the manufacturer drivers, then you might loose in very rare cases some functionality. If a user detect that, you still can either install 2 queues or use the ELP as a Port Monitor. See here for further details: Sharing print queues using TCP/IP services (LPR protocol)

 

The standard way how MS Windows processed the print data exposes this picture:

 




Whenever a MS Windows driver is installed, there is definitively installed a complete queue based printing system. Once the properties of a queue are opened the displayed tabs underline this statement. The main tabs are

Security Who is allowed to use the queue, mainly when it is shared
Share Make the queue publicly usable for everyone in the domain, anyway depending upon the security settings
Port Tells the port monitor how to address the printer (USB, LPT1, Standard TCP/IP, LPR etc)
Hint: Just in case you pool 2 or more printers, the through-put will be doubled or ...
Advanced

The main tab which defines
- the final driver the queue uses
- the time (window) the queue is able to print
- if the jobs are deleted after being printed
- and which Print Processor is used.


There are even more ways for printing:

  • From a Windows based application the internal data stream called (EMF/XPS) runs through the selected (PCL5) driver, shows up in the queue and when the status changes to printing, windows calls the Print Processor who does the final copy management and sends the data to the Port Monitor.
  • If you print via the shared port (in the graphics below marked with the red rounded number 1, the external software already ripped the (PCL5) data stream. In other words the data stream is already in a format which the printer understands, and arrives directly in the spooling system of the queue. The selected driver in the queue is for such jobs not used. In this case we talk about so-called pure transportation queues.

This illustration shows the W-ELP integration into the MS Windows Spooling system by replacing the Print Processor:

Notes (1):

As mentioned above the print job can enter the print subsystem also directly as fully ripped and ready-to-print spool file, e.g. when printing via LPR/LPD (Microsoft LPD Service) or via RAW (stethos RAW-IN software module) to the Windows printer queue. There are even more ways how a send a print job to a Windows printer queue. The mentioned options are the most common ones.

 

Details regarding the ELP process integration

We just learned, that windows calls for the job with status "Printing" automatically the print processor, which is called welpprint.dll after ELP is activated.

This dll will call the ELP software kernel convert.exe located in the welp main installation path. It can be changed in the Admin Tab.

The convert.exe starts interpreting the configuration file convert.ini and finally reads the data stream in, applying all rules: Rules theory, how to trigger them

Finally the result is printed into an out file and at the very end of the process a trg file is generated as well,

The welpprint.dll waits for this trg file, reads the out file and sends it to the Port Monitor. Finally all two communication files are erased.

Important:

  1. Right after the installation, the windows system is NOT changed at all! No rights, no processes, nothing.
  2. The benefit of this file based communication is, that ELP can't loose any available print job! Even in case a fatal error appears in the ELP software, the queue will stop printing, but no job is lost. Also the job failing the system can be restarted by restarting the spooler. If it still causes trouble: Activate Help Me and restart the spooler again.
  3. Here is the explanation why you need to grant the right EVERYONE (German: Jeder) full access to the c:\ProgramData\WELP folder, in case other people are using the queue as well (Print Server):
    - The spooling process Print Processor is running under the basic windows user system, but(!) the user rights are applied.
    - For ELP this means: the kernel software convert.exe is executed under user system and all IOs are under that user. Even if the job is archived on another server, you must grant the writing rights to the user system of this PC!
    - IO files are the OUT and TRG communications files. So they are written under the user system! Now the Print Processor with user rights may read those two files and print correctly, but if the security rights of the c:\ProgramData\WELP folder is NOT EVERYONE, the user has no rights to delete the 2 files. As a result, the files remain, the hard disk gets full, and in worst case, MS Windows will stop working! In the best case W-ELP will warn you and stop printing.

The installer alters the following components on your system:

  • Creates the installation directory and copies the required program files
  • Adds registry entries: HKLM - Software - WOW6432NODE - welp
  • Adds print processor 'welpprint' to the registry and copies it to system32\spool\prtprocs\...\ folder
  • Adds the shortcut "Enhanced Laser Printing ELP" in Program Group/Start menu