logo
PrintMulti

Seite auf deutsch zeigen

germany02
printmulti204

What is PrintMulti ?

PrintMulti is a powerful tool which is able to capture printer output and send it to other printers with many options to influence the output including script execution.

  • PrintMulti is free for client OS; a license is needed for server OS
    (150 Euro/Server independent on the number of clients)
     
  • Please study the manual. It contains many examples.
     
  • The actual version can be downloaded here (PrintMulti installation)
     
  • For problems on Server 2008 R2 / Windows 7 : Hints
     
  • If you want to use PrintMulti on Windows 8/8.1, Server 2012 you need Version 3 printer drivers. Use “Windows Update” when installing a printer or the new PrintMulti printer drivers (see contained readme file)

Main features for printer output:

  • Reverse page order
  • Multiple pages on a sheet (2, 4, 6, 9, 16) with optional frame
  • Booklet printing with duplex capable printers
  • Change of duplex mode (e.g. force duplex printing)
  • Change of paper format (e.g. force to letter)
  • Change of color (e.g. force black/white)
  • Configure different paper bins (first, following, last page)
    (often used to output copies for one job from different trays)
  • Print only a part of the document (page range)
  • Save (optional append) output to files which can be named with macro expressions
  • Execute Scripts (an example script will be installed to call ghostscript for PDF creation and additional operations)

New features

  • A stack based calculation engine allows to configure each entry above conditionally
    (e.g. use a different printer for jobs with many pages or document name specific or user specific or ...)
  • Use printer settings saved to a file (e.g. to handle output bins or other printer specific settings)
    (tool “Devmode2File.exe” will be installed in application folder)

Example:

[Common]
LogJobMask=4
LogJobFile=%TEMP%\#U\#P\jobs.csv
LogMask=59
LogFile=%TEMP%\debug.csv
_ColorUsers=|dieter|jack|daniel|
_IsColorUser=$(#(_ColorUsers)I;upper;|;#U;+;|;+;upper;contains)

[ExamplePrinter]
Active=1
Action1=Print;ActionCreatePDFWithGS
Action2=Print;ActionPrintManyPages;$(#Z;1000;>=)
Action3=Print;ActionPrintFewPages;$(#Z;1000;<)
Action4=Print;ActionFromFile

[ActionCreatePDFWithGS]
Active=1
; a postscript printer
Printer=Ghostscript PDF
; temporary postscript file
Save2File=%TEMP%\#P_#C.ps
; create color PDF even for b/w printmulti printers
Color=1
Execute=yes
; no visible window
ExecuteFlags=0x08000000
ExecuteCmd=cscript "%PM_INSTALLPATH%\PDFCreation\gscreatepdf.vbs" "#G" "%TEMP%\#K_#C_#U.pdf"
!GS_PDFMODE=PDF/A

[ActionPrintManyPages]
Active=1
Printer=FastPrinter
; example: don’t print the last page. For one page don’t print at all
LastPage=$(#Z;1;-)
Color=$(#(Common._IsColorUser)I;1;0;?)

[ActionPrintFewPages]
Active=1
Printer=SlowPrinter
 

[ActionFromFile]
Active=1
Printer=FastPrinter
Devmode1=%TEMP%\FastPrinterDevmode
 

Explanations:

  • Use the new mask value ‘32’ to log calculation expressions.
    (1=Error,2=Warning,4=Jobs;8=Debug;16=More Debug;32=Calculations)
  • Expressions can be defined in any section (defined before the ‘.’) and referenced by the new #()I macro. Calculations have the format $(...)
    (the starting underline is not part of the syntax. Just for clearness.)
  • ‘_IsColorUser’ evaluates to a boolean value by testing, if the uppercase user name surrounded by ‘|’ is contained in the uppercase constant ‘_ColorUsers’ defined in the current section. The value is used and evaluated in the ‘ActionPrintManyPages’ section.
    (all print jobs not from dieter, jack and daniel are printed in black/white if the job contains more than 1000 pages)
  • An optional boolean value (default ‘true’) can be defined after the action entry, which controls if the action should be executed at all.
    (As another possibility, the condition could be assigned to the ‘Active=’ statement inside the action.)
  • The ‘#Z’ macro returns the number of pages in the job. So the first condition will evaluate to 1, if the job has more than 1000 pages.
  • All assignments that start with ‘!’ like ‘!GS_PDFMODE’ are evaluated and stored as environment variable for the executing command. See the example gscreatepdf.vbs for an example how to access the variable.