-
Gebiet der
Erfindung
-
Diese
Erfindung bezieht sich auf ein System für ein Drukkertreiberschalten
innerhalb einer Computernetzwerkumgebung, wie beispielsweise eines
Windows-Betriebssystems, um Druckaufträge von einer einzigen Druckanforderung
innerhalb einer Anwendung an eines oder mehrere ungleiche Geräte zu richten.
-
Hintergrund
der Erfindung
-
Es
sind zentralisierte und dezentralisierte Computernetzwerke mit einer
breiten Vielfalt von Peripheriegeräten erhältlich, die miteinander verbunden
sind, so daß dieselben
miteinander kommunizieren können. Für Anwendungen,
die die Ausgabe von Daten von einem Computersystem erfordern, sind
eines oder mehrere Ausgabegeräte
in der Form eines Monitors, eines Druckers, eines Plattenlaufwerks
oder eines anderen Peripheriegeräts
bereitgestellt. Für
den Fall von Computernetzwerken kann die Anzahl und Vielfalt von
erhältlichen Ausgabegeräten ziemlich
groß sein,
was in Datentransferinkompatibilitätsproblemen resultiert.
-
Ein
Problem, das aktuellen Computernetzwerkumgebungen zugeordnet ist,
besteht darin, daß dieselben
das automatische Senden von elektronischem Material von einer Anwendung
zu ungleichen Bestimmungsorten von einer einzigen Quellanwendung
oder einem Dokument nicht ermöglichen.
Zum Beispiel ermöglichen
gegenwärtige
Fenstertreiberlösungen
nicht, daß ein
Operator automatisch einen Druckauftrag von einem Drukkertreiber
zu einem jeglichen von mehreren Empfangsgeräten oder Druckern sendet. Anstelle
dessen muß der
Operator das System rekonfigurieren, um eine Ausgabe zu einem spezifi schen
Drucktreiber eines ausgewählten
Ausgabegeräts
zu liefern.
-
Bei
gegenwärtigen
Fenstertreiberlösungen
bildet jeder Drukker ein Ausgabegerät, das eine zweckgebundene
Druckmaschine aufweist, die ein zweckgebundenes Codieren für den zugeordneten
Druckprozessor erfordert. Zum Beispiel erzeugt ein Druckprozessor
eine Datei von Zeichnungsbefehlen für einen konfigurierten Drucker.
Normalerweise ist eine permanente Verbindung zwischen der Anwendung
(z. B. einem Textverarbeitungsprogramm), der Zwischenzeichnungsdatei
und einem einzigen zweckgebundenen Ausgabegerät bereitgestellt. Optional
kann der Benutzer eines von mehreren zweckgebundenen Ausgabegeräten über ein fensterbasiertes
Menü auswählen. Eine
derartige Konfiguration ist jedoch zu einer Verwendung mit einem
Ausgabegerät
formatiert, das der Benutzer ausgewählt hat, und bleibt zu einem
derartigen Gerät
zweckgebunden, bis dieselbe manuell rekonfiguriert wird.
-
Das
Dokument
US 5,511,156 lehrt
ein Druckauftragverteilungssystem, bei dem Druckdateien in einem PostScript-Dateiformat beschrieben
sind, wobei die PostScript-Druckdatei
zu einem parallelen Übersetzungsverarbeiten
durch mehrere Computer in unabhängige
Abschnitte geteilt ist.
-
Daher
existiert ein Bedarf nach einem System, das Druckaufträge von einem
Computer, der innerhalb einer Computernetzwerkumgebung wirksam ist,
zu einem jeglichen von mehreren ungleichen Ausgabegeräten von
einer einzigen Druckanforderung innerhalb einer Anwendung verteilt.
-
Ein
anderes Problem, das aktuellen Computernetzwerkumgebungen zugeordnet
ist, ist die Unfähigkeit,
ausgehende Quelldaten mehrere Male zu mehreren Ausgabegeräten zu senden.
Zum Beispiel ermöglichen
aktuelle Fenstertreiberlösungen
es nicht, daß ein
Operator die Quelldaten mehrere Male parst bzw. syntaktisch analysiert,
um die notwendigen Codierungen für
jedes Ausgabegerät
zu erhalten. Anstelle dessen muß der
Operator das System rekonfigurieren, um jede Lieferung einer Ausgabe
zu jedem spezifischen Drucktreiber jedes ausgewählten Ausgabegeräts durchzuführen.
-
Diese
Erfindung bezieht sich auf eine Informationsverteilungsvorrichtung
und ein Verfahren, das die obigen Nachteile überwindet. Die Informationsverteilungsvorrichtung
dieser Erfindung verbessert eine Verteilung von Quellaufträgen für eine Ausgabe
zu einem jeglichen von mehreren ungleichen Ausgabegeräten. Die Informationsverteilungsvorrichtung
dieser Erfindung verbessert auch eine Verteilung von Quellaufträgen zu mehreren
empfangenden Ausgabegeräten
von einer/einem einzigen Quellanwendung/-dokument.
-
Zusammenfassung
der Erfindung
-
Gemäß einem
Aspekt dieser Erfindung ist die allgemein in 1–5 gezeigte Informationsverteilungsvorrichtung
innerhalb einer Computernetzwerkumgebung wirksam. Die Informationsverteilungsvorrichtung
gemäß der Erfindung
ist in dem beigefügten
unabhängigen
Anspruch 1 definiert.
-
Gemäß einem
anderen Aspekt dieser Erfindung implementiert die allgemein in 1–5 gezeigte
Informationsverteilungsvorrichtung ein Verfahren zum Wirksamsein
innerhalb einer Computernetzwerkumgebung, wie es in dem beigefügten unabhängigen Anspruch
13 definiert ist.
-
Andere
Aufgaben, Merkmale und Vorteile werden aus der unten gegebenen detaillierten
Beschreibung der Vorrichtung und des Verfahrens dieser Erfindung
und Ausführungsbeispielen
von Systemen ersichtlich, die die Vorrichtung und das Verfahren
dieser Erfindung eingliedern.
-
Beschreibung
der Zeichnungen
-
1 ist ein konzeptionelles
Blockdiagramm einer Computernetzwerkumgebung zum Implementieren des
Druckertreiberschaltmechanismus und -verfahrens dieser Erfindung,
das einen Entwurf einer Mehrzahl von Computern und Ausgabegeräten zeigt,
die innerhalb der Netzwerkumgebung konfiguriert sind, gemäß einem
Ausführungsbeispiel
dieser Erfindung.
-
2 ist ein schematisches
Blockdiagramm, das die Struktur und Operationen des Druckertreiberschaltmechanismus
von 1 darstellt, wobei
ein mehrfaches Parsen des ausgehenden Dokuments in ein Format für eine Einfach-Teilprozeß-Spool-Lieferung eines Quellauftrags
zu mehreren Bestimmungsorten gezeigt ist.
-
3 ist ein schematisches
Blockdiagramm, das die Struktur und Operation des Druckertreiberschaltmechanismus
von 1 darstellt, wobei
ein mehrfaches Parsen des ausgehenden Dokuments in ein Format für eine Mehrfach-Teilprozeß-Spool-Lieferung eines Quellauftrags
zu mehreren Bestimmungsorten gezeigt ist.
-
4 ist ein schematisches
Blockdiagramm des ersten Ausführungsbeispiels
eines Gerätetreiberschaltmechanismus
während
einer ersten Durchgangsoperation von einem ursprünglichen Gerät/Treiber
zu Spool-verbesserten Metadateidaten zu einem Speicher.
-
5 ist ein schematisches
Blockdiagramm des ersten Ausführungsbeispiels
eines Gerätetreiberschaltmechanismus
während
einer zweiten Durchgangsoperation für ein ausspulmäßiges Drucken
(Despooling) von Druckauftrags- und Druckerinformationen über einen
Druckprozessor zu einem neuen Gerätetreiber.
-
6 ist ein schematisches
Blockdiagramm eines ersten Ausführungsbeispiels
eines Gerätetreiberschaltmechanismus
während
einer Mehrfach-Durchgang-Druckauftrag-Verteilung.
-
7 ist ein Flußdiagramm,
das die Sequenz von Schritten darstellt, die bei einem automatischen
Implementieren eines Mechanismus zu einem Druckertreiberschalten
in Windows-Betriebssystemen verwendet wird, um eine Verteilung von
Druckaufträgen
auf mehrere ungleiche Aufträge
innerhalb einer Druckanforderung innerhalb einer Anwendung zu ermöglichen,
bei einem Ausführungsbeispiel
der vorliegenden Erfindung.
-
8 ist ein Flußdiagramm,
das eine erste Operation darstellt, die durch den Druckprozessor
von 7 implementiert
ist.
-
9 und 10 stellen ein Flußdiagramm dar, das eine zweite
Operation zeigt, die durch den Druckprozessor von 7 implementiert ist.
-
11 ist ein Flußdiagramm,
das eine dritte Operation darstellt, die durch den Druckprozessor
von 7 implementiert
ist.
-
Detaillierte
Beschreibung der Erfindung
-
1 zeigt einen Computer 10,
der als „Computer
A" etikettiert ist
und zu einer Verteilung von Informationen innerhalb einer Computernetzwerkumgebung 12 konfiguriert
ist. Der Computer 10 kann elektronisches Material in der
Form eines Quelldokuments oder -auftrags an mehrere Empfangsge räte innerhalb
der Netzwerkumgebung senden. Das Quelldokument wird ansprechend
darauf erzeugt, daß eine
Anwendung auf einem Betriebssystem des Computers 10 betrieben
wird. Genauer gesagt stellt eine Mehrzahl von Ausgabegeräten 14, 16 und 18,
die als „Ausgabegerät A", „Ausgabegerät B" bzw. „Ausgabegerät C" etikettiert sind,
die Empfangsgeräte
zu einem Empfangen von Ausgabebefehlsdateien und zum Erzeugen einer
Ausgabe bereit. Zusätzlich
ist der Computer 10 mit anderen Computern 20 und 22 verbunden,
die ähnliche
zugeordnete Ausgabegeräte
(nicht gezeigt) aufweisen. Der Computer 10 ist zu einem
Senden eines Quelldokuments zu einem jeglichen dieser Ausgabegeräte in der
Lage. Der Computer 10 ist zu einer Signalkommunikation
mit jedem der Ausgabegeräte 14, 16 und 18 über eine
jeweilige Kommunikationsverbindung 24 zusammen verbunden
oder verbunden. Auf eine ähnliche
Weise ist der Computer 10 zu einer Signalkommunikation
mit anderen Computern 20 und 22 über eine
jeweilige Kommunikationsverbindung 26 zusammen verbunden
oder verbunden. Die Verbindungen 24 und 26 können aus
einer jeglichen einer Anzahl von gegenwärtig erhältlichen Draht- oder drahtlosen
Signalverbindungen gebildet sein, die bei einem Bilden von Computernetzwerkverbindungen
verwendbar sind. Eine derartige Verbindung ist durch ein Festverdrahten
jeweiliger Komponenten des Netzwerks 12 miteinander gebildet.
-
Gemäß der Netzwerkumgebung 12,
die in 1 dargestellt
ist, ist klar, daß die
Ausgabegeräte 14, 16 und 18 und
die Computer 10, 20 und 22 zweckgebundene
Prozessoren zum Durchführen
von Verarbeitungs- und Kommunikationsbedürfnissen aufweisen, wenn Quellaufträge und Ausgabebefehle
zwischen Geräten
des Netzwerks übertragen
werden. Die Computer 10, 20 und 22 weisen
ein Windows 95 Betriebssystem und einen kundenspezifischen Druckprozessor
dieser Erfindung zu einer Verwendung mit Windows 95 auf. Die Ausgabegeräte 14, 16 und 18 weisen
den gleichen kundenspezifischen Druckprozessor auf, was ein Drucken
direkt von einer Anwendung, die auf dem Betriebssystem des Computers 10 läuft, zu
einem jeglichen der Ausgabegeräte 14, 16 oder 18 ermöglicht.
-
Der
Computer 10 enthält
vorzugsweise ein Windows 95 Betriebssystem. Ein „Betriebssystem" ist ein Satz von
Computerprogrammen, die spezifisch durch einen Computer zu einem
Verwalten der Betriebsmittel desselben verwendet werden. Das Betriebssystem
steuert alle Betriebsmittel des Computersystems, einschließlich einer
Kommunikation zwischen einem Benutzer und dem Computer. Mehrere
exemplarische Betriebssysteme umfassen DOS, Windows, OS/2, UNIX
und das MacIntosh-System. Vorzugsweise umfaßt das Windows 95 Betriebssystem
ferner die „Microsoft
Windows 95 Device Driver Developers Kit" (Microsoft Windows 95 Gerätetreiberentwicklerausrüstung),
die von Microsoft Corporation durch ein Bestellen von „Microsoft Developer
Network Professional Subscription" derselben erhalten werden kann. „Microsoft
Developer Network Professional Subscription" umfaßt CDROMs mit einem Muster-Quellcode
und einer Dokumentation, die beschreibt, wie Anwendungen und Gerätetreiber
zu entwickeln sind. Eine Komponente der Driver Developers Kit (DDK)
(Treiberentwicklerausrüstung)
schildert genau, wie Drucksystemkomponenten zu entwickeln sind.
Ein Druckprozessor ist eine Drucksystemkomponente, die in der Treiberentwicklerausrüstung dokumentiert
ist. Das Abonnement umfaßt
alle Dokumentationen hinsichtlich wie die Entwicklerausrüstung zu
verwenden ist.
-
Gemäß der Implementierung
dieser Erfindung wird eine Anwendung auf dem Betriebssystem des Computers 10 betrieben,
wie es in 1 gezeigt
ist. Eine „Anwendung" ist ein Computerprogramm,
das konfiguriert ist, um bei einem Durchführen einer bestimmten Art einer
Arbeit zu unterstützen.
Im Gegensatz dazu betreibt ein Betriebssystem einen Computer, ein
Hilfsprogramm führt
eine Wartung oder allgemeine Arbeiten durch und eine Sprache wird
verwendet, um Computerprogramme zu erzeugen. Basierend auf dem speziellen Entwurf
derselben kann eine Anwendung Text, Graphik, Zahlen oder eine Kombination
dieser Elemente manipulieren.
-
Das
Betriebssystem des Computers 10 und des Netzwerks 12 umfaßt eine
Anwendungsprogrammierungsschnittstelle (API = application programming
interface). Eine API weist einen definierten Satz von Funktionen
auf, die durch das Betriebssystem zu einer Verwendung durch eine
Anwendung bereitgestellt sind. Die Schnittstelle existiert in der
Form eines definierten Satzes von Funktionen zu einer Verwendung,
wo es notwendig ist, daß proprietäre Anwendungsprogramme
mit einer Kommunikationssoftware sprechen oder konform zu Protokollen
von einem Produkt eines anderen Verkäufers sind. Eine API stellt
ein standardisiertes Verfahren von vertikalen Kommunikationen innerhalb
und außerhalb
des Computernetzwerks bereit.
-
Für den Fall,
bei dem die Ausgabegeräte 14, 16 und 18 Drukker
sind, weist jeder Drucker einen Druckertreiber auf. Ein „Druckertreiber" ist ein Softwareprogramm,
das es ermöglicht,
daß andere
Programme mit einem speziellen Drucker arbeiten, ohne sich mit den
Spezifika der Hardware und internen Sprache des Druckers zu befassen.
Jeder Drucker erfordert einen spezifischen Satz von Codes und Befehlen,
um ordnungsgemäß wirksam
zu sein und einen Zugriff auf spezielle Merkmale und Fähigkeiten
bereitzustellen. Wo alternativ das Ausgabegerät kein Drucker ist, weist das
Ausgabegerät
einen Gerätetreiber
auf, der wie ein Druckertreiber wirkt.
-
Ein „Treiber", wie bei einem Gerätetreiber
oder einem Drukkertreiber darauf Bezug genommen wird, ist ein Programm
oder Teilprogramm, das beschrieben ist, um entweder ein spezielles
Hardwaregerät
oder eine andere Softwareroutine zu steuern. Der Ausdruck „Treiber" stammte von dem
Konzept von Trabrenntreibern oder Automobiltreibern, die die Rösser oder
Autos derselben auf Herz und Nieren prüften, um die Fähigkeiten
derselben zu messen. Die allgemeinsten Beispiele eines Hardwaretreibers,
einer, der eine Hardware steuert, sind diejenigen, die zu speziellen
Marken und Modellen von Druckern gehören, die an Personalcomputern
angeschlos sen sind. Zum Beispiel ermöglicht es ein spezifischer
Drukkertreiber, daß ein
Textverarbeitungsprogramm mit einem Punktmatrixdrucker oder einem
Laserdrucker eines speziellen Modells kommuniziert.
-
Ein
anderer wichtiger Aspekt betrifft den Bedarf nach einer Software
in der Form einer Druckertreibersoftware zu einem Unterstützen von
Ausgabegeräten.
Bis zu diesem Punkt wurden lediglich die mechanischen Aspekte eines
Druckers detailliert geschildert. Auf einem anderen Pegel wird das
Problem durch die große Vielfalt
von Druckern mit allen Arten von speziellen Merkmalen komplexer
gemacht, die durch eine breite Vielfalt von Herstellern hergestellt
werden.
-
Bei
der frühen
Entwicklung von Druckern war die Situation ziemlich einfach. Die
erhältlichen
Drucker sprachen auf ASCII-Text- und -Steuerschriftzeichen an. Für jedes
zu dem Drucker gesendete Schriftzeichen wurde ein Buchstabe erzeugt.
Eine Vorbewegung zu der nächsten
Zeile eines Texts wurde mittels eines Wagen-Rückkehr- und Zeilenzufuhr-Schriftzeichens vorgenommen.
Falls ein Überdrucken
für fettgedruckte
Wirkungen benötigt
wurde, wurde lediglich ein Wagen-Rückkehr-Schriftzeichen gesendet
und die Zeile wurde wieder gedruckt. Schreibmaschinenähnliche
Drucker waren ebenfalls erhältlich,
die auf ein Rückwärtsschritt-Schriftzeichen ansprachen,
so daß ein
Fettdrucken und Unterstreichen ohne weiteres erzielt wurden.
-
In
dem Maße
wie eine Druckertechnologie mit der Entwicklung von Punktmatrixdruckern
fortschritt, wurde die Fähigkeit
für Schriftartänderungen
und graphische Optionen machbar. Das Ergebnis dieses Fortschritts
bestand darin, daß Textverarbeitungsprogramme
einen Satz einer Software für
jeden verfügbaren
Drucker benötigten,
da jeder Hersteller seine eigenen Gedanken hatte, welche Merkmale
nützlich
sein könnten, jeder
Hersteller dieselben auf eine unterschiedliche Weise implementierte.
Mit jeder neuen Druckerausführung oder
jedem Modell wurde ein neuer Satz einer Software benö tigt, die
als Treibersoftware bezeichnet wird. Folglich war ein mißliches
Problem sowohl für
den Benutzer des Textverarbeitungsprogrammdruckers als auch für Textverarbeitungsprogrammverkäufer erzeugt.
-
In
dem Maße
wie der Bedarf nach komplizierteren Druckfähigkeiten wuchs, hat sich eine
Anzahl von Lösungen
entwickelt. Das Hauptproblem war ein Entscheiden, wohin die „Intelligenz" für den Druckprozeß zu setzen
ist. Es gibt drei Möglichkeiten:
- 1. In das Textverarbeitungsprogramm selbst.
Das Textverarbeitungsprogramm wird etwas schwierig zu verwenden,
wenn keine schnelle CPU und keine gute Schnittstelle verfügbar sind.
Unter anderem führt
dies zu einem proprietärem
Dateiformat für
das Textverarbeitungsdokument. Es wird schwierig, stark formatierte Dokumente
zwischen unterschiedlichen Plattformen oder Textverarbeitungsprogrammen
zu bewegen, wenn nicht ein gemeinsames Datenformat verwendet werden
kann, wie beispielsweise RTF oder DCA. Falls keine gemeinsame formatierte
Datenstruktur gefunden werden kann, ist es eventuell möglich, die
Dateien in einem „generischen" Format zu übertragen,
bei dem eine Wagenrückkehr/Zeilenzuführung lediglich an
dem Ende eines Absatzes verwendet wird. Es wird dann nötig, die
Datei umzuformatieren.
- 2. In den Drucker. Dies führt
zu dem, was als Seitenbeschreibungssprachen (PDLs = Page description
languages) bekannt ist. Die häufigste
derselben ist eine, die als PostScript bekannt ist. Der Drucker
enthält einen
Prozessor und ein Programm, um die Befehle zu interpretieren, die
in der PostScript-Ausgabedatei enthalten sind. Die PostScript-Ausgabedatei
ist eine ASCII-Textdatei, die falls nötig manuell editiert werden kann.
Es sind auch andere proprietäre
Seitenbeschreibungs- und Steuersprachen erhältlich, wie bei spielsweise
dieselben in der Hewlett-Packard Linie von Laserdruckern. Die PostScript-Implementierung
wird durch ein Kaufen und Installieren eines PostScript-Sprachchips für den Drucker
aktiviert.
- 3. Eine andere Alternative. Eine letzte Alternative, zwischen
diesen zwei, ist ein Schriftsetzprogramm, wie beispielsweise TeX,
das eine Datei erzeugt, die die Schriftsatzbefehle enthält. Diese
Datei wird dann in ein geräteunabhängiges Format
umgewandelt, das durch ein Treiberprogramm für den speziellen Drucker geleitet
werden muß.
-
Zusätzlich zu
einer Plazierung der Intelligenz ist eine Graphikunterstützung auf
zwei allgemeine Weisen implementiert:
- 1. Im
wesentlichen eine Graphik-„Abladung" des Textverarbeitungsbildschirms.
Der notwendige Druckertreiber wird wiederum für den verwendeten Drucker benötigt. Es
ist auch möglich,
das Werk innerhalb des Dokuments selbst einzubetten, wie beispielsweise
bei Microsoft Word.
- 2. Eine „verkapselte" PostScript-Datei.
Dies enthält
den durch das Zeichnungsprogramm erzeugten Code in einem Format,
das interpretiert werden soll. Eine verkapselte PostScript-Datei
kann ferner ein Vorschaubild des Bilds in einem Rasterformat, wie
beispielsweise TIFF, oder einem Vektorformat, wie beispielsweise einer
Windows-Metadatei für
eine einfache aber direkte Bildschirmmanipulation des Bilds enthalten.
-
Welches
Verfahren gewählt
wird, ist wiederum eine Frage einer persönlichen Präferenz und der speziellen erhältlichen
Implementierung. Zu Implementierungszwecken des Geräts und des
Verfahrens von 1–11 der Anmelderin wird ein
kundenspezifischer Druckprozessor zu einer Verwendung mit ei nem
Betriebssystem, wie beispielsweise Windows 95, mit einem Druckertreiber
für das
Betriebssystem verwendet, das ein Erzeugen von verbesserten Windows-Metadateien
unterstützt.
-
2 und 3 stellen Weisen zu einem Liefern eines
Quellauftrags 28 zu einem oder mehreren Bestimmungsorten 30, 32 und 34 dar,
wobei ein Beispiel eines Bestimmungsorts die Ausgabegeräte 14, 16 und 18 (von 1) sind. Ein anderes Beispiel
eines Bestimmungsorts könnten
die Computer 20 und 22 sein. Derzeitige Windows-Treiberlösungen ermöglichen
kein Senden von einer Anwendung zu mehreren Bestimmungsorten. Der
Treiber muß jedoch
in der Lage sein, elektronisches Material zu mehreren Empfangsgeräten von
einer/einem einzigen Quellanwendung/-dokument zu senden, um wirksam
zu sein. Dies erfordert ein Sichern der ausgehenden Dokumentdaten
oder des Quellauftrags 28 in einem Format, das mehrere
Male geparst werden kann, um die erwünschten Codierungen zu erhalten,
wie es in 2 gezeigt
ist. Falls das Quelldokument oder der Quellauftrag 28 mehrere
Seiten ist, dann muß der
Mechanismus zu einem Senden ein Senden aller Seiten eines Bestimmungsorts
vor einem Übergehen
zu dem nächsten
Codiertyp unterstützen,
wie es in 3 gezeigt
ist. Ein Mehrfach-Teilprozeß-Lieferungsmechanismus
ist notwendig um die Quellauftragslieferung zu mehreren Bestimmungsorten
zu implementieren, wie es in 3 gezeigt
ist.
-
Wie
es in 2 und 3 gezeigt ist, bestehen mehrere
Optionen zu einem Liefern eines Quellauftrags 28 zu mehreren
Bestimmungsorten 30, 32 und 34. Das Folgende
ist eine Zusammenfassung der Optionen zu einem Senden:
- 1) Alle Seiten eines Auftrags können zu einem speziellen Bestimmungsort
vor einer Lieferung zu anderen Bestimmungsorten gesendet werden.
Diese Option wird als eine Seriell-Lieferung zu einem Bestimmungsort
zu einer Zeit über
eine Einfach-Teilprozeß-Spool-Lieferung
bezeichnet. Eine derzeitige Windows-Treiberarchitektur verwendet
eine derartige Einfach-Teilprozeß-Spool-Lieferung.
- 2) Eine Lieferung kann als eine Seite zu einer Zeit zu jedem
(allen) Bestimmungsort(en) vor einem Übergehen zu der nächsten Seite
des Quellauftrags implementiert sein. Probleme können jedoch eine Lieferung verzögern, was
bedeutet, daß dasselbe
oft keine gute Lieferungswahl ist.
- 3) Es kann ein Teilprozeß für jeden
Bestimmungsort vorgesehen sein (Mehrfach-Teilprozeß), wobei
der gesamte Auftrag durch jeden Teilprozeß geliefert wird. Auf diese
Weise können
alle Teilprozesse simultan laufen, was in einer parallelen Ausführung resultiert.
Dies erfordert ein Ändern
von Windows-Despooling-Mechanismen,
aber bietet die beste Lieferung zu allen Empfängern.
-
Die
Implementierung eines Zwischendateiformats, vorzugsweise in einer
Form als eine verbesserte Metadatei (EMF = enhanced metafile) ausgeführt, würde die
mehreren notwendigen Durchläufe
ermöglichen, um
die oben erwähnten
Lieferungsmerkmale von 2 und 3 zu implementieren. Eine
verbesserte Metadatei wird jedoch typischerweise über einen
Spooler zu einem Speicher geschrieben und eine Spooler-Wiedergabe einer
verbesserten Metadatei ermöglicht
keine Mehrfach-Durchlauf-Lieferung von dem Speicher. Eine verbesserte
Metadatei (EMF) ist ein verbessertes Dateiformat, das eine Reihe
von graphischen Operationen in einem geräteunabhängigen Datenformat auf hoher
Ebene beschreibt.
-
Um
ein derartiges Zwischendateiformat zu implementieren, wird ein spezifischer
Druckprozessor eines Entwurfs der Anmelderin dieses Problem durch
ein Kopieren der verbesserten Metadatei lösen. Wie es unten mit Bezug
auf 4–6 gezeigt und beschrieben
wird, wird ein derartiger kundenspezifischer Druckprozessor ermöglichen,
daß mehrere
Durchläu fe
von einem Speicher über
einen Spooler/Despooler geliefert werden, um einen Quellauftrag
zu mehreren Bestimmungsorten über
die Lieferungsschemata zu liefern, die oben mit Bezug auf 2 und 3 offenbart sind. Ein „Spooler" ist eine Komponente,
die eine anwendungserzeugte Ausgabe, die für einen Drucker bestimmt ist,
nimmt und dieselbe temporär
auf einer Platte speichert. Ein „Despooler" ist eine Systemkomponente, die für Daten
in Spool-Dateien und ein Übergeben
derselben zu der Software verantwortlich ist, die zu einem Schreiben
derselben zu einem Ausgabegerät
verantwortlich ist.
-
Um
dies jedoch zu machen, benötigt
das Gerät
dieser Erfindung eine zweckgebundene Spool-Auftrag-Kopfblock-Datei,
um die Bestimmungsorte und aufbereiteten Codierungen für jeden
Bestimmungsort zu beschreiben. Wenn eine Despool-Operation implementiert
ist, sendet eine Graphikgerätschnittstelle
(GDI = Graphics Device Interface) graphische Funktionen innerhalb
eines Gerätekontexts
(DC = device context) durch den Druckertreiber zu dem Spooler. Eine „GDI" ist eine Graphikgerätschnittstelle
(GDI = Graphics Device Interface), die Komponente von Windows, die
zu einem Implementieren der graphischen Funktionen verantwortlich
ist, wie beispielsweise einem Linienzeichnen und einer Farbverwaltung.
Eine GDI ist eine DLL (Dynamic Link Library = dynamische Verknüpfungsbibliothek),
die alle der graphischen Anwendungsprogrammierungsschnittstellen
(APIs) in Windows umfaßt.
Ein Gerätekontext
(DC) ist eine GDI-Datenstruktur, die den aktuellen Zustand eines
Geräts
oder einer Zeichnungsoberfläche
beschreibt, ein logisches Objekt, das auf der Anwendungsebene zu
finden ist. Genauer gesagt ist ein Gerätekontext eine Struktur, die
intern in einer GDI zu dem Zweck eines Anzeigens der graphischen
Daten (Malen auf dem Bildschirm oder Drucken von Seiten) beibehalten
wird. Ein jeglicher Anwendungsentwickler, der sich mit einem Drucken
befaßt,
ist mit dem Konzept eines Gerätekontexts
vertraut. Eine dynamische Verknüpfungsbibliothek
(DLL) ist eine Bibliothek von gemeinschaftlich verwendeten Funktionen,
mit denen sich Anwendungen zu einer Ausführungszeit verbinden, im Gegensatz
zu einer Kompilierzeit. Eine einzige speicherinterne Kopie der dynamischen
Verknüpfungsbibliothek
(DLL) befriedigt Anforderungen von allen rufenden Teilnehmern.
-
Bei
Quelldokumenten, die lediglich eine Seite in einer Länge sind,
ist es möglich,
anstelle der verbesserten Metadatei (EMF) alternativ Rohdaten zu
verwenden, die in die Sprache des Druckers formatiert sind. In diesem
Fall ist es jedoch notwendig, daß alle Bestimmungsorte die
gleiche Codierung unterstützen
und wählen.
Um dies zu machen, wird eine Unterstützung der verbesserten Metadatei
in einer GDIINFO-Struktur markiert.
-
Die
Vorrichtung und das Verfahren dieser Erfindung liefern Daten zu
Geräten,
einschließlich
Ausgabegeräten,
wie beispielsweise Drucker, Scanner und Plotter, in einer Verteilungsliste.
Die Verteilungsliste ist eine Liste von Geräten, die eine Ausgabe empfangen
können.
Eine Verteilungsliste kann durch eine getrennte Anwendung gesteuert
sein, mit der der Druckprozessor kommuniziert. Die getrennte Anwendung
könnte
eine jegliche einer Anzahl von Geräten sein, die innerhalb einer
Computernetzwerkumgebung vorhanden sind. Der Druckprozessor verwendet
dann die Liste von Geräten
bei einem Implementieren einer Operation eines Treiberschaltens
gemäß dem Gerät und dem
Verfahren dieser Erfindung.
-
Die
Anmelderin hat die Operation des Treiberschaltens gemäß dieser
Erfindung durch ein Betreiben des Programms und der Datei, die in
Tabelle 1 unten bereitgestellt sind, getestet. Weitere Details der
Implementierung werden unten mit Bezug auf 4–6 und das Flußdiagramm
von 7–11 erörtert. Die Anmelderin betrieb
einen derartigen Test auf einem Windows 95 System. Ein EMF-Auftrag
wurde in eine Warteschlange mit fünf Treibern gegeben, dann wurden
die Treiber durch eine Benutzerschnittstelle (UI = user interface)
zu einem Bitabbildungstreiber geschaltet. Der resultierende Quellauftrag
wurde verarbeitet, geschaltet und freigegeben, wobei der Druckauftrag
ordnungsgemäß zu einer
Datei druckt.
-
Das
unten in Tabelle 1 aufgelistete C-Code-Programm liefert einen „kundenspezifischen
Druckprozessor zu einem Treiberschalten" gemäß dieser
Erfindung. Dieser Code, wie derselbe in den Flußdiagrammen von 7–11 genau
geschildert ist, ermöglicht
das Schalten von Komponenten in der Form von Ausgabegeräten zu einem
Empfangen eines Druckauftrags. Das Schalten von Komponenten ist über einen
kundenspezifischen Druckprozessor für Windows 95, einen Treiber,
der eine Windows-Bitabbildung erzeugt, und einen Treiber, der eine
HP PCL5-Druckersprache erzeugt, implementiert. Um dies wirksam vorzunehmen,
muß ein
Druckertreiber für
Windows 95 oder NT ein Erzeugen von verbesserten Windows-Metadateien
(EMFs) unterstützen.
Ein Operator muß lediglich
eine Windows-Anwendung betreiben und mit dem erwünschten anfänglichen Druckertreiber das
erwünschte
Druckobjekt auswählen.
Dieser Treiber muß jedoch
den kundenspezifischen Druckprozessor aufweisen, der demselben zugeordnet
ist. Der Operator, oder das Netzwerk über ein gewisses Prioritätensetzungsschema,
kann dann den Druckauftrag direkt von der Anwendung drucken. Der
resultierende Druckauftrag wird temporär in dem Spooler gespeichert.
Wenn der Auftrag zeitplanmäßig drucken
soll, ruft der Spooler den kundenspezifischen Druckprozessor auf,
um den Auftrag zu drucken. Der Druckprozessor fragt das System ab,
um zu bestimmen, ob die Treiber existieren. Derselbe öffnet dann
den durch die Anwendung ausgewählten
Treiber und erlangt die aktuelle PRINTER.INFo.2-Struktur, um den
Treibernamen und andere Informationen über den Drucker zu erlangen.
-
Der
Druckprozessor ändert
dann den Treibernamen durch ein Verwenden von „SetPrinter API" mit der PRINTER.INFO.2-Struktur und einem
neuen Treibernamenfeld in den neuen erwünschten Namen. Dann erlangt
der Druckprozessor unter Verwendung von „Document Properties" die DEVMODE-Struktur
des neuen Treibers, so daß dieselbe
durch den neuen Treiber verwendet und verstanden wird. Dies wird
auch auf der PRINTER.INFO.2-Struktur gesichert. Das Obige wird alles
gemacht, wenn dem Druckprozessor durch den Spooler befohlen wird, „den Prozessor
zu öffnen". Der Prozessor wird
dann durch den Spooler angerufen, um die Daten zu verarbeiten. Der
Prozessor ruft die Graphikgerätschnittstelle
(GDI) an, um die Daten der verbesserten Metadatei (EMF) in dem neuen
Treiber zu verarbeiten. Am Ende des Auftrags wird der Treiber zu
dem Ursprung rückgesetzt,
so daß dem
Benutzer immer die gleichen Informationen vorgelegt werden.
-
Um
den obigen Prozeß zu
implementieren, müssen
mehrere Beschränkungen
angewendet werden. Erstens kann sich der DEVMODE für einen
jeglichen verwendeten Treiber nicht auf private DEVMODE-Daten stützen, wenn
nicht alle Treiber die gleichen privaten Daten unterstützen, wie
dieselben in dem Verbesserte-Metadatei- (EMF-) Auftrag enthalten
sind. Zweitens sollte die Benutzerschnittstelle für alle Treiber
gleich aussehen, weil der Benutzer jederzeit aufgerufen werden könnte.
-
Um
ein Treiberschalten gemäß der Vorrichtung
und dem Verfahren dieser Erfindung besser zu verstehen, wird ein
Schritt-für-Schritt-Fluß durch
das System, wie es über
den Algorithmus von Tabelle 1 implementiert ist, mit Bezug auf 4–6 durchgesehen.
Ein grundlegender Vorteil des Treiberschaltens gemäß dieser Erfindung
besteht darin, eine Systemwahl eines unterschiedlichen Druckertreibers
als dem einen zu ermöglichen,
der verwendet wird, um einen Druckauftrag in Windows 95 oder NT
zu erzeugen (dies gilt konzeptionell auch für den OS/2-Queue Processor
(Wartschlangentreiber)). Ein Wählen
eines unterschiedlichen Treibers ermöglicht, daß der einfach-gespoolte Auftrag
zu mehreren ungleichen Geräten
gesendet wird, wie beispielsweise einem HP DeskJet Drucker, einem
LaserJet-Drucker oder einem Plotter. Derselbe kann auch mehrere
Male verarbeitet werden, um zu einer Verteilung von Geräten zu senden,
wie beispielsweise vernetzte Drucker oder Internetgeräte.
-
Eine
Analyse des Treiberschaltauftragsflusses, der in 4–6 dargestellt ist, beginnt
mit einer Erstdurchlauf-Druckanforderung,
die über
eine Anwendung 36 eingeleitet wird. Die Anwendung 36 erzeugt
einen Druckauftrag oder einen Quellauftrag, der zu der dynamischen
Verknüpfungsbibliothek
(DLL) einer Graphikgerätschnittstelle
(GDI) geliefert wird. Die Graphikgerätschnittstelle (GDI) implementiert
gemeinschaftlich verwendete Funktionen zu einer Verbindungszeit
zwischen der Anwendung 36 und einem ursprünglichen
Treiber 38. Die Graphikgerätschnittstelle (GDI) enthält alle
graphischen Anwendungsprogrammierungsschnittstellen (APIs) in Windows,
wobei gespoolte Daten in der Form einer verbesserten Metadatei 42 erzeugt
werden.
-
Gemäß einer
Zweitdurchlaufoperation des Treiberschaltens stellt 5 einen Spooler 46 dar, der über einen
Spool-Kopfblock 48 die
Speicherung und Wiedererlangung der gespoolten Druckdaten oder der
verbesserten Metadatei 42 von einem Speichergerät 44 anweist.
Der Spooler 46 leitet Druckauftrags- und Druckerinformationen
zu dem kundenspezifischen Druckprozessor 50 dieser Erfindung.
Genauer gesagt setzt der Druckprozessor 50 über die
Codeimplementierung von Tabelle 1 und 7–11 den Treiber von dem ursprünglichen
Treiber 38 (von 4)
rück. Eine
Registerdatenbank 54 speichert Hardware- und Softwarekonfigurationsinformationen,
die durch die Systemanwendungsprogrammierungsschnittstellen (APIs)
wiedererlangt und verwendet werden, um den Druckprozessor 50 bei
einem Rücksetzen
des Treibers zu unterstützen.
Der Druckprozessor 50 weist die Graphikgerätschnittstelle
(GDI) an, den Druckauftrag auf einem neuen oder rückgesetzten
Treiber zu liefern. Die verbesserte Metadatei (EMF) 42 wird
durch die Graphikgerätschnittstelle
(GDI) von dem Speichergerät 44 wiedererlangt,
um einen Teil des „GDI-Abspielen-Spool-Stroms
(GDI play spool stream)" zu
bilden. Die Graphikgerätschnittstelle
(GDI) weist eine Kommunikation mit den neuen Treiber 56 und
einem Tor-Überwachungs/Druck-Anbieter 58 eines
Ausgabegeräts 14 an.
Das Gerät 14 empfängt nachfolgend
Ausgabebefehle von dem Treiber 56, die von der Ausgabebefehlsdatei
umgewandelt sind, die eine Zeichnungsbefehlsdatei aufweist, die
Zeichnungsbefehle enthält,
die von dem Druckprozessor 50 empfangen werden. Der Druckprozessor 50 führt die
Ausgabebefehlsdatei basierend auf einem Prioritätensetzungsschema dem Ausgabegerätetreiber 56 zu.
-
Ein
geeignetes Prioritätensetzungsschema
betrifft ein Richten der Ausgabebefehlsdatei von dem Druckprozessor 50 zu
einem des zumindest einen Ausgabegeräts basierend auf den Druckfähigkeiten
des Ausgabegeräts 14.
Eine andere Weise besteht darin, ein Richten der Ausgabebefehlsdatei
zu einem Ausgabegerät
auf eine relative Verfügbarkeit
des Ausgabegeräts 14 und/oder
des verwandten Gerätetreibers 56 zu basieren.
Zum Beispiel könnten
ein spezieller Treiber 56 und der Drucker 14 bereits
zu viele Druckaufträge
in einer Warteschlange enthalten. Alternativ könnten der Treiber 56 und
der Drucker 14 kein Papier oder keine Tinte mehr haben.
Des weiteren könnten
der spezielle Treiber 56 und der Drucker 14 erwünschte Druckfähigkeiten
nicht aufweisen, wie beispielsweise eine Farbe, ein korrekt proportioniertes
Papier, eine Bildauflösung, etc.,
was es vernünftiger
macht, den Prozessor 50 aufzuweisen, um den Druckauftrag
zu einem anderen geeigneteren Treiber und Gerät basierend auf einem oder
einem jeglichen einer Anzahl von bekannten Prioritätssetzungsschemata
zu liefern.
-
In
Anbetracht eines speziellen Treibers 56 und eines Geräts 14,
die verwendet werden, hängt
die Tatsache, wie jedes Verfahren arbeitet, von dem durch das Textverarbeitungsprogramm
verwendeten Druckertreiber ab. Ein Treiber ist eine Erweiterung
zu dem Betriebssystem und ist für
ein spezifisches Stück
einer Hardware maßgeschneidert,
wie beispielsweise einen Hewlett-Packard LaserJet III Drucker oder
einer Super-VGA-Anzeige. Der Druckertreiber nimmt die Informationen,
die durch den Reihenstrom von Daten oder die Seitenbeschreibungssprache
geliefert werden, und wandelt dieselben in Befehle auf niedriger
Ebene um, die durch den Drucker erkannt werden. (Ein Bildschirmtreiber
macht das gleiche mit dem Videoadapter, um Text auf dem Monitor
anzuzeigen.) Durch ein Arbeiten mit unterschiedlichen Treibern kann
ein Textverarbeitungsprogramm mit dem gleichen Dokument an einer
Vielfalt von Anzeigen und Druckern arbeiten. Eine „Registerdatenbank" ist eine strukturierte
Datei in Windows, die indexierte Informationen speichert, die die
Hardware des Hostsystems, Benutzerpräferenzen und andere Konfigurationsdaten
beschreiben. Die Registerdatenbank dient dazu, die starke Vermehrung
von Konfigurationsdateien zu reduzieren, die eine Windows-Maschine
stören
kann.
-
6 stellt ein Treiberschalten
zu einem Verteilen von Mehrfachdurchlaufaufträgen an eines oder mehrere Ausgabegeräte dar.
Der Druckprozessor 50 wird gemäß Schritt „S7.20", der unten mit Bezug auf 9 beschrieben ist, durch
den Spooler 46 „geöffnet", um die ursprüngliche
verbesserte Metadatei (EMF) 42 zu kopieren, die in dem
Speichergerät 44 gespeichert
ist. Über
einen Block 50 und einen Schritt „S7.30" von 11 weist
der Spooler 46 ferner den Druckprozessor an, das Dokument
an dem Druckprozessor zu drukken. Der Operationsblock 50 implementiert
eine geschlossene Schleife 62, die zu einem neuen Druckauftrag 64 zeigt,
und erlangt die verbesserte Metadatei 42 wieder und schreibt
dieselbe zu dem Speicher 44, die über den Druckprozessor einer
Lieferung zu jedem einer Reihe von Ausgabegeräten gemäß der Schleife 62 und einem
Zeiger 64 wieder wiedererlangt wird.
-
Logisches Flußdiagramm
-
Gemäß 7 ist ein „Druckprozessor" als ein logisches
Flußdiagramm
einer ersten Ebene für
das Programmieren eines Computers zu einem Wirksamsein innerhalb
einer Computernetzwerkumgebung offenbart, um Druckaufträge zu mehreren
Ausgabegeräten
aufzubereiten. Tabelle 1 schildert ferner genau die Implementierung
des Druckprozessors, aufbereitet in C-Code-Sprache, wie es oben
mit Bezug auf 5 und 6 gezeigt ist. Der „Druckprozessor" bildet ein Gerät, das ein
Druckertreiberschalten zu einer Verwendung mit einem Computer implementiert,
der innerhalb einer Computernetzwerkumgebung wirksam ist. Der „Druckprozessor" kann gemäß dem logischen
Flußdiagramm
von 7–11 automatisch implementiert
sein. Alternativ kann der kundenspezifische Druckprozessor HP PCL5
erzeugen. Auf diese Weise unterstützt der Druckprozessor das
Erzeugen von verbesserten Windows-Metadateien (EMFs). Ein Benutzer betreibt
eine Windows-Anwendung
und wählt
mit einem erwünschten
ursprünglichen
Druckertreiber ein erwünschtes
Druckobjekt aus. Die Gerätetreiber,
die in der Computernetzwerkumgebung wirksam sind, müssen den
kundenspezifischen Druckprozessor aufweisen, der denselben zugeordnet
ist. Druckaufträge
werden von der Anwendung gedruckt. Der resultierende Druckauftrag
wird über
den Spooler temporär
in einem Speicher gespeichert. Wenn der Auftrag zeitplanmäßig drucken
soll, ruft der Spooler den kundenspezifischen Druckprozessor auf, den
Auftrag zu drucken. Der Druckprozessor fragt das System ab, um zu
bestimmen, ob die Treiber existieren. Derselbe öffnet dann den durch die Anwendung
ausgewählten
Drucker und erlangt die aktuelle PRINTER.INFO.2-Struktur, um den
Treibernamen und andere Informationen über den Drucker zu erlangen.
Der Druckprozessor ändert
dann den Druckernamen in einen neuen erwünschten Namen, wie es vorhergehend
offenbart ist.
-
Gemäß einem
Schritt „S1" werden die Betriebssysteme
auf den Computern innerhalb des Computerbetriebsnetzwerks und die
Betriebssysteme und Gerätetreiber
der Ausgabegeräte
gestartet. Zum Beispiel startet auf ein Hochfahren jedes Geräts in dem
Netzwerk hin das System-BIOS das Betriebssystem und den Spooler,
die verwendet werden können,
um das Flußdiagramm
von 7 und 8 automatisch zu initialisieren
oder die Einleitung desselben zu bewirken, was bewirkt, daß der Computer
eine verbesserte Metadatei erzeugt, ursprüngliche Druckertreibergeräteinformationen
sammelt und den Drucker (oder das Ausgabegerät) zu einem Empfangen der Metadatei schaltet.
Nach einem Durchführen
des Schritts „S1" geht der Prozeß zu einem Schritt „S2" über.
-
Bei
dem Schritt „S2" leitet die Anwendung,
die auf dem Betriebssystem läuft,
einen Druckauftrag ein. Ein Weg besteht darin, automatisch eine
Druckanforderung zu erzeugen. Ein anderer Weg besteht darin, daß ein Benutzer
einen Druckauftrag anfordert. Nach einem Durchführen des Schritts „S2" geht der Prozeß zu einem
Schritt „S3" über.
-
Bei
dem Schritt „S3" leitet die Anwendung,
die auf dem Betriebssystem läuft,
den Druckauftrag zu der Graphikgerätschnittstelle (GDI) weiter,
eine Komponente des Windows-Betriebssystems,
die für
ein Implementieren der graphischen Funktionen verantwortlich ist,
wie beispielsweise ein Linienzeichnen und eine Farbverwaltung. Die
GDI erzeugt Daten in Zwischenzeichnungsbefehlen in der Form von
verbesserten Metadateien. Nach einem Durchführen des Schritts „S3" geht der Prozeß zu einem
Schritt „S6" über.
-
Bei
einem Schritt „S4" liefert der ursprüngliche
Druckertreiber Geräteinformationen,
die notwendig sind, um das zugeordnete Peripheriegerät zu betreiben,
wie beispielsweise einen Drucker, einen Monitor oder ein anderes
Ausgabegerät.
Der Druckertreiber liefert Informationen über Fähigkeiten des Geräts, das
derselbe darstellt. Zum Beispiel sind die Größe eines verwendeten Papiers,
eine Unterstützung
von Farben, Schwarz-Weiß,
etc. einige der Informationen über
Gerätefähigkeiten,
die geliefert werden können.
Nach einem Durchführen
von Schritten „S4" und „S5" geht der Prozeß zu Schritten „S5" und „S6" über.
-
Bei
dem Schritt „S5" überträgt die GDI die erzeugten Zwischenzeichnungsbefehle
in der Form einer verbesserten Metadatei, wo dieselbe in einem Speicher
gespeichert wird.
-
Bei
dem Schritt „S6" weist der Prozeß den Spooler
an, einen zweiten Durchlauf an dem Druckauftrag einzuleiten, um
den speichergespeicherten Druckauftrag zu einem Ausgabegerät zu senden,
wie es durch die Anwendung bestimmt ist. Nach einem Durchführen des
Schritts „S6" geht der Prozeß zu einem
Schritt „S7" über.
-
Bei
dem Schritt „S7" leitet der Prozeß eine Implementierung
des Druckprozessors ein. Der Druckprozessor wird auf eine von drei
Weisen implementiert: der Druckprozessor wird über eine Operation des in 8 gezeigten Flußdiagramms
initialisiert; der Druckprozessor wird geöffnet, Druckertreiberdetails
werden wiedererlangt und neue Druckertreibereinstellungen werden
in der Systemdatenbank gesichert, um eine Druckprozessordatenstruktur
zu erreichen; und der Druckprozessor führt das Drucken (oder die Ausgabe)
eines Druckauftrags an dem neuen Ausgabegerät über einen zugeordneten Gerätetreiber
aus. Nach einem Durchführen des
Schritts „S7" (eine der Routinen
von 8, 9 und 10 zusammen,
oder 11) geht der Prozeß zu einem
Schritt „S8" über.
-
Bei
dem Schritt „S8" bereitet die GDI
den Druckauftrag unter Verwendung eines neuen Druckertreibers auf.
Nach einem Durchführen
des Schritts „S8" geht der Prozeß zu einem
Schritt „S10" über. Ein eingekreistes Zeichen
1 stellt eine Verbindung zu einem Schritt „S7.36" zu einem Leiten eines Puffers zu der
GDI gemäß den Operationen
von 11 her. Nach einem
Durchführen
des Schritts „S8" geht der Prozeß zu einem
Schritt „S10" über.
-
Bei
einem Schritt „S9" liefert der durch
die Anwendung ausgewählte
neue Druckertreiber Ausgabegerätinformationen
zu der GDI, was ermöglicht,
daß die
GDI den Druckauftrag aufbereitet, um eine Ausgabe des Druckauftrags über den
Schritt „S10" zu ermöglichen.
-
Bei
dem Schritt „S10" wird der Druckauftrag
als ein Dokument gedruckt. An diesem Punkt endet der Prozeß.
-
Gemäß 8 implementiert der Druckprozessor
eine erste Operation. Gemäß einem
Schritt „S7.10" initialisiert der
Prozeß die
Druckprozessorfunktionszeiger und weist einen Speicher zu. Nach
einem Durchführen
des Schritts „S7.10" geht der Prozeß zu einem
Schritt „S7.11" über.
-
Bei
dem Schritt „S7.11" implementiert der
Druckprozessor eine erste Operation. Gemäß dem Schritt „S7.10" initialisiert der
Prozeß die
Druckprozessorfunktionszeiger und weist einen Speicher zu. Nach
einem Durchführen
des Schritts „S7.10" geht der Prozeß zu einem
Schritt „S7.11" über.
-
Bei
dem Schritt „S7.11" leitet der Prozeß eine Rückkehr zu
dem Spooler ein. Nach einem Durchführen des Schritts „S7.11" geht der Prozeß zu einem
Schritt „S7.12" über.
-
Bei
dem Schritt „S7.12" endet der Prozeß. Der Prozeß geht dann
zu der Implementierung des Flußdiagramms
von 9 und 10 über.
-
Gemäß dem Prozeß von 9 und 10 implementiert der Prozeß eine zweite
Operation durch den Druckprozessor. Gemäß einem Schritt „S7.20" öffnet der Prozeß den Druckprozessor.
Nach einem Durchführen
des Schritts „S7.20" geht der Prozeß zu einem
Schritt „S7.21" über.
-
Bei
dem Schritt „S7.21" öffnet der Druckprozessor den
Drukker. Gemäß dem Schritt „S7.10" leitet der Prozeß das Öffnen über „openprinter
API" ein. „Openprinter
API" ist der Name
der Teilroutine, die der Druckprozessor in der „Microsoft Windows 95 Device
Driver Developers Kit" anruft.
Die „openprinter
API" existiert in dem
Spooler, um Funktionen durchzuführen,
die durch den Spooler benötigt
werden. Nach einem Durchführen des
Schritts „S7.21" geht der Prozeß zu einem
Schritt „S7.22" über.
-
Bei
dem Schritt „S7.22" erlangt der Druckprozessor
Druckerdetails unter Verwendung von „printerinfo2 structure" wieder. Gemäß dem Schritt „S7.22" werden die Details über „getprinter
API" wiedererlangt. „Getprinter
API" ist der Name
einer Teilroutine in dem Spooler, die Informationen von dem Spooler
wiedererlangt. Nach einem Durchführen
des Schritts „S7.22" geht der Prozeß zu einem
Schritt „S7.23" über.
-
Bei
dem Schritt „S7.23" ändert der Druckprozessor den
Drukkertreibernamen in einer „printinfo2"-Struktur in einen
neuen Gerätetreiber.
Nach einem Durchführen
des Schritts „S7.23" geht der Prozeß zu einem
Schritt „S7.24" über.
-
Bei
dem Schritt „S7.24" sichert der Druckprozessor
die neuen Druckerinformationen in der Systemregisterdatenbank. Derartiges
wird über „setprinter
API" implementiert. „Setprinter
API" ist eine Teilroutine,
die in dem Spooler existiert und Informationen über den Drucker oder das Ausgabegerät sichert,
so daß der
Spooler eine Kenntnis der Informationen aufweist. Nach einem Durchführen des
Schritts „S7.24" geht der Prozeß zu einem
Schritt „S7.25" über.
-
Bei
dem Schritt „S7.25" erlangt der Druckprozessor
die Druckerdokumenteigenschaften wieder. Die Wiedererlangung ist
als „documentproperties
API" implementiert. „Documentproperties
API" erhält Informationen
von dem Spooler über
Dokumente, die erzeugt werden. Nach einem Durchführen des Schritts „S7.25" geht der Prozeß zu einem
Schritt „S7.26" über.
-
Bei
dem Schritt „S7.26" ändert der Druckprozessor die
Dokumenteigenschaften, um mit neuen Treibereinstellungen übereinzustimmen.
Der Druckprozessor aktualisiert im wesentlichen die devmode-Struktur. „Devmode
structure" ist eine
Struktur, die in dem Spooler existiert und die Fähigkeiten der innerhalb der
Computernetzwerkumgebung verfügbaren
Druckertreiber beschreibt. Nach einem Durchführen des Schritts Schritts „S7.26" geht der Prozeß zu einem
Schritt „S7.27" über.
-
Bei
dem Schritt „S7.27" sichert der Druckprozessor
die neuen Druckerdokumenteigenschaften in der Systemregisterdatenbank.
Um dies vorzunehmen, ändert
der Druckprozessor den Treibernamen unter Verwendung von „setprinter
API" in den neuen
erwünschten
Namen. „Setprinter
API" ist eine Teilroutine,
die in dem Spooler existiert und Informationen über den Drucker oder das Ausgabegerät sichert,
so daß der
Spooler eine Kenntnis der Informationen aufweist. Nach einem Durchführen des
Schritts „S7.27" geht der Prozeß zu einem
Schritt „S7.28" über.
-
Bei
dem Schritt „S7.28" weist der Druckprozessor
Prozessordatenstrukturen zu und initialisiert dieselben. Nach einem
Durchführen
des Schritts „S7.28" geht der Prozeß zu einem
Schritt „S7.29" über.
-
Bei
dem Schritt „S7.29" leitet der Druckprozessor
eine Rückkehr
zu dem Spooler ein. Nach einem Durchführen des Schritts „S7.29" geht der Prozeß zu einem
Schritt „S7.291" über.
-
Bei
dem Schritt „S7.291" beendet der Druckprozessor
die Teilroutine von 9 und 10 und bewegt sich vorzugsweise
zu einer Implementierung der Teilroutine von 11 weiter.
-
Gemäß dem Prozeß von 11 implementiert der Prozeß eine dritte
Operation durch den Druckprozessor. Gemäß einem Schritt „S7.30" druckt der Prozeß ein Dokument
von der verbesserten Metadatei. Genauer gesagt richtet der Spooler
ein Druckdokument auf den Druckprozessor. Nach einem Durchführen des Schritts „S7.30" geht der Prozeß zu einem
Schritt „S7.31" über.
-
Bei
dem Schritt „S7.31" validiert der Druckprozessor
eingehende Parameter. Zum Beispiel validiert der Druckprozessor
die Druckerkennung und den Datentyp. Nach einem Durchführen des
Schritts „S7.31" geht der Prozeß zu einem
Schritt „S7.32" über.
-
Bei
dem Schritt „S7.32" öffnet der Druckprozessor den
Drukker. Nach einem Durchführen
des Schritts „S7.32" geht der Prozeß zu einem
Schritt „S7.33" über.
-
Bei
dem Schritt „S7.33" setzt der Druckprozessor
den Spooler, um zu starten, und liest das Dokument. Genauer gesagt
wird die „startdocprinter
API"-Datei implementiert. „Startdocprinter
API" ist eine Funktion,
die in dem Druckprozessor existiert und wiederum durch den Spooler
angerufen wird, um dem Druckprozessor den Start eines Dokuments
anzugeben. Nach einem Durchführen
des Schritts „S7.33" geht der Prozeß zu einem
Schritt „S7.34" über.
-
Bei
dem Schritt „S7.34" liest der Druckprozessor
einen Puffer einer verbesserten Metadatei. Nach einem Durchführen des
Schritts „S7.34" geht der Prozeß zu einem
Schritt „S7.36" über.
-
Bei
einem Schritt „S7.35" überträgt der Druckprozessor die verbesserte
Metadatei zu einem Puffer, wo dieselbe gelesen wird. Nach einem
Durchführen
des Schritts „S7.35" geht der Prozeß zu dem
Schritt „S7.36" über.
-
Bei
dem Schritt „S7.36" leitet der Druckprozessor
den Puffer zu der GDI, um durch den neuen Treiber aufbereitet zu
werden. Die „GDIplayspoolstream
API"-Datei wird
implementiert. „GDIplayspoolstream
API" ist eine Teilroutine,
die in der GDI existiert. Nach einem Durchführen des Schritts „S7.36" geht der Prozeß zu einem
Schritt „S7.37" über.
-
Bei
dem Schritt „S7.37" fährt der
Druckprozessor fort, bis derselbe das Ende der Datei erreicht. Nach einem
Durchfüh ren
des Schritts „S7.37" geht der Prozeß zu einem
Schritt „S7.38" über.
-
Bei
dem Schritt „S7.38" schließt der Prozessor
den Drucker. Nach einem Durchführen
des Schritts „S7.38" geht der Prozessor
zu einem Schritt „S7.39" über.
-
Bei
dem Schritt „S7.39" beendet der Druckprozeß die Teilroutine
von 11 und kehrt zu
einer Implementierung der Teilroutine von 7 zurück.
-
In Übereinstimmung
mit den Vorschriften wurde die Erfindung hinsichtlich struktureller
und methodischer Merkmale in einer mehr oder weniger spezifischen
Sprache beschrieben. Es ist jedoch klar, daß die Erfindung nicht auf die
spezifischen gezeigten und beschriebenen Merkmale begrenzt ist,
da die hierin offenbarten Einrichtungen bevorzugte Formen eines
Ausführens
der Erfindung aufweisen. Die Erfindung wird daher in einer jeglichen
der Formen oder Modifizierungen derselben innerhalb des ordnungsgemäßen Schutzbereichs der
beigefügten
Ansprüche
beansprucht, die gemäß der Doktrin
von Äquivalenten
geeignet interpretiert werden.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-