Sometimes data streams need to be collected and printed in one shot, that no other data stream may appear in between. Like most cases, ELP offers several ways to do this, of course depending upon your needs.
MyPrintArchive: Store your print jobs into your personal folder, for archiving, reprinting etc.
Collect4Printing: Send the jobs on request in one shot to a predefined printer/MFP, so no other jobs can be printed in between
The Q/A document gives another example, where the jobs are printed x minutes after the last one arrived.
1. MyPrintArchive (see also for that example in the Self-training)
[When the word confidential is found]
; store the job into the user specific directory
; maybe only in PDF format
PDF_Arguments=-dVersion:14 -z -*c -*d -*e -*f -q -g
; If ELP generates more then one copy, then just the first one is needed
; Delete the job after 30 days.
All the jobs can now be reprinted using the Archive Tab or be further processed by another archive system or can be accessed by PPadmin's archive reprint tool on a normal user PC or on a Network drive
In the first step all Data streams are per default collected in an archive directory. After a special trigger expression is found in the actual data stream all jobs are printed and erased. This trigger expression could be easily send to the printer for example using a batch command, which print a predefined text file, containing the trigger expression.
Just two small rules are needed to automatically collect user based all jobs and send them with just one click to any printer/MFP.
; All jobs from every user are printed through this named queue which has the assigned port: NULL (if not working, try null)
; Store file to archive directory, coding the user name and time
; If Print files are older then 5 days erase them
; This is all what is needed to be done for jobs to this queue
; Whenever in any of the other activated queues a job with this content arrives:
; All stored jobs are inserted at actual jobs end
; and the trigger job is not printed
All you need now is a trigger job for printing the stored jobs. Therefore create maybe on a common network drive a file called Collect4Print.bat with the content:
echo "Collect4Printing: !PrintAll! (c)stethos" > \\###.###.###.###\PrinterShareName
####.###.###.### is the IP Address of your print server.
Now whnever a user double clicks on that batch file, the trigger job is sent to the ELP activated queue. Knoweing the user name will trigger the second rule and here we go.
Instead of sending all files, they can be grouped, for example if all jobs with invoice start inv... and delivery note with del... The rule action could look like this:
You also can create several batch files for different directories, file names or printers.
The provided MyPrintArchive.ini does the same as described above, but using only one queue. Every job sent to any queue will be stored in the same directory, and when the trigger jobs arrives, all stored jobs are sent to the trigger job receiving queue. Therefore the queue port is a real printer address and NOT null.
the Q/A document gives an other example, where the jobs are printed x minutes after the last one did arrive.
All the jobs can also be reprinted using the Archive Tab or be further processed by another archive system or can be accessed by PPadmin's archive reprint tool on a normal user PC or on a Network drive
3. Collect for Printing Version 2:
The exact same functionality as above, only that every job to every queue is archived, if the print trigger is NOT found. May save one license
[Collect Data Streams]
; Search this trigger in the data stream
; If found add and erase all files from archive named CollectedStream*.*
; If not found perform the "Otherwise Store" section
; This section is only called, if the trigger is not found
; Do not print
; Instead collect all jobs and name the storage files
; File names are: CollectedStream, CollectedStream_1, CollectedStream_2, ...
If you add those two sections in the convert.ini file, all jobs arriving in all activated queues are stored until the trigger is found.
What happens above:
After ELP analyzed the data stream, and the word "MyPrintTrigger" was not found, in section "Collect Data Streams" the "ElseTriggerActivateSection" key is activated, and therefore the section "Otherwise Store" performed. The archive files are named like: CollectedStream, CollectedStream_1, CollectedStream_2 ... and are stored to d:\archive (maybe add a time variable to get them also in the time lined order)
But if the trigger word "MyPrintTrigger" is found, all in the archive directory stored files named CollectedStream*.* are inserted at the end of the current job.
Important: Currently each stored file is read in one shot to the memory of the PC. Be sure that the amount of memory fits to your needs.
The PPAdmin Archive Tab can be used to reprint one or several jobs in a predefined order and also generating X copies.
All Data streams are per default collected in the first step in an archive directory. After a special trigger expression is found in the actual data stream all jobs are printed and erased. This trigger expression could be easily sent to the printer for example using a batch command, which print a predefined text file, containing the trigger expression.
; This Variable contains the name of the Queue that will print all jobs together
; Search the String from the release file, that will print all documents of the User
; Do not print the release file
; Call CMD and give the programm the needed Variables
Call="#ELP_FORMS_PATH#Processfiles.bat" "#ELP_FORMS_PATH#" "archive\#USERNAME#\*.prn" "#ELPTEST#";OFF
; This String has to be in every document that you want to archive
Search_Binary=@PJL COMMENT MS PCLXL NT Driver
; Speeds up the process
PDF_ARGUMENTS=-dVersion:14 -z -*c -*d -*e -*f -q -g
TIFF_ARGUMENTS=-p1 -*s3 -!e -!m -$n
; This is the path of the archive
; Do not print the job
echo "ELP formspath PATH: " %1 >> "c:\TEMP\BATCH_Log.txt"
echo "ArchivPath " %2 >> "c:\TEMP\BATCH_Log.txt"
echo "Zieldrucker " %3 >> "c:\TEMP\BATCH_Log.txt"
CD /D %1
rem give out every single file
FOR %%i in (%1%2) do call %1PrintDel.bat "%%i" %3
echo "Archive File: " %1 >> "c:\TEMP\BATCH_Log2.txt"
echo "Zieldrucker : " %2 >> "c:\TEMP\BATCH_Log2.txt"
rem Print everything that is in the User folder
copy /b %1 "\\127.0.0.1\%2" >> "c:\TEMP\BATCH_Log2.txt"
rem Delete file
del /Q "%1"
Setup a new queue and set the time requirements in the Queue properties -> enhanced (Erweitert). In order to give all other printer a higher priority, set all the other queues to a higher priority.
[Search all IE data streams]
; See in an example print file, how your driver tags IE jobs
Search_Binary="@PJL JOB NAME"http://"
; Redirect the data stream to another queue
; Do not print this stream
This little more complex scenario is from a client who first prints delivery notes and then the invoices. The goal was to print and archive the delivery notes, so that they can be attached to the finally printed invoice.
This example assumes, that the jobs come singularized, otherwise you may have first to split them, the delivery notes job directly into an archive, and the invoices to a queue, which inserts in the second run to each invoice the delivery note.
; set the variable for the document number which is listed on the invoice and delivery note
[read the number out of the data stream]
[A delivery note?]
; and the secondary trigger is also true:
; then print and store the file under the number
; just in case you use here an ELP_Command for having more copies
; also remove the PJL part and reset sequences, that the jobs finally can be stapled together
; nothing more to do
[An invoice note?]
; and the secondary trigger is also true:
; then insert at job end the previous stored file
; also remove here the PJL part and reset sequences, that the jobs finally can be stapled together
; but add now the stapling all together command
We have implementations where more then just 2 documents are collected and even some documents may never be there, as they are not needed
If you need several copies for the invoice as well, which should not be stapled, just send the incoming stream to another queue doing this.
Finally, if you miss an example get in contact with the local distributor listed in the About box of the License Tab.