===== Hilfsprogramm p2fViewer ===== ==== Anforderung ==== Beim Austesten von Formularen und Abläufen mit (p2f) kommt irgendwann unweigerlich einmal der Wunsch auf, nicht immer alles auf einem Laserdrucker real ausgeben zu müssen - zum einen, weil es Ressourcen (Papier, Toner) verbraucht, und zum anderen, weil man nicht zum Drucker laufen oder nicht auf den Drucker warten will. Man bräuchte also ein Programm, dass einen Laserdrucker auf dem eigenen Rechner simuliert. Ein solches Programm bietet unter anderem die amerikanische Firma Lincoln & Co ([[http://www.lincolnco.com]]) mit ihrem Produkt **PageView** an, welches PCL-Dateien einliest und in einem eigenen Fenster anzeigt. Dabei kann die Darstellungsgröße variiert werden, und man kann durch die verschiedenen Seiten des gedruckten Dokuments navigieren. Das Programm unterstützt sowohl Schwarz/Weiss- als auch Farbausgaben. PageView, genauso wie die Programme der Mitbewerber, öffnen über einen Dialog eine Datei mit PCL-Daten, lesen diese ein und zeigen sie an. Damit ist aber kein flüssiges Arbeiten mit (p2f) möglich, weil man immer erst eine Datei erzeugen muss, um sie im Programm PageView anzuzeigen - nicht wirklich ein großer Gewinn. Hier setzt das Hilfsprogramm **p2fViewer.exe** an, das den Prozess der Dateierzeugung und des anschliessenden Öffnens der Datei automatisiert. \\ \\ ==== Realisierung ==== Die Grundidee hinter dem Programm **p2fViewer.exe** ist, im Netzwerk einen kleinen Server zur Verfügung zu stellen, der die Druckdaten eines (p2f)-Clients anstatt eines realen Druckers entgegennimmt. Die Druckdaten werden dann in einer Datei zwischengespeichert, und, sobald der (p2f)-Client die Netzwerkverbindung trennt, über eine Kommandozeile an ein Anzeigeprogramm übergeben. Weil der Aufwand für einen eigenen Windows-Dienst unangemessen hoch ist, haben wir uns dazu entschieden, diesen kleinen Server im Rahmen eines Programms zu realisieren, das sich in die Task-Leiste des Windows-Systems einklinkt und dort während der gesamten Sitzungsdauer zur Verfügung steht. Das Einklinken in die Task-Leiste kann entweder durch manuellen Aufruf des Programms (Doppelklick) erfolgen, oder dadurch, dass das Programm in den Autostart-Ordner des Windows-Systems kopiert wird. {{print2forms:tips:0053-1.png }}Sobald das Programm gestartet ist, erscheint ein kleines Icon in der Task-Leiste, das eine Druckseite symbolisieren soll (in der Abbildung das dritte Icon von Rechts). Das Icon kann unterschiedliche Farben haben, die Auskunft über den Zustand und die Betriebsbereitschaft des Programms geben. Die Farbe Rot zeigt an, dass das Programm nicht betriebsbereit ist. Nur in diesem Zustand können die Einstellungen des Programms geändert werden. Die Farbe Gelb zeigt an,dass das Programm auf Druckdaten wartet. Die Farbe Grün schliesslich zeigt an, dass gerade Druckdaten empfangen oder angezeigt werden. \\ \\ \\ {{ print2forms:tips:0053-2.png}}Geht man mit dem Mauszeiger über das Icon, wird der aktuelle Zustand des Programms auch als Klartext angezeigt.\\ \\ {{ print2forms:tips:0053-4.png}}Klickt man mit der rechten Maustaste auf das Icon, erscheint ein Kontextmenü. Die einzelnen Menüpunkte sind je nach aktuellem Betriebszustand des Programms aktiviert oder deaktiviert. \\ \\ \\ \\ \\ \\ ==== Menüpunkte ==== {{print2forms:tips:0053-7.png}} === Info Viewer ... === Bei Auswahl dieser immer angezeigten Option erscheint ein kleiner Dialog, der Auskunft über das Programm **p2fViewer.exe** gibt. Neben der Versionsnummer des Programms wird auch die Anzahl der bisher verarbeiteten Druckaufträge angezeigt. \\ \\ \\ === Hilfe ... === Bei Auswahl dieser immer angezeigten Option wird die Hilfedatei zum Programm **p2fViewer.exe** geöffnet und angezeigt. Der Hilfetext enthält auch einen Link auf diesen Wiki-Artikel. === Starten === {{ print2forms:tips:0053-3.png}}Diese Option wird nur angezeigt, wenn das Programm nicht betriebsbereit ist (rotes Icon). Wird die Option ausgewählt, wird der kleine Server zum Empfang von Druckdaten gestartet. Das Icon färbt sich um in Gelb, oder, falls direkt Druckdaten anstehen, auch in Grün. \\ \\ === Anhalten === Diese Option wird nur angezeigt, wenn das Programm betriebsbereit aber nicht aktiv ist (gelbes Icon). Wird die Option ausgewählt, wird der kleine Server zum Empfang von Druckdaten angehalten. Das Icon färbt sich um in Rot. \\ \\ === Einstellungen === Diese Option wird nur angezeigt, wenn das Programm angehalten ist (rotes Icon). Wird die Option ausgewählt, wird der Einstelldialog des Programms aufgerufen. {{print2forms:tips:0053-5.png }} {{print2forms:tips:0053-6.png }}Da der Empfang der Druckdaten über das Netzwerk erfolgt, sind die Einstellungen der Netzwerkparameter für den Betrieb des Programms wichtig. Es muss eine **IP-Adresse** und eine **Portnummer** ausgewählt werden, an die sich der kleine Server zum Empfang der Druckdaten binden soll. Die zur Verfügung stehenden Netzwerkadressen sind in einer Liste aufgeführt. Es werden sowohl TCP/IP-V4 als auch TCP/IP-V6 Schnittstellen erkannt und zur Auswahl angeboten. Die Einstellung ''::'' steht für eine beliebige IP-V6 Adresse. Das Programm ist dann über alle IP-V6-Adressen des Rechners ansprechbar. Die Einstellung ''0.0.0.0'' steht für eine beliebige IP-V4-Adresse. Das Programm ist dann über alle IP-V4-Adressen des Rechners ansprechbar. Alle anderen angebotenen Netzwerkadressen kennzeichnen ganz dediziert einzelne auf dem Rechner verfügbare Schnittstellen. Das Programm ist dann ausschliesslich nur unter dieser Adresse ansprechbar. Bei der Auswahl einer link-lokalen IP-V6-Adresse (fe80:) sind natürlich die Einschränkungen für das Routing zu beachten. Mit der Auswahl **Dateinamen** kann entschieden werden, ob mit der Einstellung ''Fix'' das Programm nur eine einzige Datei für das Zwischenspeichern der Druckaufträge verwendet (mit dem Namen //VIEW.PCL//), oder mit der Einstellung ''Fortlaufend'' mehrere durchnumerierte Dateien erzeugt werden sollen (mit den Namen //VIEW_###.PCL//). Wird die Auswahl ''print2forms Treiber'' aktiviert, geht das Programm davon aus, dass mit einem (p2f)-Treiber gedruckt wird. Der Name der Datei mit dem Druckauftrag ist dann der Job-Name aus dem PJL-Kommando 'SET JOB'. Kann kein Job-Name ermittelt werden, werden die Dateien wie bei der Einstellung ''Fortlaufend'' durchnumeriert. In der Gruppe **Viewer** wird die Schnittstelle zum eigentlichen Anzeigeprogramm konfiguriert. Hier wird eine Kommandozeile angeboten, in die zunächst der Pfad zum Anzeigeprogramm aufzunehmen ist. Damit das Anzeigeprogramm weiss, welche Datei zu öffnen ist, wird der Dateiname als Parameter übergeben. Der Platzhalter für den Dateinamen ist ''%1''. Vor Ausführung der Kommandozeile wird der vollständige Pfad zur Datei mit den Druckdaten für den Platzhalter eingesetzt. Wegen der im Pfad eventuell vorhandenen Leerzeichen sind die doppelten Anführungszeichen um den Platzhalter in dem meisten Fällen zwingend. Unter **Spool Verzeichnis** muss das Verzeichnis ausgewählt werden, in welchem das Programm **p2fViewer.exe** die Dateien zur Zwischenspeicherung der Druckaufträge ablegen soll. Die Schaltfläche **Auswahl** öffnet den Standarddialog zur Auswahl eines Verzeichnisses. Durch einen Klick auf die Schaltfläche **OK** werden die gemachten Einstellungen übernommen. \\ \\ === Beenden === Diese Option wird nur angezeigt, wenn das Programm nicht aktiv ist (kein grünes Icon). Wird die Option ausgewählt, wird das Programm **p2fViewer.exe** beendet und aus der Taskleiste entfernt. \\ \\ ==== Anwendung ==== Um das Programm **p2fViewer.exe** nach erfolgreicher Installation und Konfiguration einsetzen zu können, muss nur noch die Ausgabeseite eines (p2f)-Clients statt mit einem Drucker mit diesem Programm verbunden werden. Das ist ganz einfach dadurch machbar, dass statt der Druckerangaben jetzt die IP-Adresse und die Portnummer des Programms eingetragen werden. Dabei ist allerdings zu beachten, dass der (p2f)-Client keine Überwachung des Druckers (jetzt das Programm) durchführen kann. Die Einstellung **Überwachung** muss unbedingt auf den Wert **Keine** gesetzt werden. Erzeugt nun der (p2f)-Client Druckdaten, nimmt er über das Netzwerk Verbindung mit dem Programm auf und überträgt die Druckdaten. Sobald alles übertragen ist, baut der (p2f)-Client die Netzwerkverbindung ab, und das Programm übergibt die eben erzeugte PCL-Datei an das Anzeigeprogramm. Für die Dauer der Anzeige bleibt das Icon des Programms Grün und es werden keine weiteren Druckdaten entgegengenommen. Sobald das Anzeigeprogramm beendet wird, nimmt **p2fViewer.exe** wieder neue Druckdaten an. Dadurch ist ein streng sequenzielles Vorgehen mit maximalen Komfort gewährleistet. \\ \\ ==== Hinweise ==== * Das Programm **p2fViewer.exe** ist speziell auf das Anzeigeprogramm der Fa. Lincoln & Co hin optimiert. Wenn das Programm beim erstmaligen Aufruf feststellt, dass das Anzeigeprogramm bereits auf dem Rechner installiert ist, wird die Kommandozeile automatisch erzeugt. * Wird das Programm so betrieben, dass Dateien mit fortlaufender Numerierung erzeugt werden, sammeln sich diese Dateien im Spool-Verzeichnis des Programms an. Der Anwender ist selbst dafür verantwortlich, dass nicht mehr benötigte Dateien irgendwann einmal gelöscht werden. * Prinzipiell kann das Programm natürlich auch für Nicht-PCL-Druckdaten verwendet werden, wenn ein geeignetes Anzeigeprogramm zur Verfügung steht. **p2fViewer.exe** macht keine Annahmen über den Inhalt der erzeugten Dateien. In der Kommandozeile können natürlich auch ganze Skripte aufgerufen werden, um komplexere Aufgaben zu erledigen.