I want to force some applications to print in Black and White only. Now with the Ricoh Drivers, they all have the same line in the header which determines whether or not the job will print out in color or black and white.
Note: The PJL based solutions do work similar for other manufacturer
It looks like this for color | and this for Black and White |
@PJL SET DATAMODE=COLOR | @PJL SET DATAMODE=GRAYSCALE |
You will notice that in some data streams, it determines the application it was printed in: for example: from outlook for your used driver it looks like this: @PJL SET JOBNAME="mhtml:mid://00000001/"
My first of 4 ideas how to handle this is to trigger the job from the string "mhtml:mid" - as this is always present when printing from Outlook client and then switch always to gray scale:
1. Answer only for HP and 100% compatible printers (only basic module needed)
[Search for @PJL SET JOBNAME="mhtml:mid:]
Search_Binary=@PJL SET JOBNAME="mhtml:mid:
; will enter HP PJL sequence for gray printing, if one exists it is replaced
PlanesInUse=1
2. Answer for HP and PCL compatible printers (ELP module needed)
[Search for @PJL SET JOBNAME="mhtml:mid:]
Search_Binary=@PJL SET JOBNAME="mhtml:mid:
; will enter PCL sequence for gray printing, if one exists it is replaced
ELP_Command=C1C2;
3. Use search and replace with 2 ini-files (only basic module needed)
There 2 ini-files are needed. The convert.ini will call the grayscale.ini. The principle is, that in the covert.ini is searched for the trigger stuff, and then it is totally replaced by the greyscale.ini, meaning that no search or any other triggers out of the convert.ini are still existing, when another ini-file is called. Using the inifile key starts from that event on a complete new game, unless some things are not already activated
The trick here is as well, that always the PJL JOBNAME comes before the grayscale setting.
[Search for @PJL SET JOBNAME="mhtml:mid:]
Search_Binary=@PJL SET JOBNAME="mhtml:mid:
Inifile=#ELP_FORMS_PATH#grayscale.ini
Grayscale.ini
[Search for Ricoh (or any other brands) colorcommand]
Search_Binary=@PJL SET DATAMODE=COLOR
Replace_Binary=@PJL SET DATAMODE=GRAYSCALE
ReadOnlySearchkeys=ON
4. Use search and replace with just 1 ini-files (only basic module needed)
Uses a variable and a small tick, see important note below.
Again just convert.ini and only basic license modul used, assuming here that the job name is earlier in the PJL section of the job then the color setting
[GLOBAL]
; sets default the color printing variable to color
VARIABLE=#My_COLOR_Mode#:COLOR
[Search for @PJL SET JOBNAME="mhtml:mid:]
Search_Binary=@PJL SET JOBNAME="mhtml:mid:
VARIABLE=#My_COLOR_Mode#:GRAYSCALE
[Search for Ricoh (or any other brands) colorcommand]
Search_Binary=@PJL SET DATAMODE=COLOR
Replace_Binary=@PJL SET DATAMODE=#My_COLOR_Mode#
ReadOnlySearchkeys=ON
Important note: As it is hardly to be seen: There are 2 blanks between @PJL and SET in the replacement argument. This is needed to avoid recursive search and replacing , when the variable content is still COLOR!
Related articles: Triggering rules with hierarchy