pixel
Seite wählen

Druckauftrag an zwei Drucker senden

von | Dez 22, 2010 | Technology, Windows

Gelegentlich kommt es vor, dass man vor der Aufgabe steht mehrere Dokumente in doppelter Ausführung zu drucken und das am besten noch in einer farbigen und in einer monochromen Ausgabe. Oft bedeutet das viel manuelle Arbeit, da jeweils der Druckauftrag für die farbige Fassung und für die schwarz/weiße gestartet werden muss.
Hierfür gibt es jedoch Abhilfe und verschiedene Lösungsansätze. Wer schon nach Software gesucht hat, welche das Verteilen eines Druckauftrages an zwei Drucker realisieren kann, ist bestimmt auf das Programm PrintMulti gestoßen. PrintMulti ist ein sehr mächtiges Tool, man hat viele Einstellungsmöglichkeiten und ist für Clientbetriebssysteme kostenfrei erhältlich, jedoch ist der Konfigurationsaufwand nicht ohne. Deswegen möchte ich hier eine Alternative vorstellen welche aus einer Kombination von Foxit-PDF Reader, CutePDF und einem AutoIT 3 Skript besteht.
Grundlage dafür bot mir aus dem AutoIT Forum ein Beitrag mit Codebeispiel, der schon fast dem entsprach, was ich in die Tat umsetzen zu versuchte. Die Funktionsweise ist schnell und einfach erklärt.
Es wird das zu druckende Dokument als PDF mittels CutePDF (oder anderen PDF-Exporten) ausgegeben und an einen bestimmten Ort abgelegt. Das AutoIT Skript schaut nach, ob neue Dateien vorhanden sind, wenn ja werden diese in einen Archivorder verschoben und umbenannt (aktuelles Datum+Uhrzeit) und im Anschluss mit FoxitPDF der Druckauftrag für beide Drucker gestartet. Zwar ist dies nicht die eleganteste Lösung, jedoch funktioniert sie in der Praxis recht gut und hat einen geringeren Einrichtungsaufwand als PrintMulti. Im Anschluss noch der Quelltext des AutoIT Skripts:

$ordner = "C:\PDFs\"
$archiv = "C:\druck\"
$foxit = "C:\Programme\Foxit Software\Foxit Reader\Foxit Reader.exe"
$drucker1 = "Drucker 1"
$drucker2 = "Drucker 2"
While 1
  Sleep(1000)
  $file = FileFindFirstFile($ordner & "*.pdf")
  If $file <> -1 Then Print()
  FileClose($file)
WEnd
Func Print()
While 1
  $pdffile = FileFindNextFile($file)
  $neuname = @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC & @MSEC
  If @error Then ExitLoop
    FileMove($ordner & $pdffile, $archiv & $neuname & ".pdf")
    While 1
      Sleep(100)
      If FileExists($archiv & $neuname & ".pdf") Then
    ExitLoop
  EndIf
WEnd
RunWait('"' & $foxit & '" /t "' & $archiv & $neuname & '.pdf" $drucker1')
RunWait('"' & $foxit & '" /t "' & $archiv & $neuname & '.pdf" $drucker2')
WEnd
EndFunc ;==>Print

In den Variablen $drucker1 und $drucker2 kann man die Druckernamen, welche auf dem System vorhanden sind definieren. Natürlich kann man auch die Drucker selber umbenennen. Wichtig hierbei ist, dass die Drucker direkt von dem Client angesprochen werden und nicht über eine Samba Freigabe. Die Ordner „druck“ und „PDFs“ müssen manuell angelegt werden und natürlich schreibende sowie auch lesende Zugriffsrechte für die jeweiligen Nutzer haben.
(Picture by glasseyes view)
Edit TA (13.12.2017):
@Sascha hat in den Kommentaren das Skript hergenommen, aktualisiert und um eine Funktion erweitert: Fächerauswahl!
Unbedingter Lesebefehl!

Mehr Beiträge zum Thema Technology | Windows

Wireguard mit dynamischen DNS Namen

Seit einiger Zeit bin ich großer Fan von Wireguard als VPN Lösung um meine Server und Notebooks zu verbinden. Auch Patrick hatte schon mal über DNS Privacy mit Wireguard geschrieben. Dabei ist mir ein kleines Problem begegnet, Wireguard hat kein automatisches Handling...

Nur Vim ist nicht genug!

Alle, die mal ein Problem mit Linux hatten, werden das vermutlich kennen: Du suchst online nach deinem Problem, stößt auf einige Befehle, bearbeitest eine Konfigurationsdatei und dann passiert es - Du bist in Vim gefangen! Der Erstkontakt mit Vim kann durchaus von...

Administrators Toolbox: SSH

SSH “Secure Shell oder SSH bezeichnet ein kryptographisches Netzwerkprotokoll für den sicheren Betrieb von Netzwerkdiensten über ungesicherte Netzwerke.[1] Häufig wird es verwendet, um lokal eine entfernte Kommandozeile verfügbar zu machen, d. h., auf einer lokalen...