DE69727906T2 - Geschalteter Druckertreiber in Windows-Betriebssystem - Google Patents

Geschalteter Druckertreiber in Windows-Betriebssystem Download PDF

Info

Publication number
DE69727906T2
DE69727906T2 DE69727906T DE69727906T DE69727906T2 DE 69727906 T2 DE69727906 T2 DE 69727906T2 DE 69727906 T DE69727906 T DE 69727906T DE 69727906 T DE69727906 T DE 69727906T DE 69727906 T2 DE69727906 T2 DE 69727906T2
Authority
DE
Germany
Prior art keywords
printer
print
output command
command file
printer driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69727906T
Other languages
English (en)
Other versions
DE69727906D1 (de
Inventor
Lawrence M. Boise Snyders
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Application granted granted Critical
Publication of DE69727906D1 publication Critical patent/DE69727906D1/de
Publication of DE69727906T2 publication Critical patent/DE69727906T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1296Printer job scheduling or printer resource handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Description

  • 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 15 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 15 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 111 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 46 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 46 und das Flußdiagramm von 711 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 711 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 46 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 46 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 711 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 711 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.
  • TABELLE 1
    Figure 00290001
  • Figure 00300001
  • Figure 00310001
  • Figure 00320001
  • Figure 00330001
  • Figure 00340001
  • Figure 00350001
  • Figure 00360001
  • Figure 00370001
  • Figure 00380001
  • Figure 00390001
  • Figure 00400001
  • Figure 00410001
  • Figure 00420001
  • Figure 00430001
  • Figure 00440001
  • Figure 00450001
  • Figure 00460001
  • Figure 00470001
  • Figure 00480001
  • Figure 00490001
  • Figure 00500001
  • Figure 00510001
  • Figure 00520001

Claims (15)

  1. Eine Informationsverteilungsvorrichtung, die innerhalb einer Computernetzwerkumgebung (12) verwendbar ist und die folgende Merkmale aufweist: einen Computer (10), der ein Betriebssystem aufweist und konfiguriert ist, um innerhalb der Computernetzwerkumgebung (12) wirksam zu sein; eine Anwendung (36), die konfiguriert ist, um über das Betriebssystem auf dem Computer (10) zu laufen, wobei die Anwendung (36) konfiguriert ist, um einen Quellauftrag (28) in der Form eines Zwischendateiformats zu erzeugen, das eine Ausgabebefehlsdatei (42) aufweist; einen Druckprozessor (50) in der Form eines ausführbaren Zwischencodes zu einem Wirksamsein an der Ausgabebefehlsdatei (42); und einen Drucker (14, 16, 18), der einen Druckertreiber (56) aufweist, der konfiguriert ist, um die Ausgabebefehlsdatei (42) in Ausgabebefehle umzuwandeln, die durch den Drucker (14, 16, 18) verwendbar sind, um eine Ausgabe zu erzeugen; wobei der Druckprozessor (50) wirksam ist, um Druckerdetails für einen identifizierten Druckertreibernamen von einer Speicherposition in einem Speichergerät (44) des Computers (10) wiederzuerlangen, den identifizierten Druckertreibernamen in einen unterschiedlichen identifizierten Druckertreibernamen zu ändern, die Druckerdetails des unterschiedlichen identifizierten Druckertreibernamens in der Form von neuen Druckerinformationen in einer Systemregisterdatenbank (54) zu speichern, Druckerdokumenteigenschaften der gespeicherten Druckerdetails von dem Speichergerät wiederzuerlangen, die wiedererlangten Druckerdokumenteigenschaften zu verändern, um dieselben an neue Druckertreibereinstellungen anzupassen, die neuen Druckerdokumenteigenschaften in der Systemregisterdatenbank (54) zu speichern und Druckprozessordatenstrukturen zuzuteilen und zu initialisieren, die verwendbar sind, um einen Druckauftrag (28) auf dem Drucker (14, 16, 18) auszuführen.
  2. Die Informationsverteilungsvorrichtung gemäß Anspruch 1, bei der die Ausgabebefehlsdatei (42) eine Zeichnungsbefehlsdatei aufweist, die Zeichnungsbefehle umfaßt.
  3. Die Informationsverteilungsvorrichtung gemäß Anspruch 1, bei der der Druckertreiber (56) das Zwischendateiformat von Ausgabebefehlen empfängt, um die Befehle zu verarbeiten.
  4. Die Informationsverteilungsvorrichtung gemäß Anspruch 1, bei der das Zwischendateiformat eine verbesserte Metadatei (42) aufweist.
  5. Die Informationsverteilungsvorrichtung gemäß Anspruch 1, bei der der Druckprozessor (50) die Ausgabebefehlsdatei (42) dem Druckertreiber (56) des Druckers (14, 16, 18) über einen Seriell-Sendevorgang zuführt, was ein Aufbereiten der Ausgabebefehlsdatei (42) für mehrere Ausgabegeräte (14, 16, 18) ermöglicht.
  6. Die Informationsverteilungsvorrichtung gemäß Anspruch 1, bei der der Druckprozessor (50) die Ausgabebefehlsdatei (42) dem Druckertreiber (56) des Druckers (14, 16, 18) über einen Mehrfach-Teilprozeß-Parallel-Sendevorgang zuführt, um die Ausgabebefehlsdatei (42) für mehrere Ausgabegeräte (14, 16, 18) aufzubereiten.
  7. die Informationsverteilungsvorrichtung gemäß Anspruch 1, bei der der Druckprozessor (50) die Ausgabebefehlsdatei (42) dem Druckertreiber (56) des Druckers (14, 16, 18) über einen Mehrfach-Teilprozeß in einem Parallel-Sendevorgang zuführt, um die Ausgabebefehlsdatei (42) für mehrere Ausgabegeräte (14, 16, 18) aufzubereiten.
  8. Die Informationsverteilungsvorrichtung gemäß Anspruch 1, die ferner eine Registerdatenbank (54) und eine Systemanwendungsprogrammierungsschnittstelle (API = application programming interface) (52) aufweist, wobei die Registerdatenbank (54) durch die Anwendungsprogrammierungsschnittstelle (API) (52) an dem Druckprozessor (50) wirksam ist, um den Drucker (14, 16, 18) zu konfigurieren, um die Ausgabebefehlsdatei (42) zu empfangen.
  9. Die Informationsverteilungsvorrichtung gemäß Anspruch 1, die ferner ein Speichergerät (44) und einen Spooler (46) zu einem Nehmen und einem Speichern der anwendungserzeugten Ausgabebefehlsdatei (42) aufweist.
  10. Die Informationsverteilungsvorrichtung gemäß Anspruch 9, die ferner eine Graphikgerätschnittstelle (GDI = graphics device interface) (40) zu einem Implementieren von graphischen Funktionen und einem dynamischen Verbinden einer graphischen Systemanwendungsprogrammschnittstelle (API) (52) mit dem Druckertreiber (56) des Druckers (14, 16, 18), das Speichergerät (44) und einen ursprünglichen Druckertreiber (38) aufweist, der verwendet wird, um die Ausgabebefehlsdatei (42) zu erzeugen.
  11. Die Informationsverteilungsvorrichtung gemäß Anspruch 9, die ferner einen Spool-Kopfblock (48) aufweist, der durch den Spooler (46) erzeugt und an die Ausgabebefehlsdatei (42) übertragen wird, wobei der Spool- Kopfblock (48) eine Spool-Auftrag-Kopfblock-Datei zu einem Beschreiben der Bestimmungsorte und der aufbereiteten Daten und/oder codierten Daten für jeden Bestimmungsort für die anwendungserzeugte Ausgabebefehlsdatei (42) aufweist.
  12. Die Informationsverteilungsvorrichtung gemäß Anspruch 11, bei der die Ausgabebefehlsdatei (42) eine verbesserte Metadatei (42) aufweist, der Druckprozessor (50) die ursprüngliche Kopie der verbesserten Metadatei (60) in das Speichergerät (44) kopiert, nachdem der Druckprozessor (50) ansprechend auf den Spooler (46) ein Druckdokument einleitet, und eine Rückkopplungsschleife (62) mehrere Druckdokumentaufgaben einleitet, die mehrere Durchgangsaufträge (64) zu einer Verteilung aufweisen.
  13. Ein Verfahren zu einer Verwendung bei einem System zum Verteilen von Druckaufträgen (28) von einem Computer (10), der verwendbar ist, um in einer Computernetzwerkumgebung (12) wirksam zu sein, von dem Typ, der ein Betriebssystem; eine Anwendung (36), die zu einem Laufen auf dem Betriebssystem und einem Erzeugen eines Quellauftrags (28) in der Form eines Zwischendateiformats konfiguriert ist, das eine Ausgabebefehlsdatei (42) aufweist; und einen Drucker (14, 16, 18) aufweist, der einen Druckertreiber (56) zum Empfangen der Ausgabebefehlsdatei (42) zum Erzeugen einer Ausgabe aufweist, wobei das Verfahren folgende Schritte aufweist: Bereitstellen eines Druckprozessors (50) in der Form eines ausführbaren Zwischencodes zu einem Wirksamsein an der Ausgabebefehlsdatei (42); Wiedererlangen von Druckerdetails für einen Namen eines identifizierten Druckertreibers (38) von einer Speicherposition in einem Speichergerät (44) des Computers (10); Ändern des Namens des identifizierten Druckertreibers (38) in einen unterschiedlichen identifizierten Drukkertreiber (56); Speichern der Details des Druckers (14, 16, 18) des Namens des unterschiedlichen identifizierten Druckertreibers (56) in der Form von neuen Druckerinformationen in einer Systemregisterdatenbank (54); Wiedererlangen von Druckerdokumenteigenschaften der Details des gespeicherten Druckers (14, 16, 18) von dem Speichergerät (44); Verändern der wiedererlangten Druckerdokumenteigenschaften, um dieselben an neue Einstellungen des Drukkertreibers (56) anzupassen; Speichern der neuen Druckerdokumenteigenschaften in der Systemregisterdatenbank (54); und Zuteilen und Initialisieren von Datenstrukturen des Druckprozessors (50), die verwendbar sind, um einen Druckauftrag (28) auf dem Drucker (14, 16, 18) auszuführen.
  14. Das Verfahren gemäß Anspruch 13, das nach dem Schritt des Initialisierens der Datenstrukturen des Druckprozessors (50) ferner den Schritt eines Zurückkehrens zu einem Spooler (46) für eine Neuinitialisierung des Systems aufweist, um einen anderen Druckauftrag (28) über die zuvor erwähnten Schritte neuauszuführen, um mehrere Durchgangsdruckaufträge (28) für eine Verteilung auszuführen.
  15. Das Verfahren gemäß Anspruch 13, bei dem die Ausgabebefehlsdatei in der Form einer verbesserten Metadatei (42) ausgeführt ist, wobei das Verfahren ferner den Schritt eines Bereitstellens eines Spoolers (46) zu einem Nehmen und Speichern der verbesserten Metadatei (42) von einer Anwendung (36), eines Erzeugens eines Spool-Kopfblocks (48) durch den Spooler (46) und eines Zuweisens des Spool-Kopfblocks (48) an die verbesserte Metadatei (42) aufweist, wobei der Spool-Kopfblock (48) eine Spool-Auftrag-Kopfblock-Datei zum Beschreiben der Bestimmungsorte und der aufbereiteten Daten und/oder codierten Daten für jeden Bestimmungsort für die durch die Anwendung (36) erzeugte verbesserte Metadatei (42) aufweist.
DE69727906T 1997-03-13 1997-09-24 Geschalteter Druckertreiber in Windows-Betriebssystem Expired - Fee Related DE69727906T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US816978 1997-03-13
US08/816,978 US5982996A (en) 1997-03-13 1997-03-13 Mechanism for printer driver switching in windows operating systems to allow distribution of print jobs to an output device from a single print request within an application

Publications (2)

Publication Number Publication Date
DE69727906D1 DE69727906D1 (de) 2004-04-08
DE69727906T2 true DE69727906T2 (de) 2005-02-03

Family

ID=25222075

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69727906T Expired - Fee Related DE69727906T2 (de) 1997-03-13 1997-09-24 Geschalteter Druckertreiber in Windows-Betriebssystem

Country Status (4)

Country Link
US (1) US5982996A (de)
EP (1) EP0864964B1 (de)
JP (1) JPH10320343A (de)
DE (1) DE69727906T2 (de)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US6760118B1 (en) 1996-03-27 2004-07-06 Canon Kabushiki Kaisha Printing device control apparatus and method
US6560621B2 (en) * 1997-12-29 2003-05-06 Intel Corporation World wide web formatting for program output through print function
JP3278394B2 (ja) * 1998-02-25 2002-04-30 キヤノン株式会社 情報処理装置、情報処理方法、及び、記憶媒体
JP4708518B2 (ja) * 1998-05-21 2011-06-22 キヤノン株式会社 情報処理装置、データ処理方法、情報処理システム、及びコンピュータ読み取り可能な記憶媒体
US6636891B1 (en) * 1998-11-06 2003-10-21 Seiko Epson Corporation Methods and apparatus for controlling an input or output device over the internet
DE19911461A1 (de) * 1999-03-15 2000-09-28 Oce Printing Systems Gmbh Verfahren zur Übertragung von Computerdaten an ein Ausgabegerät
US6967728B1 (en) * 1999-07-23 2005-11-22 Electronics For Imaging, Inc. Reusable and transferable printer driver preference system
WO2001033366A1 (fr) * 1999-11-01 2001-05-10 Seiko Epson Corporation Controleur de sortie de donnees
US7401113B1 (en) * 1999-12-09 2008-07-15 Microsoft Corporations Printer driver identification for a remote printer
US7143150B1 (en) * 1999-12-09 2006-11-28 Ricoh Company, Ltd. Method of configuring a computer to include the available options of a printer
JP3946397B2 (ja) * 1999-12-24 2007-07-18 三菱電機株式会社 車載情報処理装置
US8527872B1 (en) * 2000-01-18 2013-09-03 Autodesk, Inc. Multiple output device association
US7072052B1 (en) 2000-07-21 2006-07-04 Canon Kabushiki Kaisha Efficient rasterization system and method
AUPR161800A0 (en) * 2000-11-22 2000-12-14 Canon Kabushiki Kaisha Peripheral driver forward compatibility
US7225040B2 (en) * 2001-11-14 2007-05-29 Exxon Mobil Oil Corporation Method and system for reducing lead-time in the packaging industry
US7636757B2 (en) * 2000-12-15 2009-12-22 Canon Kabushiki Kaisha Printing over the internet
US20020089687A1 (en) 2001-01-11 2002-07-11 Ferlitsch Andrew Rodney Methods and systems for print-processor-based printer status detection and print task distribution
US8456665B2 (en) * 2001-01-11 2013-06-04 Sharp Laboratories Of America, Inc. Methods and systems for printing error recovery
US20030227644A1 (en) * 2001-01-11 2003-12-11 Sharp Laboratories Of America, Inc. Methods and systems for driver independent customized printing
US7046384B2 (en) 2001-01-11 2006-05-16 Sharp Laboratories Of America, Inc. Methods and systems for print-processor-based print task error recovery
US8411298B2 (en) * 2001-01-11 2013-04-02 Sharp Laboratories Of America, Inc. Methods and systems for printing device load-balancing
US7180619B2 (en) * 2001-01-11 2007-02-20 Sharp Laboratories Of America, Inc. Methods and systems for recovering a failed print job
US7548331B2 (en) 2001-01-11 2009-06-16 Sharp Laboratories Of America, Inc. Methods and systems for print system component-based remote printing
US7480068B2 (en) * 2001-01-11 2009-01-20 Sharp Laboratories Of America, Inc. Methods and systems for page-independent spool file sheet assembly
US20020113989A1 (en) * 2001-01-11 2002-08-22 Ferlitsch Andrew Rodney Methods and systems for print-processor modified printing
JP2002289878A (ja) * 2001-03-26 2002-10-04 Pioneer Electronic Corp 有機半導体ダイオード
US6975419B2 (en) 2001-06-18 2005-12-13 Hewlett-Packard Development Company, L.P. System and method for mobile printing
US7324220B1 (en) 2001-07-09 2008-01-29 Lexmark International, Inc. Print performance under the windows® operating system
US7113299B2 (en) * 2001-07-12 2006-09-26 Canon Development Americas, Inc. Printing with credit card as identification
US7365870B2 (en) * 2001-08-17 2008-04-29 Sharp Laboratories Of America, Inc Methods and systems for page-independent spool file face-up emulation
US7280241B2 (en) * 2001-09-04 2007-10-09 Xerox Corporation Print driver user interface
JP3634783B2 (ja) * 2001-09-14 2005-03-30 キヤノン株式会社 印刷システム及び印刷データ処理方法
US7171468B2 (en) * 2001-11-10 2007-01-30 Kabushiki Kaisha Toshiba System and method for accessing a document management repository
US7315824B2 (en) * 2001-12-04 2008-01-01 Canon Development Americas, Inc. Internet printing by hotel guests
US7996492B2 (en) * 2002-02-20 2011-08-09 Hewlett-Packard Development Company, L.P. System for providing information regarding network resources
JP3740472B2 (ja) * 2002-03-12 2006-02-01 キヤノン株式会社 プログラム、印刷ジョブ制御システム、印刷データ処理方法及び記憶媒体
US8681352B2 (en) * 2002-04-18 2014-03-25 Hewlett-Packard Development Company, L.P. Pull based computer output devices
US20030200353A1 (en) * 2002-04-19 2003-10-23 Vikas Dogra Browser-implemented upload/download of a driver
US20030210834A1 (en) * 2002-05-13 2003-11-13 Gregory Hitchcock Displaying static images using spatially displaced sampling with semantic data
US8886701B1 (en) 2002-07-15 2014-11-11 Hewlett-Packard Development Company, L.P. Network based software agent to allow dynamic resource access
US20040057078A1 (en) * 2002-09-20 2004-03-25 Coffin Roderick Franklin Method and system for printing
US8582139B2 (en) * 2002-11-19 2013-11-12 Hewlett-Packard Development Company, L.P. Driver upgrading
US7251047B2 (en) * 2003-01-31 2007-07-31 Hewlett-Packard Development Company, L.P. Virtual media tray
US20060017955A1 (en) * 2003-03-31 2006-01-26 Sharp Laboratories Of America, Inc. Selective graphic instance rendering
US7508532B2 (en) * 2003-05-20 2009-03-24 Microsoft Corporation Method and system for sandboxing printer drivers
US20050012951A1 (en) * 2003-07-18 2005-01-20 Madril Robert J. Printer driver management
JP4006392B2 (ja) * 2003-12-03 2007-11-14 キヤノン株式会社 情報処理装置、及び、制御プログラム
US20050225789A1 (en) * 2003-12-09 2005-10-13 Sharp Laboratories Of America, Inc. Print subsystem despooling backplane
US20050157321A1 (en) * 2004-01-20 2005-07-21 Alacar Arthur E. Printer driver plug-in module management system
US20060132835A1 (en) * 2004-12-17 2006-06-22 Prasad Nagaraja Application interface for device driver settings
KR20060086997A (ko) * 2005-01-27 2006-08-02 삼성전자주식회사 컨텐츠 재생을 위한 장치간의 자동 인터페이스 방법 및장치와 그 방법을 수행하기 위한 프로그램이 저장된 기록매체
US7266320B2 (en) * 2005-09-07 2007-09-04 Xerox Corporation Automated duplex printing of heavyweight sheets in special simplex mode
JP4651112B2 (ja) * 2006-03-17 2011-03-16 キヤノン株式会社 情報処理装置及びその制御方法とプログラム
US20070268510A1 (en) * 2006-05-19 2007-11-22 Dilinur Wushour Service dialog system supporting user reporting of printing errors
US20090323099A1 (en) * 2008-06-27 2009-12-31 Konica Minolta Systems Laboratory, Inc. Printing method and printer driver providing user interface for generating output files
US8559036B1 (en) 2010-03-26 2013-10-15 Open Invention Networks, Llc Systems and methods for managing the execution of print jobs
US9552317B2 (en) 2012-10-19 2017-01-24 Fairchild Semiconductor Corporation Apparatus and method for operating and switching a single conductor interface
DE102016007170A1 (de) * 2016-06-13 2017-12-14 Bomag Gmbh Gummiradwalze
CN109799963B (zh) * 2019-01-24 2022-06-07 南京沁恒微电子股份有限公司 微型打印机点阵指令解析方法
WO2021225594A1 (en) * 2020-05-07 2021-11-11 Hewlett-Packard Development Company, L.P. Imaging device driver modification

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3874493A (en) * 1972-11-06 1975-04-01 Texas Instruments Inc Electronic page printer
US4452136A (en) * 1979-10-19 1984-06-05 International Business Machines Corporation Printer subsystem with dual cooperating microprocessors
US5333246A (en) * 1990-04-05 1994-07-26 Seiko Epson Corporation Page-description language interpreter for a parallel-processing system
US5414812A (en) * 1992-03-27 1995-05-09 International Business Machines Corporation System for using object-oriented hierarchical representation to implement a configuration database for a layered computer network communications subsystem
US6667812B1 (en) * 1992-06-19 2003-12-23 Canon Kabushiki Kaisha Information processing apparatus with device control language based program selection
US5625757A (en) * 1993-12-24 1997-04-29 Hitachi, Ltd. Printing system
JPH07295911A (ja) * 1994-04-20 1995-11-10 Canon Inc データ処理装置およびネットワークシステム
US5602974A (en) * 1994-10-05 1997-02-11 Microsoft Corporation Device independent spooling in a print architecture
US5692111A (en) * 1994-10-05 1997-11-25 Microsoft Corporation Automatic installation of printers in a distributed environment

Also Published As

Publication number Publication date
DE69727906D1 (de) 2004-04-08
EP0864964B1 (de) 2004-03-03
JPH10320343A (ja) 1998-12-04
EP0864964A2 (de) 1998-09-16
EP0864964A3 (de) 2000-05-24
US5982996A (en) 1999-11-09

Similar Documents

Publication Publication Date Title
DE69727906T2 (de) Geschalteter Druckertreiber in Windows-Betriebssystem
DE10027222B4 (de) Verfahren und zentrales Drucksystem zum Verarbeiten eines Druckauftrags in einem Netzwerk unter Verwendung von ausgewählten Druckerattributen
DE69834074T2 (de) Drucker, der einen Netzwerkrechner beinhaltet und Rechnernetzwerk-System, das diesen verwendet
EP0574224B1 (de) Vorrichtung und Methode für das Aufgliedern einer Arbeitanweisung in einem Duckersystem
DE69637113T2 (de) Anpassbare grafische Anwenderschnittstelle für ein Netzwerkperipheriegerät
CN101059754B (zh) Java打印机
DE69725778T2 (de) Druckerkommunikationssystem und -verfahren
US5987226A (en) Printing system and method
EP1213644A2 (de) Drucksystem und Verfahren zur Individualisierung eines Druckauftrags
DE69835936T2 (de) Bilddrucksystem sowie hierin enthaltenes aufgeteiltes Druckverfahren
DE69631720T2 (de) Verfahren und Vorrichtung zum Drucken von Mehrfachkopien
WO1992015967A1 (en) Applying traps to a printed page specified in a page description language format
DE10045133C2 (de) Wiederverwendbares computerimplementiertes Auftrags-Editier und Liefer-Verfahren
EP1388042B1 (de) Verfahren, gerätesystem und computerprogrammsystem zum visuellen überprüfen eines druckdatenstroms
DE102019008097A1 (de) Steuerverfahren und computerprogramm
DE10212634A1 (de) Seitenbeschreibungssprache, die für ein direktes Drucken von Mehr-Datei-Formaten ausgelegt ist
JPH11134148A (ja) 計算機システム
JP2002328795A (ja) 印刷用共通フォーマットデータ一括作成システム及び記録媒体
DE10205765A1 (de) Dokumentenverteilungssystem und Verfahren mit einer verdichteten Dokumentenserviceverwaltung
DE69634653T2 (de) Abbildungsausgabegerät und entspechendes Steuerverfahren
US5825989A (en) System for diagnosing a source of malfunction resulting from the execution of a print job in a network printing system
DE10105953A1 (de) Direktes Drucken von verkapseltem PDF
US20130050750A1 (en) Print data processing method, print data processing apparatus, and storage medium for processing print data according to print setting information in the print data
DE69333212T2 (de) Datenverarbeitungs- und Ausgabegerät
CA2372184A1 (en) Method, system and storage medium for document processing

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8339 Ceased/non-payment of the annual fee