Hilfsprogramm p2fSetProcess.exe

Anforderung

Beim Einsatz von print2forms-Verzeichnismonitors oder auch bei anderen automatisierten Abläufen rund um print2forms werden Dokumente aus Windows-Anwendungen heraus gedruckt. Beispielsweise werden vom Verzeichnismonitor PDF-Dateien vorgefunden, die automatisch in einen Unternehmensablauf eingebunden werden sollen. Dazu wird ein Programm aufgerufen, das die PDF-Dateien auf einem Windows-Drucker ausgeben kann. Der Windows-Drucker nutzt den print2forms-Druckertreiber, der dann die für print2forms notwendigen Sequenzen erzeugt.

Dabei ist es oft wünschenswert, dass dieser Windows-Drucker die Ausgabe nicht immer mit demselben print2forms-Prozess erzeugt, sondern dass der print2forms-Prozess abhängig vom PDF-Dokument gewählt werden kann. Das erfordert einen automatisierbaren Zugriff auf die Einstellungen des Windows-Druckers.

Realisierung

Das Kommandozeilen-Programm p2fSetProcess erlaubt es, die Benutzereinstellungen des print2forms-Druckertreibers aus einem Skript heraus zu verändern. Es können der für das Drucken auszuwählende Prozess und die für den Einsatz von Routern benötigten Einstellungen für das Halten von Druckaufträgen und für sicheres Drucken gesetzt werden.

Das Programm verlangt im einfachsten Fall als Parameter den Windows-Namen des Druckers (der nicht notwendigerweise mit dem Namen im print2forms selbst übereinstimmen muss) und den internen Namen des auszuwählenden print2forms-Prozesses. Dass der interne Name des Prozesses angegeben werden muss, hat seine Begründung darin, dass auf diese Weise kein Zugriff auf den print2forms-Server notwendig wird, um den externen Namen eines Prozesses in den internen Namen zu übersetzen.

Im hier diskutierten Kontext von Skripten für Gateways ist die Angabe des internen Namens sicherlich hinnehmbar, wenn dafür keine Konfigurationsdaten des Servers bekannt sein müssen und ständige Last für den Server und das Netzwerk vermieden wird.

p2fSetProcess kann direkt von der Kommandozeile aus aufgerufen werden. Es benötigt keinerlei Lizenzierung oder ähnliches. Wird es ohne Parameter aufgerufen, gibt es folgende kurze Beschreibung aus:

p2fSetProcess V1.0  (c) 2013 by SPE Systemhaus GmbH

Description:
 Modifies the print2forms process setting in the
 configuration of the given windows printer, if
 the printer uses a print2forms printer driver.

Program parameters are:
 Mandatory parameter:
  -w<printer>   Windows printer name
 Optional parameters:
  -p<process>   Internal name of process to set
                (without extension '.XML')
  -n            Don't use any process
  -h#           Hold print job in p2fRouter if #=1
  -s#           Save print job in p2fRouter if #=1

General return codes:
    0 - Success
   -1 - Failed
   -2 - Unknown program option
   -3 - Program option expected
   -4 - Process name not known
   -5 - Process name missing
   -6 - Printer name missing
   -7 - Printer not found
   -8 - Not a print2forms printer
    n - Windows error code

Samples:
 p2fSetProcess p2fPrinter E-TI-XO
    Sets process 'E-TI-XO' for printer 'p2fPrinter'
 p2fSetProcess p2fPrinter -n -h0
    Don't use a process on printer 'p2fPrinter'
    and reset the print job hold option

print2forms (R)  is a registered trademark
                 of SPE Systemhaus GmbH

Ein typischer Einsatzfall für das Programm p2fSetProcess sieht demnach so aus, dass zunächst mit seiner Hilfe die Druckparameter eingestellt werden, und dann mit dem für den jeweiligen Dateityp notwendigen Programm gedruckt wird. Im vom Gateway aufgerufenen Skript kommt dann irgendwo eine Befehlsfolge ähnlich der folgenden vor:

...
"C:\Programme\print2forms\p2fSetProcess.exe" "-wp2f Printer" -pCK_R$UG
"C:\Programme\Foxit Software\Foxit Reader\Foxit Reader.exe" /t 0901c4139ab906a5.PDF "p2f Printer"
...

Hier wird unterstellt, dass der Windows-Drucker den Namen 'p2f Printer' hat, was die Verwendung von Anführungszeichen erzwingt. In einem realen Skript sind die Parameter natürlich nicht Konstanten, sondern Inhalte von Variablen.

Ein vollständiges Bespiel eines solchen Skriptes findes sich im Tip PDF-Dateien drucken.

Bemerkungen