ELP uses a very nice and usually easy to handle trick, to sort the printed documents. Actually this is done by the windows operating system itself. ELP searches for all needed information in the data stream like Zip Code Country etc and then archives in the frist step the job using exact those variables. So all jobs are sorted automatically. Then a second queue puts the OMR marks on the pages, but only if the amount of pages are less or equal the amount of pages the inserter is able to handle.

If the jobs does arrive as a complete mail merge print job, then first split the job into its single documents.(This is not shown here)

For a better explanation for the Postal Optimization implementation this example uses 2 inifiles. The default executed convert.ini does:

  • archive all arriving jobs. It is assured, that they are already properly split. So each job is one invoice/delivery note etc.
  • call for any job arriving in the queue named ELP_OMR the config file ELP_OMR.INI, which is just used to put the OMR marks on.
  • finds a trigger term, which will copy all stored files into the ELP_OMR queue. That trigger file can be send using a timer


;. . . Standard settings

; Define the needed variables and initialize them


; Turn it on to fimnd last page nummber for OMR handling



; use this infile for any data coming into ELP OMR Queue


[Get Custmer Number]




[Is it an invoice?]


; then do not print


; But store the job to the OMR_Wait_Archive directory, named by the previous collected variables


; Instead of creating for each document single fields in the archive,

; the job is added, just in case an archived document with the Customer number already exist


; Up to here all jobs which needed to be stored are processed and all the other ones are simply printed, if they are not coming through the ELP_OMR queue. Finally the convert.ini does need to process the trigger, that manages to print all stored files. So add also those lines:

[Trigger file for releasing all stored OMR jobs]

search_binary=Start all collected OMRjobs

; then do not print


; and call an external batch process to reenter the archived data to queue with queue and share name: ELP_OMR


; exit



; Defines all needed OMR commands (use rule assistant for defining them)

; Turn OMR on


; settings type of OMR


; define the lines


; Enable continous sequence control counting.


; Put insertion command always on last page.


; Note: If the job does have more pages then the machine can add into envelope, then move the job out into another output tray, so they can be inserted by hand.


[Test for amount of pages]

; the first trigger becomes always true


; then check upon the maximum pages to be put into the envelope using the secondary trigger key:


; perform an ELP command, as job must go to another out tray


; and turn the OMR OFF


; If on every page the shipping address is printed, then you can remove the second rule and add the key


; into the section global above.

REM This DOS batch file is needed to resend the collected jobs to the OMR queue.

REM The file is located in Workpath folder (default: \ProgramData\Welp).

REM send all files from archive to the OMR queue, file per file. The receiving queue has the share name ELP_OMR

FOR %%i in (c:\ProgramData\Welp\OMR_Wait_Archive\*.*) do copy /b %%i \\\ELP_OMR

REM and then delete all files

del /Q c:\ProgramData\Welp\OMR_Wait_Archive\*.*



  • You may have noticed, that the example starts the archive file name with fixed text inv_. If you have different type of documents you either can easily separate them using this method. Even the OMR_PRINT.BAT will print them in the sorted order.
  • If different folks to work on different document types, make for each type an own print trigger job.
  • The questions and answers document has an example for printing those documents time based. e.g. automatically every day at 4:00 pm.