none
Struktur (Inhalt) von Windows-Spooldateien (SPL-Dateien) hat sich geändert RRS feed

  • Allgemeine Diskussion

  • Hallo,

    ich bin Software-Entwickler und analysiere für eine Anwendung den Inhalt von Spooldateien.

    Wenn man in Windows über den Spooler druckt werden im Windows-Unterordner "..\System32\spool\printers" für jeden Druckauftrag entspr. Spooldateien (SPL-Dateien) erstellt.

    Ist der Druckprozessor des Druckers, über den gedruckt wird, z.B. auf "winprint" und der Standarddatentyp auf "NT EMF 1.008" eingestellt, so enthalten die SPL-Dateien für jede gedruckte Seite eine EMF-Bilddatei.

    Ich durchsuche die SPL-Dateien nach entspr. EMF-Header-Bytes und extrahiere die EMF-Bilder so aus den SPL-Dateien. Das Ganze funktioniert seit Windows NT problemlos. Bis einschließlich Windows 7.

    Bei meinen Tests unter Windows 8.1 und Windows 10 habe ich festgestellt, dass sich der Inhalt der SPL-Dateien grundlegend geändert hat. Es sind keine EMF-Header-Bytes mehr zu finden und auch der SPL-Header ist anders. Egal welchen Druckprozessor oder Datentyp ich verwende.

    Ich habe auch bereits ausprobiert die Anwendung, aus der gedruckt wird, auf den Kompatibilitätsmodus zu Windows 7 einzustellen. Auch habe ich bereits probiert die Installations-EXE der Druckersoftware vor der Installation auf den Kompatibilitätsmodus zu Windows 7 einzustellen. Zudem habe ich div. neue oder ältere Druckertreiber ausprobiert. Alles ohne Erfolg. Der Inhalt der SPL-Dateien unterscheidet sich weiterhin immer grundlegend zu dem bis Windows 7.

    Kennt jemand diese Problematik oder kann etwas dazu sagen?

    Vielen Dank.

    Gruss, BW

    • Typ geändert Teodora MilushevaModerator Mittwoch, 27. Januar 2016 05:40 Die Threads die keine Aktivität haben, werden als Diskussion geändert. Das machen wir, um die Suche in dem Forum zu verbessern. Sie können den Typ jede Zeit ändern.
    Montag, 25. Januar 2016 13:22

Alle Antworten

  • Stand der Dinge hierzu. Nach Recherche im Internet und eigenen Tests hat sich folgendes herausgestellt:

    Ab Windows 8 sind die Standard-Druckertreiber sog. "Typ 4-Treiber".  Diese Treiber
    unterstützen den Standard-Datentyp "NT EMF 1.00x" des Druckprozessors NICHT mehr,
    OBWOHL dies im Druckertreiber auch weiterhin eingestellt werden kann.

    Die Einstellung im Druckertreiber (Datentyp des Druckprozessors) hat KEINERLEI Auswirkungen mehr, sie ist im Grunde ein reiner Dummy.
    Bis einschließlich Windows 7 waren die Standard-Druckertreiber noch sog. "Typ 3-Treiber".
    Diese unterstützen noch alle auswählbaren Datentypen des Druckprozessors.

    Man kann einen Typ 4-Treiber folgendermaßen erkennen (getestet habe ich nur Windows 8.1 und Windows 10):
    - Öffnen der Warteschlange eines Standard-Druckers (z.B. Windows 10)
    - Druckprozessor auf "winprint" und Datentyp auf "NT EMF 1.008" einstellen
    - Warteschlange anhalten
    - Testseite drucken
    - rechte Maus auf den Druckauftrag und "Eigenschaften" wählen

    Im Eigenschafts-Fenster werden jetzt auf der ersten Karte "Allgemein" Informationen zum Datentyp und Prozessor angezeigt. Der Prozessor ist hier NICHT "winprint" und der Datentyp steht auf "RAW"! In diesem Fall handelt es sich um einen Typ 4-Treiber.
    (Bei einem Typ 3-Treiber würde auch hier der richtige Prozessor und der richtige Datentyp stehen!)

    Um einen Typ 3-Treiber zu installieren, habe ich dann bisher nur eine Möglichkeit gefunden:

    Bei der Installation eines Druckers über die Systemsteuerung auf die Schaltfläche
    "Windows Update" klicken.
    Nach einigen Minuten Wartezeit wird die Liste dann mit Typ 3-Treibern aktualisiert.
    Die unterschiedlichen Treiber-Typen sind leider in der Auswahlliste NICHT gekennzeichnet.

    Unter Windows 10 bekommt man dann nach dem Klick auf "Weiter" die Information, ob
    ein Typ 3- oder Typ 4-Treiber installiert wird. Bei Windows 8.1 gibt es diese Information NICHT.
    Hier kann man nur testweise Treiber installieren und über die o.g. Möglichkeit den Druckauftrag
    in der Warteschlange zu überprüfen, ermitteln welcher Treiber-Typ es ist.

    Mit einem Typ 3-Treiber werden dann auch unter Windows 8.1 bzw. Windows 10 die Einstellungen im Druckprozessor und Datentyp wieder korrekt übernommen und die Spooldateien sehen wieder aus, wie üblich, d.h. sie enthalten EMF-Bilder, die extrahiert werden können.

    Der MSDN und Technet Support hat mir auch bereits bestätigt, dass Microsoft ab Windows 8 die Struktur der Spooldateien "vermutlich geändert und nicht dokumentiert" hat.

    BW

    Mittwoch, 24. Februar 2016 08:39