Wie kann man verhindern das Windows Dokumente durcheinander druckt?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Da Du die Frage erneut eingestellt hast:
Die Wahrscheinlichkeit, dass Du hier eine hilfreiche Antwort auf eine solche Frage erhältst ist sehr gering. Ich hatte schon mit weit weniger komplexen Themen hier kein Glück.

Ich hatte vor Jahren selbst eine VBS-Anwendung in Excel programmiert, die tonnenweise Papierbelege ausdruckte. Allerdings nicht das Problem beobachtet, dass der Ausdruck in falscher Reihenfolge erfolgte. Sowohl auf einem Arbeitsplatzdrucker - als auch auf einem Netzwerkdrucker.

Ich habe für jeden Vorgang den Druck als einzelnen Vorgang angestoßen - so lese ich das aber auch aus Deiner Beschreibung raus. Daher dürfte das Problem wohl kaum dort liegen. 🤔

Ich habe jetzt das Problem, dass diese Ausdrucke auf dem Zielsystem unter Produktivbedingungen offenbar verschiedene "Laufzeiten" Haben und Dokumente deren Druck ich in meiner Anwendung auslöse offenbar in anderer Reihenfolge aus dem Drucker kommen, als ich sie absende.

Vielleicht solltest Du zum Test mal die Laufzeit auf dem Quellsystem künstlich über die längste, bekannte Laufzeit im Zielsystem verzögern.
Alleine um erst mal zu sehen, ob es dann in der richtigen Reihenfolge raus kommt - bzw. es wirklich die Ursache darstellt. 🤔

Ist das "Zielsystem" ein Netzwerkdrucker oder ein PC mit angeschlossenem, lokalen Drucker?


mloeffler 
Beitragsersteller
 06.12.2023, 14:03

Danke für Deine kompetente Antwort.

Tatsächlich finde ich GF auch bei so komplexen Themen nicht deutlich weniger Hilfreich als Fachbezogene Foren. Zwar gibt es hier manchmal schlichtweg "gar keine" Antwort. Aber wenigstens nicht 30 Pseudo kompetente Antworten von Leuten die die Frage zwar nicht verstanden haben aber trozdem antworten.

Ich vermute bei deinem VBS Projekt stammten alle Ausdrucke aus Deinem VBS Projekt. Hier sind es z.T. Gescannte, teils mehrseitige, PDF Dokumente, die als Stream aus einer SQL Datenbank kommen, das meinte ich mit BLOB. Das sind wohl die mit dem größten Datenvolumen über das Netz, wobei ich das am wenigsten beeinflussen kann, weil sie ja vom User gescannt werden z.T. sind es Buchhaltungs-Relevante Belege, die als PDF erzeugt werden, das ist wohl der meiste Rechenaufwand auf dem Client PC, und es sind Seiten die Buchstabe für Buchstabe und Linie für Linie mit Graphics Befehlen wie DrawRectangle oder DrawLine erzeugt werden, wahrscheinlich der geringste Rechenaufwand und das geringste Datenvolumen. Ich bin ziemlich sicher, das die einzelnen Dokumente in der Richtigen Reihenfolge an den Druckertreiber gesendet werden, allerdings dürfte Ihr Datenvolumen sehr unterschiedlich sein. Alle Daten und Scans werden über den Monat an verschiedenen Arbeitsplätzen gesammelt und dann in einer großen Batch Verarbeitung zu einer "Abrechnung" zusammengeführt.

Vielleicht solltest Du zum Test mal die Laufzeit auf dem Quellsystem künstlich über die längste, bekannte Laufzeit im Zielsystem verzögern.

Hier ist mir nicht ganz klar, wie ich das machen kann. Einerseits kenne ich ja die Laufzeiten auf dem Zielsystem überhaupt nicht, sie hängen wohl vom Arbeitsplatz, von der größe der gescannten Datei, von der Netzwerklast und vom Zieldrucker ab. Aber ich weiß auch nicht wie ich mein Netz hier verlangsamen könnte. Gibt es da eine Einstellung?

Das Zielsystem ist ein Firmennetzwerk mit 5 virtuellen Servern u.A einem Domänencontroller und einen SQL Server, vielen Druckern einigen PCs verschiedenen Typs, einem Terminalserver und Chromebooks die als Thin Clients dienen. Meine Software ist dort auf allen Arbeitsplätzen bereits im Täglichen Produktiveinsatz. Die Drucker sind übrigens alle Netzwerkdrucker aber z.T. über Server freigegeben und z.T. direkt eingebunden. Ich habe keinen weiteren Einfluss darauf außer dass ich eine Anweisung geben könnte diese oder jene Einstellung zu prüfen. - Also leider nicht 1 PC u. 1 Drucker.

Mein Test- und Entwicklungssystem ist ein Laptop auf dem auch die SQL Datenbank läuft und ein Tintenstrahldrucker im Netz.

Vielleicht kannst du die Dokument zu einer einzigen Datei/PDF zusammenführen und erst zuletzt drucken? Hängt natürlich von den Dateitypen ab aber das ginge mit Bibliotheken wie iTextSharp oder PdfSharp.

Andernfalls ginge es vielleicht, dass du eine Art Druckerwarteschlange bastelst, in der du die zu druckenden Dokumente sammelst und dann in einem separaten Prozess zum Schluss abarbeitest, ggf. mit delays arbeiten.


mloeffler 
Beitragsersteller
 06.12.2023, 13:33

Danke für den Vorschlag, die Idee hatte ich natürlich, allerdings wird das ein unsagbar großer Aufwand, da das Programm Objektorientiert ist, Es gibt halt Instanzen von Klassen die sowohl die Datenhaltung dieser Objekte bewerkstelligen als auch den Druck. - Das wird also das allerletzte Mittel sein und mich "Monate" kosten.