Robert Penz wrote:
On Friday 01 October 2004 11:17, Joachim Kieferle wrote:
Hallo Liste,
... bin seit Tagen am Googeln und Testen und finde noch keine Lösung. Und zwar muss ich PCL-Dateien, die an einen Designjet800PS-Plotter über den Samba-Server und CUPS geschickt werden auswerten, um die Kosten entsprechend zu verrechnen.
ich hab den rest des threads nicht gelesen, aber wir verwenden folgendes auch für einen PCL drucker
http://www.librelogiciel.com/software/PyKota/action_Presentation
Hallo Thorsten, Mario, Johannes, Torsten und Robert, vielen Dank für Eure Hilfe. Zuerst mal noch eine Korrektur zu einer meiner ersten Mails: PyKota habe ich doch _nicht_ getestet, ich habe es nur heruntergeladen und dann nicht installiert, weil es viele andere Pakete benötigt (die ich nicht alle installieren und konfigurieren wollte). Es ist also sehr wahrscheinlich, dass es doch ausgezeichnet funktioniert. Habe bei der Suche nach einer Lösung einfach so viel ausprobiert, dass ich da den Überblick verloren habe. Die Lösung habe ich jetzt langsam gefunden, der Durchbruch kam besonders dank Marios Hinweis auf ESC 033. Eventuell ist die Lösung für die/den eine/n oder andere/n auf der Liste interessant, deshalb beschreibe ich es kurz. Wir benutzen das übrigens für eine Plotaccounting-Lösung, die ich unten noch näher beschreibe. 1. Um die Binärdateien in Shellscript verarbeitbares Textformat umzuwandeln, erzeuge ich eine laaaaaange Zeile mit "od", also z.B. od -c --width=100000000 pcldatei.pcl 2. Das pipe ich dann gleich, um nach bestimmten Escape-Sequenzen zu filtern, also z.B. "033 \* o 1", um auf dem DesignJet800 die Zahl der Seiten zu zählen (sprich wie oft dieser String in der Datei vorkommt) oder "033 \* b 0" für Ausdrucke auf einem Laserjet 4/4M. Werden die verschiedenen Seiten des Dokuments mehrfach gedruckt (z.B. Dokument mit 2 Seiten, 5 fach ausgedruckt = insgesamt 10 Seiten), kann ich beim Designjet 800 einfach "od -c --width=100000000 pcldatei.pcl | grep -o "033 \* o 1" | wc -l" eingeben und erhalte dann als Ergebnis 10. Beim Laserjet 4 kommt als Ergebnis 2 raus (er zählt nur die Seiten des Dokuments), da muss ich noch die Sequenz "033 \& l 5 X" auswerten (in dem Fall 5) und mit 2 Seiten multiplizieren. Damit kann ich nun unsere Queues entsprechend auswerten und muss nicht mehr annehmen, dass nur eine Seite geschickt wurde. Das war einer der letzten und kritischen Bausteine im gesamten System. Mit ein paar Shell-scripts und Cron-Jobs haben wir jetzt ein komplettes Plot- und Print-Accountingsystem auf dem Samba / CUPS-Server besonders für die Windows-Clients. Wir machen damit folgendes: - Protokollieren der Ausdrucke. - Nach Ausdruck Rechnungen an die Benutzer mailen. - Gesammelte Abrechnungen je Benutzer/in erstellen. - Nach einigen Tagen automatisch und täglich Mahnungen bei Nichtbezahlen mailen. - Nach noch mehr Tagen säumige Zahler von Ausdrucken sperren und - uns täglich die Umsätze ausrechnen lassen. Das ist jetzt zwar überhaupt keine kommerzielle oder auch nur annähernd perfekte Lösung, funktioniert aber für uns hervorragend. Damit können wir kostendeckend den Studierenden verschiedene Ausdruckmöglichkeiten anbieten. Habe unsere Accounting-Lösung hier etwas auführlicher beschrieben, falls jemand ähnliche Anforderungen hat (z.B. Hochschulen) und bisher noch keine einfache Accounting-Lösung für Samba / CUPS gefunden hat. Ich wäre damals froh gewesen, wenn das schon jemand vor mir gescriptet hätte und ich darauf hätte aufbauen können. Falls also jemand Bedarf haben sollte -> bitte PM an mich, ich kann die Skripte gerne zur Verfügung stellen, viele Grüsse Joachim