DE69326640T2 - System und Verfahren zur Schaltung der Betriebsart eines Druckers - Google Patents
System und Verfahren zur Schaltung der Betriebsart eines DruckersInfo
- Publication number
- DE69326640T2 DE69326640T2 DE69326640T DE69326640T DE69326640T2 DE 69326640 T2 DE69326640 T2 DE 69326640T2 DE 69326640 T DE69326640 T DE 69326640T DE 69326640 T DE69326640 T DE 69326640T DE 69326640 T2 DE69326640 T2 DE 69326640T2
- Authority
- DE
- Germany
- Prior art keywords
- printer
- memory
- resource
- mode
- initial
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 230000015654 memory Effects 0.000 claims abstract description 146
- 238000007639 printing Methods 0.000 claims description 79
- 230000008859 change Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 5
- 230000006835 compression Effects 0.000 claims description 5
- 230000004913 activation Effects 0.000 claims 9
- 230000003213 activating effect Effects 0.000 claims 6
- 230000008569 process Effects 0.000 description 58
- 238000012545 processing Methods 0.000 description 35
- 108091008143 L ribosomal proteins Proteins 0.000 description 31
- 230000006870 function Effects 0.000 description 27
- 230000007175 bidirectional communication Effects 0.000 description 25
- 230000006854 communication Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 23
- 230000007246 mechanism Effects 0.000 description 18
- 238000013459 approach Methods 0.000 description 14
- 238000012546 transfer Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000011084 recovery Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 238000009877 rendering Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 239000006227 byproduct Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007641 inkjet printing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007648 laser printing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000859 sublimation Methods 0.000 description 1
- 230000008022 sublimation Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1229—Printer resources management or printer maintenance, e.g. device status, power levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1296—Printer job scheduling or printer resource handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1822—Analysing the received data before processing
- G06K15/1823—Analysing the received data before processing for evaluating the resources needed, e.g. rasterizing time, ink, paper stock
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1859—Generation of the printable image characterized by its workflow involving data processing distributed amongst different data processing apparatus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1861—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1861—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
- G06K15/1865—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time by compressing the rasterized print data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/40—Details not directly involved in printing, e.g. machine management, management of the arrangement as a whole or of its constitutive parts
- G06K15/4005—Sharing resources or data with other data processing systems; Preparing such data
- G06K15/402—Sharing data concerning the arrangement's configuration or current state
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3442—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0005—Accepting output data; Preparing data for the controlling system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0062—Handling the output data combining generic and host data, e.g. filling a raster
- G06K2215/0065—Page or partial page composition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
Description
- Die vorliegende Erfindung betrifft ein System und ein Verfahren zum Drucken mit Computer- Systemen.
- Computersysteme sind sehr nützlich zum Zusammenstellen und Verarbeiten von großen Datenmengen. Moderne Computersysteme umfassen häufig graphische Fähigkeiten, welche das Anzeigen und Drucken von Graphikbildern erlauben. Das Drucken einer Seite mit Text und/oder Graphikbildern erfordert die Umwandlung der Daten von dem auf einem Hostcomputer verwendeten Format zu einem durch den speziellen ausgewählten Drucker verwendeten Format. Typischerweise werden die Computerdaten in eine Bitmapdatendatei übersetzt, in welcher jedes Bit einen Punkt auf der gedruckten Seite wiedergibt. Die Bitmap wird gewöhnlich innerhalb des Hostcomputers erzeugt und in einem komprimierten Datenformat zum Drucker übertragen. Die komprimierte Bitmap wird im Drucker dekomprimiert und zu einem Druckmechanismus übertragen, welcher den Teil des Druckers ist, der die Papierbewegung, den Toner und das mechanische Antriebssystem zum Bewegen des Papiers steuert und die elektronische Schaltung umfaßt, welche den Druckprozeß steuert. Der Druckmechanismus empfängt die Bitmapdaten und wandelt sie zu entsprechenden Spannungen um, um ein gedrucktes Bild zu erzeugen.
- Die gedruckte Seite setzt sich aus einzelnen Punkten zusammen, die als Pixel bezeichnet werden. Auf einem typischen Laserdrücker können 300, 600 oder mehr Pixel pro Zoll vorgesehen werden. Jedes Pixel wird gewöhnlich durch ein einziges Datenbit im Druckerspeicher wiedergegeben. Wenn der Laserdruckmechanismus eine Zeile scannt, dann werden die Datenbits für diese Zeile gelesen, wobei der Laserstrahl in Abhängigkeit vom logischen Pegel des Datenbits, das in dieser Speicherstelle gespeichert ist, an- oder ausgeschaltet wird. Bei einer Auflösung von 300 Pixeln pro Zoll, erfordert ein Drucker ungefähr ein Megabyte Speicherplatz, um die Bitmapdatendatei für eine ganze Seite zu speichern. Einige Laserdrucker enthalten große Speicher und werden in einem Seitenmodus betrieben, was bedeutet, daß der Drucker Daten in Bitmapform für eine ganze Seite speichern kann. Wegen des zum Speichern von Daten in Bitmapform für eine ganze Seite erforderlichen großen Speicherplatzes, verwenden einige Drucker einen Bandmodus, um den erforderlichen Spei cherplatz zu reduzieren. Ein Drucker mit Bandmodus-Fähigkeiten unterteilt die gedruckte Seite in eine Anzahl von horizontalen Segmenten, die als Bänder bezeichnet werden. Der Drucker nimmt die Bitmapdaten für jeweils nur ein Band an, um die Anforderungen an den Speicher zu reduzieren. Wenn der Drucker die Daten für das erste Band verarbeitet hat, kann er Daten für das zweite Band annehmen usw. Wenn die gedruckte Seite zum Beispiel in vier Bänder unterteilt wird, dann werden die Speicheranforderungen um einen Faktor von vier reduziert, weil der Drucker nur die Bitmapdaten für ein Viertel der Seite speichern muß.
- Beim Entwickeln von Computersystemen werden zwei wichtige Ziele angestrebt. Das erste Ziel besteht in der Geräteunabhängigkeit. Um den Drucker unabhängig von den Systembeschränkungen eines bestimmten Hostcomputers zu machen, entwickeln Hersteller und Programmierer Druckertreiber, die möglichst universal eingesetzt werden können. Wenn eine echte Geräteunabhängigkeit gegeben ist, braucht der Hostcomputer über keinerlei Wissen darüber zu verfügen, mit welchem Typ von Drucker er über die Druckerschnittstelle verbunden ist. Der Hostcomputer überträgt typischerweise Daten über eine Hardwareschnittstelle wie etwa einen seriellen I/O-Port oder einen parallelen Drucker-I/O-Port zum Druckersystem. Computer-Drucker-Systeme aus dem Stand der Technik versuchen eine Geräteunabhängigkeit durch das Minimieren des Wissens des Hosts über eine besonderen verbundenen Drucker zu erreichen, wobei statt dessen ein eher abstrakter Datenstrom verwendet wird. Das hat zur Folge, daß die Übertragung und Verarbeitung des Datenstroms häufig auf eine ineffiziente Geschwindigkeit verlangsamt wird, worunter der Durchsatz leidet.
- Zum Beispiel kann ein Hostcomputer einen ersten Zeichensatz herunterladen, der für mehrere Seiten eines Dokuments erforderlich ist. Typischerweise laden Computersysteme aus dem Stand der Technik einen ganzen Zeichensatz auch dann herunter, wenn nur einige wenige Zeichen für eine bestimmte Druckaufgabe erforderlich sind. Der Hostcomputer lädt dann einen ganzen zweiten Zeichensatz herunter, wenn der zweite Zeichensatz (oder ein Teil des zweiten Zeichensatzes) erforderlich ist. Der zweite Zeichensatz kann in den durch den ersten Zeichensatz eingenommenen Speicherplatz geschrieben werden, obwohl Platz innerhalb des Druckerspeichers frei sein kann, um den ersten Zeichensatz für die Verwendung beim Drucken von folgenden Seiten, welche den ersten Zeichensatz erfordern, aufzuheben. Es ist keine Kommunikation zwischen dem Drucker und dem Hostcomputer vorgesehen, um den Hostcomputer über den aktuellen Status der Druckerressourcen zu benachrichtigen.
- Das zweite Ziel besteht in einer optimalen Leistung des Druckprozesses. Laserdrucker reichen von einfachen Standalone-Druckern, die mit einem einzigen Computer verbunden sind und gleichzeitig ein oder zwei Papierseiten verarbeiten, zu hochentwickelten Druckern mit mehreren Papierfächern und komplexen Papierpfaden, die mit einem Computernetz verbunden sind und gleichzeitig viele Seiten für mehrere Benutzer verarbeiten. Computersysteme müssen in der Lage sein, effizient mit einem beliebigen Typ von Drucker betrieben zu werden.
- Leider stehen das erste und das zweite Ziel untereinander in Konflikt. Der Nachteil einer universalen Kompatibilität besteht darin, daß die Computer-Drucker-Systeme häufig extrem langsam bei der Verarbeitung von Daten sind. Weiterhin verfügen Hostcomputer über ein gewisses Wissen über den Drucker, mit dem sie verbunden sind. Weil die gegenwärtigen Computer-Drucker-Systeme versuchen, beide Ziele zu erreichen, erreichen sie ironischerweise keines der beiden Ziele. Der Hostcomputer verfügt über Wissen, mit welchem Typ von Drucker er verbunden ist, und der Ansatz eines "universalen" Druckertreibers resultiert in einem langsamen, ineffizienten System, in welchem der Hostcomputer und der Drucker häufig wertvolle Berechnungszeit nicht für nützliche Aufgaben verwenden, sondern dafür verschwenden, Konflikte wie etwa eine Seitenfehlerbehebung zu lösen, die nicht auftreten dürfen. Zum Beispiel behalten Computer-Drucker-Systeme aus dem Stand der Technik die Bitmapdatendatei für eine ganze Seite, bis die gedruckte Seite den letzten Papierstausensor im Laserdrucker passiert. Wenn ein Papierstau auftritt, sind die Daten noch verfügbar und können schnell neu gedruckt werden. Papierstaus treten jedoch relativ selten im Druckprozeß auf. Wenn der Druckmechanismus mit dem Drucken einer Seite beginnt, dauert es ungefähr zehn Sekunden, bis die Seite den letzten Papierstausensor passiert. Der gesamte Druckprozeß wird beträchtlich verlangsamt, wenn jeweils zehn Sekunden gewartet wird, bis jede Seite den letzten Papierstausensor passiert, und erst dann die Bitmapdatei aus dem Druckerspeicher gelöscht und die nächste Seite verarbeitet wird.
- Die Systeme aus dem Stand der Technik verzögern auch den Einzug von Papier in den Druckmechanismus, bis die ganze Seite beschrieben wurde, weil die Auswahl der Papiergröße zu einem beliebigen Punkt innerhalb der Seitenbeschreibung angegeben werden kann. Zum Beispiel kann der Hostcomputer eine Beschreibung der ganzen Seite übertragen, wobei in der letzten Zeile der Beschreibung die Auswahl einer Briefpapiergröße angegeben ist. Es ist nicht erforderlich den Papiereinzug zu verzögern, wenn der Benutzer aufgefordert wird, die Papiergröße am Beginn der Seitenbeschreibung auszuwählen. Wenige oder keine der Druckaufgaben würden durch diese Anforderung behindert werden. Der Benutzer weiß allgemein, welche Papiergröße und welchen Druckmodus (d. h. einseitig oder doppelseitig) er verwenden möchte, bevor er mit dem Druckprozeß beginnt. Deshalb verschwenden Systeme aus dem Stand der Technik wertvolle Zeit, indem sie eine unnötige Option vorsehen.
- Die gegenwärtig verwendeten Druckersprachen haben sich aus den mit Punktmatrixdruckern verwendeten Druckersprachen entwickelt. Punktmatrixdrucker werden zwar weiterhin verwendet, wobei jedoch immer häufiger Laserdrucker verwendet werden. Dabei versuchen die Druckersprachen die zunehmende Verwendung von Laserdruckern dadurch zu berücksichtigen, daß sie kleine Modifikationen an den für die langsameren Punktmatrixdrucker ausgelegten Druckersprachen vornehmen. Dieser evolutionäre Ansatz nutzt nicht die in Laserdruckern verfügbare potentielle Rechenleistung.
- Die Systemarchitektur von Computer-Drucker-Systemen aus dem Stand der Technik hat sich wenig geändert, obwohl sich die Druckerhardware von einfachen "dummen" Druckern zu hochentwickelten Laserdruckern entwickelt hat, die durch Mikrocomputer gesteuert werden. Das in Fig. 1 gezeigte typische Computer-Laserdrucker-System aus dem Stand der Technik weist eine Einrichtung innerhalb des Druckers auf, die als Parser bezeichnet wird. Der Parser nimmt Datenbytes vom Hostcomputer an und organisiert die Datenbytes zu Tokens. Tokens sind Datenströme, die in einem bedeutungsvollen lexikalischen Kontext assoziiert sind. Zum Beispiel kann ein Datenstrom eine binäre Bitmap sein, die in einem komprimierten Datenformat übertragen wird. Den binären Daten ist gewöhnlich ein Header und ein Trailer hinzugefügt, welche den Parser anweisen, wie er die Daten verarbeiten soll. Der Header- /Trailer werden in ASCII-Bytes übertragen, welche jeweils durch den Parser verarbeitet werden müssen. Der Parser muß jedes ASCII-Datenbyte jeweils einzeln annehmen und verarbeiten. Deshalb ist der Parser ein Flaschenhals für den effizienten Datenfluß in einem Computer-Drucker-System.
- Der Parser verarbeitet jedes vom Drucker empfangene Datenbyte und erzeugt eine Anzeigeliste innerhalb eines Speichers im Drucker. Die Anzeigeliste wird in Übereinstimmung mit der Position des Objektes auf der Seite sortiert. Die Bitmaps in der Anzeigeliste werden gewöhnlich in einem nicht komprimierten Format gespeichert. Andere Objekte wie etwa Text sind relativ kurz. Deshalb erfordert ein einziges einfaches Rechteck entlang der Umfangs der Seite gewöhnlich ein Megabyte Speicherplatz. Ein Imager übersetzt die Anzeigeliste in eine für den Druckmechanismus geeignete Bitmapdatendatei. Die Bitmapdatendatei wird in einem Bildpuffer gespeichert und zum Druckmechanismus übertragen.
- Computer-Drucker-Systeme aus dem Stand der Technik sind weiterhin deswegen ineffizient, weil die Seiten häufig in einer ineffizienten Reihenfolge verarbeitet werden. Wenn der Drucker im doppelseitigen Modus (Drucken auf beiden Seiten des Papiers) betrieben wird, dann erfordert der Papierpfad im Drucker, daß die Seite zwei eines Papiers vor der Seite eins bedruckt wird. Die Computer-Drucker-Systeme aus dem Stand der Technik fordern dagegen, daß die Seite eins eines Papiers vor der Seite zwei verarbeitet wird. Das bedeutet, daß die Seite eins des Papiers vollständig verarbeitet wird und als Bitmapdatendatei im Druckerspeicher gespeichert wird. Dann wird die Seite zwei des Papiers vollständig verarbeitet und zum Druckmechanismus gesendet. Die Philosophie der Systeme aus dem Stand der Technik ist, daß der Benutzer erwartet, daß die Seite eins zuerst verarbeitet wird. Der Benutzer erwartet jedoch tatsächlich, daß die Seiten nach dem vollständigen Drucken des Dokuments in der richtigen Reihenfolge aus dem Drucker ausgegeben werden. Es besteht also kein praktischer Grund dafür, daß der Hostcomputer die Seiten in einer anderen Reihenfolge als der Reihenfolge verarbeitet, in welcher die Seiten tatsächlich durch den Drucker gedruckt werden.
- Wie oben bemerkt, nutzen die Systeme aus dem Stand der Technik nicht die in modernen Laserdruckern verfügbare Rechenleistung. Die dummen Drucker des alten Generation umfaßten wenig mehr als einen Datenpuffer und einen Druckmechanismus. Die Datenverarbeitung wurde ausschließlich durch den Hostcomputer durchgeführt, wobei der Drucker die Punktmatrixdaten dann druckte. Moderne Laserdrucker sind mikroprozessorgesteuert und verfügen über eine Rechenleistung, welche sogar derjenigen des Hostcomputers gleich sein kann. Die Systeme aus dem Stand der Technik neigen dazu, den Drucker als dummen Drucker ohne Fähigkeiten zum Durchführen einer Datenverarbeitung zu behandeln. Das liegt zum Teil daran, daß wie oben beschrieben eine Geräteunabhängigkeit angestrebt wird. Andere Systeme aus dem Stand der Technik übergeben dem Drucker die Verantwortung für praktisch die gesamte Datenverarbeitung. Daraus resultiert, daß die kombinierte Rechenleistung des Hostcomputers und des Druckers nicht effizient genutzt wird, wodurch der gesamte Druckprozeß auf eine ineffiziente Geschwindigkeit verlangsamt wird.
- Einige computergesteuerten Einrichtungen erlauben das Einfügen von neuer Software oder Firmware, um die Charakteristik der Einrichtung zu ändern. Ein Beispiel ist eine Firmwarekassette zum Einstecken in eine Einrichtung wie etwa einen Drucker, um dem Drucker eine neue Funktion oder ein neues Verhalten zu verleihen. Häufig ist es vorteilhaft, die Basisfunktion oder das Basisverhalten der Einrichtung zusätzlich zu der hinzugefügten neuen Funktion oder dem neuen Verhalten aufrechtzuerhalten. Dies erfordert das Wechseln zwischen dem ursprünglichen Betriebsmodus und einem neuen Betriebsmodus.
- Dieses Wechseln zwischen den Betriebsmodi kann auf verschiedene Weise bewerkstelligt werden. Ein Verfahren besteht darin, einfach sowohl die Grundfunktion wie die neue Funktion in die Software einzuschließen. Dadurch kann das Gerät einfach zwischen den Betriebsmodi wechseln, weil sowohl die Grundfunktion wie die neue Funktion in der neuen Software integriert sind. Dieser Ansatz weist mehrere Nachteile auf. Erstens erfordert der Ansatz, daß beide Funktionssätze in dem Softwarepaket enthalten sind. Dadurch werden die Kosten und die Komplexität der Software erhöht. Es ist weiterhin schwierig, die Basisfunktion in der neuen Software genau zu duplizieren. Dadurch werden Kompatibilitätsprobleme verursacht.
- Ein anderer Ansatz zum Wechseln zwischen den Betriebsmodi besteht darin, daß die neue Software deaktiviert und das Gerät auf die Grundfunktion zurückgesetzt wird. Wenn das Gerät die Initialisierungsprozedur abschließt, dann behält die Basisfunktion die Steuerung des Gerätes, weil die neue Funktion deaktiviert wurde. Dieser Ansatz zum Schalten zwischen den Betriebsmodi weist den Nachteil auf, daß ein vollständiges Neustarten des Gerätes erforderlich ist. Das Neustarten und Initialisieren eines Gerätes kann ein langsamer Prozeß sein.
- EP-A-0 480 593 gibt eine Technik für die gemeinsame Nutzung eines Druckers durch mehrere Geräte an, etwa für zwei Computer, die einen gemeinsamen Drucker nutzen (Fig. 1), oder für einen Computer und ein Faxgerät, die einen gemeinsamen Drucker nutzen (Fig. 2). Die in dieser Veröffentlichung beschriebene Technik nutzt die Tatsache, daß PCL-Drucker den Zustand des Druckers vor dem Durchführen eines angeforderten Makros speichern (Seite 4, Zeilen 16-17). In der Gomputer/Fax-Ausführungsform gibt die Technik Faxdaten in ein Makro und gibt dieses an den Drucker. In Antwort darauf, speichert der Drucker den Druckerzustand und führt das Makro aus.
- Nach der Ausführung des Makros wird der Zustand des Druckers wiederhergestellt (Seite 4, Zeilen 16-20). Die zitierte Bezugnahme schlägt nicht vor, den gesamten Initialzustand eines Gerätes unmittelbar nach dem Starten oder Neustarten zu erfassen, so daß der Initialzustand des Gerätes erfaßt und für die spätere Verwendung im Speicher gespeichert wird, wenn von einem zweiten Betriebsmodus zurück zum ersten Betriebsmodus geschaltet wird. Die zitierte Bezugnahme erfaßt eine begrenzte Datenmenge der aktuellen Daten, wie bei der Verarbeitung einer Unterbrechung und dem Wiederherstellen der Datenwerte nach Abschluß der Unterbrechung üblich ist.
- EP-A-0 452 115 betrifft ein Gerät wie etwa einen Drucker, das zwei separate Steuerprogramme umfaßt. Diese Programme können zum Beispiel in der Form von Plugin-Programmkassetten gespeichert sein. Das Gerät erlaubt das Wechseln zwischen den Programmkassetten, indem indirekt eine Adresse berechnet wird, welche der ausgewählten Programmkassette entspricht.
- Es ist eine Aufgabe der vorliegenden Erfindung, ein System und ein Verfahren anzugeben, welche ein schnelleres Schalten zwischen den Betriebszuständen erlauben.
- Diese Aufgabe wird durch den Gegenstand der Ansprüche 1 und 14 gelöst. Bevorzugte Ausführungsformen der vorliegenden Erfindung sind Gegenstand der unabhängigen Ansprüche.
- Fig. 1 stellt ein typisches Computer-Laserdrucker-System aus dem Stand der Technik dar.
- Fig. 2 ist ein Funktionsblockdiagramm des Computer-Drucker-Systems der vorliegenden Erfindung.
- Fig. 3A stellt eine Möglichkeit dar, in welcher ein unbegrenztes Dokument wiedergegeben werden kann.
- Fig. 3B stellt eine Möglichkeit dar, in welcher das unbegrenzte Dokument von Fig. 3A begrenzt wiedergegeben werden kann.
- Fig. 3C stellt einen alternativen Aufbau des begrenzten Dokuments von Fig. 3B dar.
- Fig. 4 stellt die Komprimierung des Druckerspeichers unter Verwendung der vorliegenden Erfindung dar.
- Fig. 5 ist ein Zustandsdiagramm, welches die Betriebsmodi der vorliegenden Erfindung darstellt.
- Die vorliegende Erfindung gibt einen revolutionären Ansatz für die Interaktion zwischen Computer und Drucker an. Dabei erlaubt das kooperative Zusammenarbeiten des Hostcom puters und des Druckers eine dramatische Erhöhung der Druckgeschwindigkeit des Druckprozesses sowie eine Herabsetzung der Rückgabe-an-Anwendung-Zeitdauer. Die Rückgabe-an-Anwendung-Zeitdauer ist die Zeitdauer, welche für den Hostcomputer erforderlich ist, um einen Druckauftrag zu verarbeiten und an das Anwendungsprogramm zurückzugeben, welches das Drucken initialisiert hat. Viele Computer-Drucker-Systeme aus dem Stand der Technik sind für das Ausführen eines Computercodes und nicht für das Drucken von Seiten ausgebildet. Das heißt, daß der Drucker einen Code empfängt, übersetzt und ausführt, wobei die Seite als ein Nebenprodukt der Codeausführung gedruckt wird. Viele Systeme aus dem Stand der Technik führen eine große Codemenge aus, um eine einzelne Seite zu drucken.
- Wie oben beschrieben, sehen die Systeme aus dem Stand der Technik keinen effizienten Dialog zwischen dem Hostcomputer und dem Drucker vor. Die hochentwickelte Rechenleistung des modernen Druckers wird also nicht genutzt. Im Gegensatz dazu nutzt die vorliegende Erfindung die Rechenleistung im Drucker und ist dafür ausgebildet, die freie Kommunikation zwischen dem Hostcomputer und dem Drucker zu gestatten. Die vorliegende Erfindung betrachtet den Hostcomputer und den Drucker als zwei Teile desselben "Systems", welche miteinander kooperieren können, um Dokumente effizienter zu drucken. In dem oben angeführten Beispiel, in dem zwei Zeichensätze erforderlich sind, um ein Dokument zu drucken, weiß der Hostcomputer der vorliegenden Erfindung, daß der Drucker den ersten Zeichensatz behalten könnte, und erhält so den ersten Zeichensatz im Druckerspeicher. Weiterhin betrachtet der Hostcomputer aus dem Stand der Technik typischerweise nur die gegenwärtig verarbeitete Seite und schaut nicht voraus, um zu bestimmen, ob der erste Zeichensatz später gebraucht wird und im Druckerspeicher behalten werden sollte. Deshalb muß der Hostcomputer aus dem Stand der Technik wiederholt den ersten Zeichensatz herunterladen, wenn dieser für das Drucken von mehreren Seiten erforderlich ist (wobei der zweite Zeichensatz wieder gelöscht werden kann). Es ist zu beachten, daß einige Systeme aus dem Stand der Technik gewisse Fähigkeiten zum Vorausschauen haben, wobei diese jedoch sehr begrenzt sind und den Speicher nicht effizient nutzen. Im Gegensatz dazu schaut die vorliegende Erfindung im Druckauftrag voraus, um zu bestimmen, ob der erste Zeichensatz oder eine andere Ressource im Druckerspeicher behalten werden sollten, und um zu bestimmen, wann der erste Zeichensatz nicht mehr erforderlich ist und aus dem Druckerspeicher freigegeben oder gelöscht werden kann. Weiterhin erstellt das System der vorliegenden Erfindung Teilsätze von Zeichensätzen, wenn nur ein Teil eines Zeichensatzes erforderlich ist, wodurch die Verwendung von verfügbaren Ressourcen maximiert wird. Auf diese Weise sieht die vorliegende Erfindung einen an Ressourcen orientierten Ansatz für das Drucken vor.
- Die vorliegende Beschreibung gibt Details für den Betrieb mit einem Laserdrucker an, wobei das System und das Verfahren der vorliegenden Erfindung jedoch mit einer beliebigen Markierungstechnologie wie dem Laser-, Thermo-, Anschlag-, Sublimations- Tintenstrahldrucken oder ähnlichem angewendet werden kann.
- Eine Ressource ist alles in einem Computer-Drucker-System, das Speicher einnimmt oder zum Drucken eines Dokuments erforderlich ist. Das Dokument wird vollständig unter Verwendung von Ressourcen beschrieben. Der Begriff Ressourcen wird weiter unten ausführlicher erläutert. In Übereinstimmung mit den Prinzipien der vorliegenden Erfindung besteht das Ziel darin, das Dokument schnell zu drucken und dem Hostcomputer das Zurückgeben an das Anwendungsprogramm innerhalb einer minimalen Zeitdauer zu erlauben. Dies wird bewerkstelligt, indem eine offene Kommunikation zwischen dem Hostcomputer und dem Drucker ermöglicht wird, so daß die Anforderungen aller Teile des Systems und die verfügbaren Ressourcen zum Erledigen der Aufgabe allen anderen Teilen des Systems bekannt sind. Der gesamte Druckprozeß ist zum Teil deswegen schneller als bei Computer-Drucker- Systemen aus dem Stand der Technik, weil die Rechenleistung und der verfügbare Speicher des Hostcomputers und des Druckers miteinbezogen werden.
- Die vorliegende Erfindung kann mit einem Computer-Drucker-System verwendet werden, das Kommunikationsfähigkeiten in nur einer Richtung aufweist und eine Statusleitung vom Drucker zum Hostcomputer verwendet, um anzugeben, daß der Drucker beschäftigt ist. Andere Computer oder Drucker können eine bidirektionale Kommunikation aufweisen, können aber keine volle bidirektionale Kommunikation mit einer durch die vorliegende Erfindung angeforderten Datenrate unterstützen. Die vorliegende Erfindung versucht eine bidirektionale Kommunikation herzustellen, kehrt aber zu einer unidirektionalen Kommunikation zurück, wenn entweder der Computer oder der Drucker keine bidirektionale Kommunikation unterstützen kann, weil die Latenzzeit so lang ist, daß er eine volle bidirektionale Kommunikation nicht effizient unterstützen kann. Viele Computer-Drucker-Systeme sehen jedoch eine volle bidirektionale Kommunikation zwischen dem Hostcomputer und dem Drucker vor. Wenn ein Computer-Drucker-System bidirektionale Fähigkeiten vorsieht, dann sieht die vorliegende Erfindung eine verbesserte Fähigkeit zum Wiederherstellen von Fehlern und eine Fähigkeit zum Hin- und Herschieben von Funktionen zwischen dem Drucker und dem Hostcomputer in Abhängigkeit von der besonderen Druckaufgabe vor. Diese "Lastbalance" erlaubt eine weitere Erhöhung der Druckgeschwindigkeit, weil die Druckaufgabe durch den Teil des Computer-Drucker-Systems gehandhabt werden kann, der die Aufgabe am effizientesten durchführen kann.
- Wie zuvor erläutert, ist eine Ressource praktisch alles, das zum Drucken eines Dokumentes erforderlich ist. Ressourcen umfassen also Zeichensätze, Glyphensätze, Zeigetabellen, Brushes, benutzerdefinierte Graphikbilder sowie die Daten, welche die Seite selbst beschreiben. Ein "Zeichensatz" ist ein Satz von ASCII-Zeichen, der gewöhnlich als eine Bitmap gespeichert wird und eine bestimmte Schriftart wie Times-Roman, Helvetica, Courier oder ähnliches wiedergibt. Einige Drucker weisen in Nur-Lese-Speicher-(ROM)-ICs im Drucker gespeicherte Zeichensätze auf, während andere Computer-Drucker-Systeme "weiche Zeichensätze" verwenden, die als Bitmapdatendateien im Hostcomputer gespeichert sind und bei Bedarf zum Speicher mit wahlfreiem Zugriff (RAM) des Druckers heruntergeladen werden. Weiche Zeichensätze erlauben eine größere Flexibilität beim Druckern, weil die Zeichensätze allgemein auf einer Platte im Hostcomputer vorgesehen sind und nicht permanent Speicherplatz im Drucker einnehmen. Wieder andere Computer-Drucker-Systeme verwenden eine Zeichensatz-Skalierungstechnologie wie etwa TrueType-Zeichensätze, bei welchen die Zeichensätze nicht als eine Bitmapdatendatei gespeichert sind. Statt dessen werden die Zeichensätze durch einen Satz von Gleichungen beschrieben, welche die Linien und Kurven der Zeichen für jeden Zeichentyp definieren. Der Hostcomputer oder der Drucker verwenden diese Gleichungen, um ein bestimmtes Zeichen mit einer bestimmten Punktgröße zu erstellen. Der Vorteil der Zeichensatz-Skalierungstechnologie besteht darin, daß ein einziger Satz von Gleichungen verwendet werden kann, um einen Zeichentyp für alle Punktgrößen zu beschreiben, während als Bitmaps gespeicherte Zeichensätze nur für eine einzige Punktgröße verwendet werden können. Times-Roman 4, Times-Roman 6, Times-Roman 8 und Times-Roman 10 werden zum Beispiel als vier separate Zeichensätze betrachtet, die jeweils eine eigene Bitmapdatendatei für die Beschreibung des besonderen Zeichensatzes erfordern. Im Gegensatz dazu weist die Zeichensatz-Skalierungstechnologie einen einzigen Satz von Gleichungen auf, der die Times-Roman-Zeichen für alle Punktgrößen beschreibt. Der Hostcomputer oder der Drucker wendet die Gleichungen an und skaliert die Gleichungen für die ausgewählte Punktgröße, so daß nicht mehrere Sätze von Bitmapdatendateien erforderlich sind. Die vorliegende Erfindung kann mit ROM-gespeicherten weichen Zeichensätzen, weichen Zeichensätzen oder mit der Zeichensatz-Skalierungstechnologie angewendet werden.
- Ein "Glyphensatz" ist einem weichen Zeichensatz darin ähnlich, daß er vordefinierte Zeichen umfaßt, die im Hostcomputer gespeichert sind. Er unterscheidet sich jedoch von einem Zeichensatz dadurch, daß die vordefinierten Zeichen nicht notwendigerweise ein vollständiger Zeichensatz sind und benutzerdefinierte Zeichen, graphische Symbole oder Kombinationen von unterschiedlichen Schriftarten aus verschiedenen Zeichensätzen enthalten können. Ein Glyphensatz kann zum Beispiel eine Gleichung sein, die Zahlen und mathematische Symbole aus mehreren unterschiedlichen Zeichensätzen sowie einige benutzerdefinierte graphische Symbole enthält. Ein bestimmter Glyphensatz kann groß genug sein, um einen vollständigen Zeichensatz zu enthalten, kann jedoch auch nur ein einziges Zeichen enthalten. Ein anderes Beispiel für einen Glyphensatz ist ein Formular wie etwa eine Steuererklärung oder ein Dateneintragsformular, das innerhalb eines Dokuments verwendet werden kann. Die vorliegende Erfindung erstellt das Formular und speichert es als einen Glyphensatz. Wenn das Formular wieder in einem Dokument verwendet wird, dann ist das gesamte Formular als ein Glyphensatz verfügbar.
- Einige Systeme aus dem Stand der Technik verwenden Glyphensätze in einer begrenzten Weise. Hostcomputer aus dem Stand der Technik können einen Teilsatz eines Zeichensatzes für das Herunterladen zum Drucker zusammenstellen. Wenn ein neues Zeichen erforderlich ist, kann der Hostcomputer aus dem Stand der Technik inkrementell nur das erforderliche neue Zeichen herunterladen und es zu dem bereits heruntergeladenen Glyphensatz hinzufügen. Die Systeme aus dem Stand der Technik verwalten die Glypensatz-Ressource jedoch nicht aktiv. Die Systeme aus dem Stand der Technik löschen allgemein die Glyphensätze zu Beginn einer neuen Seite, ohne den späteren Bedarf für den Glyphensatz zur berücksichtigen. Dadurch wird der Hostcomputer aus dem Stand der Technik dazu gezwungen, neue Glyphensätze zu erstellen, wenn diese auf der neuen Seite erforderlich sind. Der neu erstellte Glyphensatz kann nicht mit der vorhergehenden Glyphensatz identisch sind, und das periodische Neuerstellen und Herunterladen der Glyphensätze verbraucht zusätzliche Zeit im Druckprozeß. Außerdem erfordern die Systeme aus dem Stand der Technik eine große Datenmenge in Begleitung zu den Glyphensätzen, um anzugeben, welche Zeichen in dem Glyphensatz vorhanden sind.
- Im Gegensatz dazu erstellt die vorliegende Erfindung einen Glyphensatz aus den verfügbaren Ressourcen und verwaltet den Glyphensatz aktiv als eine einzelne Ressource. Der in der vorliegenden Erfindung verwendete Begriff "Glyphensatz" bezeichnet eine Ressource, die Teile von anderen Ressourcen wie etwa Zeichensätzen umfaßt. Der Einfachheit halber werden Glyphensätze als Ressourcen bezeichnet. Die vorliegende Erfindung stellt den Gly phensatz zusammen, bis dieser eine vorbestimmte Größe erreicht, aber kann den Glyphensatz nicht unmittelbar zum Drucker übertragen. Der zusammengestellte Glyphensatz wird als eine Einheit behandelt, die bei Bedarf zum Drucker übertragen wird und als Einheit aus dem Drucker gelöscht wird, wenn sie nicht mehr benötigt wird. Der Glyphensatz wird aktiv in Abhängigkeit von der späteren Verwendung des Glyphensatzes und dem verfügbaren Platz im Druckerressourcenspeicher verwaltet. Der Druckerspeicher wird also nicht wie in dem Ansatz aus dem Stand der Technik zu Beginn jeder neuen Seite gelöscht. Der Glyphensatz der vorliegenden Erfindung umfaßt auch einen Header als "Inhaltsangabe", welche die im Glyphensatz vorhandenen Zeichen angibt, wobei der Header jedoch viel kleiner ist als die Header im Stand der Technik, weil der Glyphensatz sich nach der Erstellung nicht mehr ändert.
- Eine "Zeigetabelle" ist eine Tabelle aus Koordinatenpunkten zum Definieren eines Graphikobjekts. Ein Graphikobjekt wie ein Rechteck kann zum Beispiel durch die Koordinaten der vier Ecken definiert werden. Entsprechend wird eine Bezierkurve durch vier Steuerpunkte definiert. Die Punktetabelle speichert die Koordinaten der Steuerpunkte. Um beim Rendern einer Bezierkurve eine glattere Kurve auf dem Laserdrucker zu drucken, wird der Kurven- Renderingprozeß häufig unter Verwendung einer hohen Auflösung durchgeführt, welche die tatsächliche Auslösung der Druckers übersteigt. Die zum Rendern der Kurve berechneten Linien können gemeinsam verwendet werden, wenn das Objekt tatsächlich auf dem Drucker gedruckt wird, um ein glatter aussehendes Bild zu erzeugen. Wenn die Berechnungen mit höherer Auflösung durchgeführt werden, kann die Zeigetabelle die Koordinaten für alle Liniensegmente enthalten, die zum Rendern der Bezierkurve verwendet werden. Die Punktetabelle kann auch durch den Benutzer in einem Anwendungsprogramm unter Verwendung einer Maus oder einer Zeigeeinrichtung zum Zeichnen, durch das Eingeben von Koordinaten oder unter Verwendung eines Digitalisierungsblocks oder ähnlichem erstellt werden.
- Ein "Brush" ist ein graphisches Muster, das typischerweise zum Füllen des Inneren eines Graphikobjektes wie etwa eines Rechtecks oder eines Kreises verwendet wird. Ein Brush ist das kleinste sich wiederholende Muster, das wiederholt wird, um das gesamte Innere des Graphikobjektes zu füllen. Wenn zum Beispiel ein Objekt wie ein Kreis erstellt wird, dann weist die Zeichnungsprimitive den Drucker an, den Kreis zu erzeugen und das Innere mit einem bestimmten graphischen Muster zu füllen. Ein Kreuzschraffurmuster zum Beispiel kann eine Reihe von kleinen "x"-Formen umfassen, die wiederholt werden, um das gesamte Objekt zu füllen. Das System der vorliegenden Erfindung speichert gewöhnlich verwendete Brushes im Drucker und erstellt verschiedene zusätzliche Brushes mit dem Hostcomputer.
- Auch die Daten, welche die gedruckte Seite beschreiben, werden als Ressource betrachtet. Der Hostcomputer enthält eine Beschreibung der Seite, die mit Hilfe eines Anwendungsprogramms wie etwa einer Textverarbeitung, einer Tabellenkalkulation, einer Datenbank oder ähnlichem erzeugt wurde. Die vorliegende Erfindung übersetzt die Seitenbeschreibung in einen Satz von Zeichnungsprimitiven und setzt die Zeichnungsprimitiven mit anderen zum Drucken des Dokuments erforderlichen Ressourcen in Beziehung. Die Details des Übersetzungsprozesses werden im folgenden beschrieben.
- Wie in dem Funktionsblockdiagramm von Fig. 2 gezeigt, wird die vorliegende Erfindung hier als in einem Computer-Drucker-System 200 ausgeführt erläutert. Wie im Stand der Technik führt ein Hostcomputer 202 ein Anwendungsprogramm 204 aus, welches ein zu druckendes Dokument umfaßt. Wie zuvor beschrieben, sind Ressourcen in verschiedenen Bereichen des Hostcomputers 202, etwa im Hostcomputerspeicher 212 gespeichert, welcher einen Festplattenspeicher umfassen kann. Die verschiedenen Speicherbereiche werden allgemein als Ressourcenspeicherbereich 206 bezeichnet. Der Hostcomputer 202 enthält praktisch alle Ressourcen, welche zum Drucken von Dokumenten zur Verfügung stehen. Einige in ROMs gespeicherte Zeichensätze und gewöhnlich verwendete Ressourcen können während des Druckauftrags im Drucker gespeichert werden. Ein Ressourcenassembler 208 untersucht das Dokument, um zu bestimmen, welche Ressourcen zum Drucken des Dokuments erforderlich sind. Wenn der Ressourcenassembler 208 das Dokument untersucht, wählt er die Ressourcen aus, die zum Drucken des Dokuments erforderlich sind, und übersetzt das Dokument in einen Satz von Zeichnungsprimitiven, welche die gedruckten Seiten beschreiben. Die ausgewählten Ressourcen und Zeichnungsprimitiven werden in einem Hostressourcenspeicher 210 gespeichert. Der Hostressourcenspeicher 210 kann ein Teil des Hostcomputerspeichers 212 oder eine andere geeignete Speicherlokation sein. Der Ressourcenassembler 208 definiert Abhängigkeiten zwischen einem Dokument und einem Teilsatz der Ressourcen, die zum Drucken des besonderen Dokuments erforderlich sind. Der Ressourcenassembler 208 kommuniziert die Abhängigkeitsinformation zu einem Drucker 218, der mit dem Hostcomputer 202 verbunden ist. Der Ressourcenassembler 208 kann auch Information vom Drucker 218 zur effizientesten Sequenz zum Drucken des Dokuments sowie Statusinformation zu den aktuell im Drucker 218 vorhandenen Ressourcen empfangen.
- Der Drucker 218 enthält einen Druckerressourcenspeicher 220, der die Kapazität zum Speichern einer begrenzten Anzahl von vom Hostressourcenspeicher 210 heruntergeladenen Ressourcen aufweist. Der Druckerressourcenspeicher 220 kann ein Teil eines Drucker speichers 222 oder einer anderen geeigneten Speicherlokation sein. Ein Ressourcenlader 214, der in Fig. 2 als ein Teil des Hostcomputers 202 gezeigt ist, verwendet die durch den Ressourcenassembler 208 erzeugten Abhängigkeiten, um die Reihenfolge zu bestimmen, in welcher die Ressourcen einschließlich der Zeichnungsprimitiven zum Druckerressourcenspeicher 220 übertragen werden. Der Ressourcenlader 214 bestimmt auch die Reihenfolge, in welcher die Ressourcen aus dem Druckerressourcenspeicher 220 freigegeben werden können oder müssen, um Platz für neue Ressourcen zu machen. Die durch den Ressourcenlader 214 übertragenen Zeichnungsprimitiven weisen den Drucker 218 an, bestimmte Ressourcen zum Erzeugen eines graphischen Symbols, zum Zeichnen eines graphischen Objekts, zum Drucken eines alphanumerischen Zeichens oder ähnlichem zu verwenden.
- Ein Ressourcenplaner 216, der im Drucker 218 gezeigt ist, kann alternativ dazu im Hostcomputer 202 angeordnet sein. Der Ressourcenplaner 216 steuert den Zeitablauf des Druckerbetriebs und den tatsächlichen Zeitablauf der Ressourcenübertragung. Der Ressourcenplaner 216 steuert auch den Zeitablauf des Löschens von Ressourcen aus dem Druckerressourcenspeicher 220 und den Zeitablauf der Anforderungen zum Übertragen von bestimmten Ressourcen vom Hostressourcenspeicher 210. Wenn alle für eine bestimmte Seite des Dokuments erforderlichen Ressourcen im Druckerressourcenspeicher 220 sind, dann erzeugt der Ressourcenplaner 216 ein Ausführungssignal, um anzugeben, daß der Teilsatz der erforderlichen Ressourcen zum Drucken der aktuellen Seite zur Verfügung steht. Ein Ressourcenausführer 224 folgt bei Empfang des Ausführungssignals vom Ressourcenplaner 216 den Befehlen der Zeichnungsprimitiven und verwendet die Ressourcen vom Druckerressourcenspeicher 220, um eine Bitmapdatei der aktuell verarbeiteten Dokumentseite zu erzeugen. Der Ressourcenausführer 224 überträgt die Bitmapdatendatei zu einem Druckmechanismus 226, der wiederum das Drucken der Dokumentseite veranlaßt.
- Es ist zu beachten, daß die physikalische Position vieler der oben beschriebenen Ressourcenblöcke nicht kritisch für den Betrieb der vorliegenden Erfindung ist. Wenn in einem Computer-Drucker-System 200 der Drucker 218 ein Laserdrucker mit einer großen Rechenleistung ist, dann können alle oben beschriebenen Berechnungsblöcke im Drucker positioniert sein, wobei trotzdem die hier beschriebenen erfinderischen Aspekte genutzt werden können. Zum Beispiel kann der Ressourcenplaner 216 wie oben genannt im Hostcomputer 202 oder im Drucker 218 angeordnet sein. Entsprechend kann der Druckerressourcenspeicher 220 alternativ dazu innerhalb der Hostcomputers 202 angeordnet sein. Wenn der Hostcomputer 202 in einer Umgebung wie etwa Windows TM betrieben wird, dann kann der Druckerressourcenspeicher 220 Teil der Despooler-Funktion sein, die im Hintergrund arbei tet, während das Anwendungsprogramm im Vordergrund arbeitet. Die Prinzipien der vorliegenden Erfindung können weiterhin angewendet werden, weil der Druckerressourcenspeicher 220 immer noch in seiner Größe begrenzt ist und genauso arbeitet wie wenn der Druckerressourcenspeicher im Drucker 218 angeordnet wäre. Der Betrieb im Hintergrund ist von der Perspektive des Anwendungsprogramms her transparent. Die tatsächliche Position des Druckerressourcenspeichers 220 ist also nicht kritisch. Aus praktischen Gründen weist der Hostcomputer 202 allgemein mehr Rechenleistung auf als der Drucker 218. Deshalb werden die oben beschriebenen Ressourcenblöcke in Abhängigkeit von der jeweiligen Rechenleistung und der Verfügbarkeit eines bidirektionalen Kommunikationskanals zwischen dem Hostcomputer und dem Drucker entweder dem Hostcomputer 202 oder dem Drucker 218 zugewiesen.
- Der Hostcomputer 202 speichert die Ressourcen an verschiedenen Positionen im Hostcomputer 202 oder im Drucker 218 (im Fall von ROM-gespeicheren Zeichensätzen). Zum Beispiel werden Glyphensätze durch den Ressourcenassembler 208 zusammengestellt und als Bitmapdatendateien im Hostressourcenspeicher 210 gespeichert. Das Computer-Drucker- System 200 speichert auch Zeigetabellen, welche verschiedene Graphikobjekte wiedergeben, im Hostressourcenspeicher 210. Die Zeigetabellen werden durch den Ressourcenassembler 208 in den Hostressourcenspeicher 210 geladen, wobei der Ressourcenassembler 208 die Zeigetabelle auch zu einem durch die vorliegende Erfindung verwendeten Datenformat umwandeln kann. In anderen Fällen können die ein Graphikobjekt beschreibenden Daten durch ein Anwendungsprogramm in einem anderen Format als einer Zeigetabelle gespeichert werden. Der Ressourcenassembler 208 erzeugt eine Zeigetabelle im richtigen Datenformat und speichert die erzeugte Datentabelle im Hostressourcenspeicher 210. Im Gegensatz dazu werden weiche Zeichensätze typischerweise als Datendateien auf einer Festplatte (nicht gezeigt) gespeichert. Wenn der Ressourcenassembler 208 bestimmt, daß ein bestimmtes weiches Zeichen oder ein Brush erforderlich ist, dann wird die Ressource in den Hostressourcenspeicher 210 geladen.
- Sowohl im Stand der Technik wie in dem Computer-Drucker-System 200 der vorliegenden Erfindung erzeugt das Anwendungsprogramm 204 eine Dokumentbeschreibung, die im Hostcomputerspeicher 212 oder an einer anderen geeigneten Speicherposition wie etwa einer Festplatte (nicht gezeigt) residieren kann. Das Anwendungsprogramm speichert das Dokument unter Verwendung einer Seitenbeschreibungssprache (PDL), die bei verschiedenen Anwendungsprogrammen unterschiedlich sein kann. In den Systemen aus dem Stand der Technik wandelt ein Assembler im Hostcomputer die PDL zu einem Satz von Zeich nungsprimitiven um, welche allgemein als eine Renderprimitivenliste (RPL) bezeichnet werden können. Die RPL kann alphanumerische Zeichen, Graphikobjekte oder Kombinationen aus diesen beiden umfassen. In einigen Systemen aus dem Stand der Technik übersetzt der Hostcomputer die RPL in einem Prozeß, der als das Rendern der Primitivenliste bezeichnet wird, in eine Bitmapdatendatei der Dokumentseite. Es ist die Bitmapdatei, die von den Hostcomputern aus dem Stand der Technik zum Drucker übertragen wird. Andere Hostcomputer aus dem Stand der Technik wandeln die RPL in eine Zwischenebenensprache wie etwa PostScriptTM oder PCLTM um.
- Einige Systeme aus dem Stand der Technik umfassen tatsächlich einen Systemteil, der ähnlich wie ein Ressourcenassembler funktioniert. Der Assembler aus dem Stand der Technik ist im Hostcomputer vorgesehen und wandelt die PDL in RPLs um. Der oben beschriebene Parser dient im Stand der Technik als ein zweiter Ressourcenassembler, wobei er die RPLs empfängt und Zwischendatenstrukturen erstellt, welche erforderlich sind, um die Zwischenebenensprache in eine entsprechende Bitmap umzuwandeln. Der Parser ist zum Verarbeiten von Code und nicht eigens zum Erzeugen einer gedruckten Seite ausgebildet.
- Im Gegensatz dazu verwendet das Computer-Drucker-System 200 der vorliegenden Erfindung nur einen einzigen Ressourcenassembler 208, der typischerweise im Hostcomputer 202 vorgesehen ist. Der Ressourcenassembler 208 beschäftigt sich nur mit dem Erzeugen einer gedruckten Seite, und der durch den Ressourcenassembler erzeugte Code ist für das effiziente Drucken von Dokumenten ausgebildet. Der Ressourcenassembler 208 untersucht das Dokument und wandelt die PDL zu RPLs um, während er bestimmt, welche Ressourcen zum Drucken des Dokuments erforderlich sind. Der Ressourcenassembler 208 sammelt die ausgewählten Ressourcen und gibt sie in den Hostressourcenspeicher 210 zusammen mit den assoziierten RPLs. Die vorliegende Erfindung braucht die Ressourcen und RPLs nicht in einem bestimmten Format in den Ressourcenspeicher zu geben, welches die Ressourcen mit bestimmten RPLs assoziiert. Tatsächlich sind die tatsächliche Datenstruktur und das Format nicht wichtig für die Verwendung der vorliegenden Erfindung. Viele verschiedene, dem Fachmann bekannte Formate sind für den korrekten Betrieb der vorliegenden Erfindung geeignet. Eine Liste, welche die Abhängigkeiten und die Position von Ressourcen und RPLs angibt, ist alles, was nötigt ist. Diese Liste kann die Form einer Reihe von Zeigern aufweisen, welche die Positionen angeben, an denen die Ressourcen und die assoziierten RPLs gespeichert sind. Die Liste kann sogar durch eine vorbestimmte Sequenz der Ausführung von RPLs impliziert werden, wie weiter unten erläutert wird.
- Wenn Ressourcen im Hostressourcenspeicher 210 gespeichert sind, werden sie als unbegrenzt betrachtet, weil es keine Beschränkung bezüglich der Größe der Datendatei mit den Ressourcen und RPLs gibt und weil es auch keine Beschränkungen bezüglich der Sequenz gibt, in welcher die Ressourcen und RPLs gespeichert werden. Zum Beispiel kann ein Dokument durch den Benutzer gespeichert und dann bearbeitet werden, um ein graphisches Diagramm in der Nähe des Anfangs des Dokuments vorzusehen. Das Anwendungsprogramm erstellt nicht die ganze Dokumentdatei neu, um das graphische Diagramm einzufügen. Statt dessen gibt das Anwendungsprogramm das graphische Diagramm an das Ende der Dokumentdatei und fügt einen Zeiger im Dokument an dem Punkt ein, wo das graphische Diagramm eingefügt werden soll. Der Zeiger zeigt auf die Position des graphischen Diagramms. Diese gewöhnliche Technik verwendet ein Zeigen nach hinten, d. h. der Einfügepunkt im Dokument zeigt nach hinten zu einer späteren Position in der Dokumentdatei, wo das graphische Diagramm gespeichert ist. Diese Technik ist graphisch in Fig. 3A dargestellt, wo ein Dokument 300 N Seiten aufweist. Die durch das Bezugszeichen 302 angegebene Seite zwei des Dokuments erfordert den Zeichensatz1 304, während die Seite drei 306 des Dokuments 300 das graphische Diagramm erfordert, das durch die Bitmap 308 wiedergegeben wird. Dabei ist zu beachten, daß der Zeichensatz1 304 und die Bitmap 308 jeweils nach den Positionen für die Seite zwei 302 und die Seite drei 306 im Dokument gespeichert sind, wo der Zeichensatz und die Bitmap erforderlich sind. Die Datenzeiger 310 und 312 zeigen jeweils auf die Positionen 304 und 308, wo die Ressourcen erforderlich sind. Da das Dokument unbegrenzt ist, hat der Computer Zugriff auf das gesamte Dokument und kann Zeiger in der oben beschriebenen Weise verwenden.
- Beim Drucken des Dokuments hat der Drucker jedoch nicht sofort Zugriff auf die gesamte Datei. Deshalb wird das Dokument als sowohl durch die Größenbeschränkungen des Druckerressourcenspeichers 220 wie durch die Sequenz beschränkt betrachtet, in welcher das Dokument gespeichert ist. Die erforderlichen Ressourcen müssen im Drucker vorhanden sein, bevor sie tatsächlich gebraucht werden, da der Drucker ansonsten verzögert wird oder eine bestimmte Seite überhaupt nicht drucken kann. Das Dokument muß in begrenzter Weise zusammengestellt werden, wie in Fig. 3B angegeben, wo dasselbe Dokument 300 als ein begrenztes Dokument wiedergegeben ist. Der erforderliche Zeichensatz 316 und die Bitmap 318 erscheinen in dem Dokument 300, bevor sie tatsächlich für Seite zwei 320 und Seite drei 322 gebraucht werden. Die Zeiger 324 und 326 zeigen jeweils auf die Positionen 316 und 318, wo die Ressourcen gespeichert sind. Die Zeiger 324 und 326 zeigen also nach vorne zu einer Position im Dokument 300, wo die Ressourcen gespeichert sind. Auf diese Weise sind die Ressourcen immer vorhanden, bevor sie zum Drucken des Dokuments ge braucht werden. Dabei ist zu beachten, daß es nicht notwendig ist, daß die Ressourcen am Beginn des Dokuments vorgesehen sind. Es ist lediglich notwendig, daß die Ressourcen vor der Position im Dokument vorgesehen sind, wo die bestimmten Ressourcen gebraucht werden. Zum Beispiel ist das Dokument 300 alternativ dazu in Fig. 3C in begrenzter Weise gezeigt, wobei der Zeichensatz1 320 direkt vor der Position 320 vorgesehen ist, wo die Ressource gebraucht wird. Der Zeiger 324 gibt die Position der erforderlichen Ressource an. Entsprechend ist die Bitmap 318 direkt vor der Position 322 vorgesehen, wo sie gebraucht wird, wobei der Zeiger 326 die Position angibt, wo die Ressource gebraucht wird.
- Dabei ist zu beachten, daß der Hostcomputer 202 zwar allgemein über mehr Speicher verfügt als der Drucker 218, aber die Größe des Hostcomputerspeichers 212, die dem Hostressourcenspeicher 210 zugewiesen werden kann, begrenzt ist. Deshalb enthält der Hostressourcenspeicher 210 nicht alle im Computer gespeicherten möglichen Ressourcen. Statt dessen enthält der Hostressourcenspeicher nur die zum Drucken des besonderen Dokuments erforderlichen Ressourcen sowie die das Dokument beschreibenden RPLs. Wenn ein bestimmter Teil des Dokuments gedruckt wurde, dann wird die für den bestimmten Teil des Dokuments erforderliche Ressource aus dem Hostressourcenspeicher 210 gelöscht. Einige Ressourcen können nur einmal in einem Dokument erforderlich sein, so daß sie unmittelbar nach dem Abschluß des Druckens dieses Teils des Dokuments gelöscht werden können. Andere Ressourcen wie etwa Glyphensätze, die häufig verwendet werden können, werden im Hostressourcenspeicher 210 gespeichert, bis sie nicht mehr für ein Dokument gebraucht werden.
- Weil der Hostcomputer 202 typischerweise über mehr Speicher verfügt als der Drucker 218, kann der Hostcomputer einen größeren Teil des Hostcomputerspeichers 212 für die Verwendung als Ressourcenspeicher 210 zuweisen. Der Drucker 218 verfügt über weniger Speicher und weist einen entsprechend kleineren Druckerressourcenspeicher 220 auf. Der Druckerressourcenspeicher 220 ist nicht ausreichend groß, um den gesamten Satz von im Hostressourcenspeicher 210 enthaltenen Ressourcen zu speichern. Es müssen also Ressourcen vom Hostressourcenspeicher 210 zum Druckerressourcenspeicher 220 heruntergeladen werden, wenn diese durch den Drucker 218 gebraucht werden. Der Drucker 218 muß die Ressourcen im Druckerressourcenspeicher 220 effizient nutzen, wobei er Ressourcen löscht, die nicht mehr gebraucht werden oder schnell aus dem Hostressourcenspeicher 210 neu geladen werden können. Der Hostressourcenspeicher 210 wird also nur einmal mit den zum Drucken des Dokuments erforderlichen Ressourcen geladen, wobei die Ressourcen während des Druckens des Dokuments mehrere Male in den Druckerressourcenspeicher 220 heruntergeladen und aus demselben freigegeben werden können. Um die effizienteste Verwendung der Ressourcen zu bestimmen, untersucht das Computer-Drucker-System 200 der vorliegenden Erfindung das gesamte Dokument, um zu bestimmen, wie die Ressourcen am effizientesten zugewiesen werden können.
- Mit Bezug auf Fig. 2 wird der Betrieb des Computer-Drucker-Systems 200 ausführlich beschrieben. Der Ressourcenassembler 208 wandelt die PDL in einen Satz von RPLs um und bestimmt, welche Ressourcen für den vorliegenden Druckauftrag erforderlich sind. Wenn der Druckauftrag beginnt, beginnt der Ressourcenassembler 208 das erste Band (wenn der Drucker 218 im Bandmodus betrieben wird) oder die erste Seite (wenn der Drucker 218 im Seitenmodus betrieben wird) der Daten zu betrachten, welche die zu druckende Oberfläche beschreiben. In dieser Anmeldung wird die Einheitengröße des zu verarbeitenden Dokuments, ob es sich nun um ein Band oder eine Seite handelt, als ein Datenblock bezeichnet. Der Ressourcenassembler 208 wählt Ressourcen aus dem Ressourcenspeicherbereich 206 aus, die zum Drucken des Dokuments erforderlich sind. Der Ressourcenassembler 208 bestimmt auch die Abhängigkeiten dieser Ressourcen zu bestimmten Datenblöcken. Der Ressourcenassembler 208 kann zum Beispiel bestimmen, daß ein bestimmter Zeichensatz für eine Formel auf der ersten Seite erforderlich ist und daß ein anderer Zeichensatz für den Rest der Seite erforderlich ist. Außerdem kann ein Graph auf der ersten Seite gedruckt werden, der bestimmte graphische Ressourcen wie etwa eine Zeigetabelle und einen Brush erfordert.
- Der Ressourcenassembler 208 erstellt eine Liste, welche explizit die Abhängigkeiten und den Datenblock angibt, für welchen diese Ressourcen erforderlich sind. Dabei ist zu beachten, daß die Liste nicht in der Form einer Liste vorgesehen sein muß. Wie oben bemerkt, kann die Liste in der Form von Zeigern auf Speicherpositionen vorgesehen sein oder sogar implizit durch die Reihenfolge definiert sein, in welcher die RPLs durch den Ressourcenassembler 208 erzeugt werden. Wenn zum Beispiel ein Programmierer ein Programm schreibt, das den ersten RPL erzeugt und unmittelbar ausführt, dann besteht keine ausdrückliche Liste, die erzeugt wird und im Hostressourcenspeicher 210 gespeichert wird. Es besteht jedoch eine implizierte Liste, die durch die Reihenfolge spezifiziert wird, in welcher die Aufgaben innerhalb der RPL erzeugt werden. Für den effizienten Betrieb der vorliegenden Erfindung ist wichtig, daß der Ressourcenassembler 208 die Abhängigkeiten bestimmt und die anderen Ressourcenblöcke über die Abhängigkeiten benachrichtigt.
- Es gibt zwei verschiedene Typen von Abhängigkeiten, die durch den Ressourcenassembler 208 spezifiziert werden. Die Abhängigkeiten des ersten Typs sind Operandenabhängigkeiten, welche die erforderlichen Ressourcen wie oben beschrieben mit einem bestimmten Datenblock in Beziehung setzen. Die Abhängigkeiten des zweiten Typs sind Ausführungsabhängigkeiten, welche die Sequenz spezifizieren, in welcher die RPLs verarbeitet werden. Einige Systeme aus dem Stand der Technik erfüllen die Ausführungsabhängigkeiten nicht, wenn sie ein Dokument drucken. Zum Beispiel trennen einige Systeme aus dem Stand der Technik Text von Graphiken und verarbeiten die beiden unabhängig voneinander. Die gedruckte Seite ist deshalb nicht immer identisch mit dem, was der Benutzer auf dem Bildschirm sieht. Die Systeme aus dem Stand der Technik resultieren deshalb nicht immer in "what you see ist what you get" (WYSIWIG). Im Gegensatz dazu erfüllt das Computer- Drucker-System 200 immer die Ausführungsabhängigkeiten, selbst wenn diese wie oben besprochen in der Sequenz der RPLs impliziert sind, weil das System einen ganzen Datenblock verarbeitet und den Datenblock nicht in Text- und Graphikteile aufteilt.
- Einige Ausführungsabhängigkeiten können durch den Drucker 218 spezifiziert werden, wenn eine bidirektionale Kommunikation zwischen dem Drucker und dem Hostcomputer 202 vorgesehen ist. Wie weiter unten ausführlicher erläutert wird, kann der Drucker die Reihenfolge spezifizieren, in welcher Seiten oder Bänder der Daten verarbeitet werden sollen, um die Effizienz des Druckprozesses zu maximieren. Wenn Ausführungsabhängigkeiten durch den Drucker 218 spezifiziert werden, dann befolgt der Ressourcenassembler 208 diese Abhängigkeiten. Der Ressourcenassembler 208 kann auch seine eigenen Ausführungsabhängigkeiten erzeugen, wenn eine bestimmte Zeichnungsreihenfolge innerhalb eines Datenblocks eingehalten werden muß. Zum Beispiel kann der Drucker 218 den Ressourcenassembler 208 anweisen, zuerst die Seite zwei eines Dokuments zu verarbeiten und die Seite zwei von unten nach oben zu verarbeiten. Dies ist eine Ausführungsabhängigkeit, die durch den Drucker 218 spezifiziert wird. Wenn überlappende Graphikobjekte auf Seite zwei vorgesehen sind, dann muß die Zeichnungsreichenfolge dieser Objekte derart spezifiziert werden, daß die Objekte auf der gedruckten Seite in der beabsichtigten Weise überlappen. Der Ressourcenassembler 208 bestimmt die Ausführungsabhängigkeiten, welche die Zeichnungsreihenfolge bestimmen. Der Ressourcenassembler 208 erstellt also eine Liste, die sowohl die Operandenabhängigkeiten wie alle Ausführungsabhängigkeiten (durch den Ressourcenassembler 208 oder den Drucker 218 spezifiziert) angibt.
- Wie oben erläutert, kann die Liste für einige Abhängigkeiten implizit in der Sequenz der Zeichnungsprimitiven innerhalb eines Bandes oder einer Seite enthalten sein. Zum Beispiel kann das Computer-Drucker-System 200 immer zuerst die erste RPL ausführen, wodurch eine Ausführungsabhängigkeit erzeugt wird, die nicht explizit angegeben werden muß. Um eine maximale Effizienz zu erreichen, insbesondere bei hochentwickelten Druckern und bei einer bidirektionalen Kommunikation, verwendet die vorliegende bevorzugte Ausführungsform des Gomputer-Drucker-Systems 200 keine implizierten Abhängigkeiten, da diese die Ausführung unnötigerweise auf eine weniger effiziente Sequenz von Aufgaben begrenzt. Die oben angeführten Beispiele der Verwendung von impliziten Abhängigkeiten sind nur angegeben, um zu zeigen, daß die zugrundeliegenden Prinzipien der vorliegenden Erfindung verwendet werden können, um die Gesamteffizienz der Druckprozesses zu verbessern, ohne daß alle erfinderischen Aspekte des Computer-Drucker-Systems 200 verwendet zu werden brauchen. In der vorliegenden bevorzugten Ausführungsform kommuniziert der Ressourcenassembler 208 explizit Abhängigkeiten an andere Komponenten des Systems wie den Ressourcenlader 214, den Ressourcenplaner 216 und den Drucker 218.
- Wenn das Computer-Druckar-System 200 bidirektionale Kommunikationsfähigkeiten aufweist, dann kann der Drucker 218 Information zum aktuellen Status des Druckerressourcenspeichers 220 an den Ressourcenassembler 208 senden. Derartige Statusinformation gibt an, welche Ressourcen bereits im Druckerressourcenspeicher 220 vorhanden sein können und wieviel Platz im Druckerressourcenspeicher verfügbar ist. Außerdem weist der Drucker den Ressourcenassembler 208 bezüglich der effizientesten Sequenz zum Drucken des Dokuments an. Dies ist ein wichtiger Prozeß in großen hochentwickelten Laserdruckern, die Fähigkeiten zum doppelseitigen Drucken aufweisen und aus mehreren Papierfächern drucken können. Bei derartigen Druckern können sich gleichzeitig bis zu zehn Papierblätter durch den Druckmechanismus bewegen. Auf beiden Seiten bedruckte Blätter (doppelseitiger Modus) werden auf einer Seite des Papiers von oben nach unten und auf der anderen Seite des Papiers von unten nach oben verarbeitet. Unterschiedliche Papiergrößen erfordern unterschiedliche Zeitdauern im Druckmechanismus. Bestimmte Modi wie etwa Querformat können mehr Verarbeitungszeit im Druckmechanismus erfordern als anderen Modi. Die Blätter können innerhalb des Druckmechanismus eines hochentwickelten Laserdruckers tatsächlich aneinander vorbei passieren. Daraus resultiert, daß die effizienteste Sequenz zum Verarbeiten der Seiten nicht die numerische Reihenfolge der Seiten (d. h. Seite 1,2,3, ...) sein muß. Das Computer-Drucker-System 200 der vorliegenden Erfindung erlaubt es dem Drucker 218, die effizienteste Sequenz zum Drucken des Dokuments zu bestimmen und diese Information zum Ressourcenassembler 208 zu kommunizieren. In Systemen, welche lediglich eine Kommunikation in nur einer Richtung vorsehen, kann der Drucker 218 keine Statusinformation und keine Anweisungen zur Drucksequenz kommunizieren. Der Ressour cenassembler 208 kommuniziert jedoch weiterhin die expliziten Abhängigkeiten an den Drucker 218, so daß der Drucker 218 weiß, wann er Ressourcen aus dem Druckerressourcenspeicher 220 löschen kann. Wenn nur eine Kommunikation in einer Richtung verfügbar ist, dann kennt der Ressourchenassembler 208 trotzdem den Status des Druckerressourcenspeichers 220, weil der Hostcomputer 202 den Druckerspeicher 222 in dem unidirektionalen Modus verwaltet. Der Ressourcenassembler 208 weiß also, welche Ressourcen zu Beginn einer Druckaufgabe bereits im Druckerressourcenspeicher 220 sind.
- Wie zuvor erläutert, wandelt der Ressourcenausführer 224 die RPLs typischerweise zu Bitmapdaten um, die dann durch den Druckmechanismus 226 gedruckt werden. Wenn der Druckmechanismus gestartet wird, kann er das Drucken der Seite nicht unterbrechen, da ansonsten ein Fehler auftritt. Wenn also der Druckmechanismus gestartet wurde, dann müssen die RPLs in Echtzeit zu Bitmapdaten umgewandelt werden oder bereits zuvor zu Bitmapdaten umgewandelt worden sein. Natürlich können bestimmte Drucker wie etwa Matrixdrucker und Tintenstrahldrucker in der Mitte einer Seite stoppen, ohne einen Fehler zu erzeugen. Der Ressourcenassembler 208 kennt den aktuellen Status des Druckerressourcenspeichers 220 sowie die Gesamtleistung des Druckers 218 und untersucht jeden Datenblock, um zu bestimmen, ob der Drucker 218 die RPL für den Datenblock in Echtzeit zu einer Bitmap umwandeln kann, wenn der Druckmechanismus 226 läuft. Wenn der Drucker die RPL für den Datenblock nicht in Echtzeit umwandeln kann, dann weist der Ressourcenassembler 208 den Hostcomputer 202 an, die RPL zu einer Bitmap zu verarbeiten und die Bitmap dann an den Drucker 218 zu übertragen. Wenn der Druckerspeicher 222 ausreicht, um eine Bitmapdatendatei für die gesamte Seite zu speichern, kann der Ressourcenassembler 208 alternativ dazu den Drucker 218 dazu anweisen, die RPL in eine Bitmapdatendatei umzuwandeln und die Bitmap im Druckerspeicher 222 zu speichern, bis der Druckmechanismus 226 gestartet wird. Die Entscheidung darüber, welcher Teil des Computer-Drucker-Systems 200 die RPL in eine Bitmap umwandelt, hängt von der relativen Komplexität der Umwandlungsaufgabe und der relativen Rechenleistung der Prozessoren in jedem der Teile des Systems ab. In der vorliegenden bevorzugten Ausführungsform berücksichtigt der Ressourcenassembler 208 drei Faktoren, wenn er bestimmt, welcher Teil des Computer-Drucker-Systems 200 die Daten verarbeiten soll. Diese Faktoren sind:
- 1. Die für den Hostcomputer 202 zum Verarbeiten der RPL zu Bitmapdaten erforderliche Zeitdauer
- 2. Die für den Drucker 218 zum Verarbeiten der RPL zu Bitmapdaten erforderliche Zeitdauer, und
- 3. Die für den Kommunikationskanal zum Übertragen der RPL oder der Bitmapdaten erforderliche Zeitdauer.
- Mit anderen Worten berechnet der Ressourcenassembler 208 die für den Hostcomputer 202 zum Verarbeiten der RPL für einen bestimmten Datenblock zu einer Bitmapdatei erforderliche Zeitdauer plus die für den Kommunikationskanal zum Übertragen der Bitmapdatendatei zum Drucker 218 erforderliche Zeitdauer und vergleicht diese mit der für den Kommunikationskanal zum Übertragen der RPL zum Drucker erforderlichen Zeitdauer plus der für den Drucker zum Verarbeiten der RPL zu einer Bitmapdatendatei erforderlichen Zeitdauer.
- Das Computer-Drucker-System 200 führt auch eine Lastbalance durch, indem es die Datenverarbeitung zwischen dem Hostcomputer 202 und dem Drucker 218 verschiebt. Der Ressourcenassembler 208 wählt in Abhängigkeit davon, welcher Teil des Systems den Datenblock am schnellsten verarbeiten kann, den Hostcomputer 202 oder den Drucker 218 zum Verarbeiten des Datenblocks aus. Wenn zum Beispiel eine besondere Aufgabe das Zeichnen von einer großen Anzahl von Linien auf der Seite erfordert und der Prozessor der Hostcomputers zweimal so schnell wie der Prozessor des Druckers ist, dann wird wahrscheinlich der Hostcomputer 202 zum Verarbeiten der Daten angewiesen. Wenn andererseits die Umwandlung relativ einfach ist und der Drucker 218 die Speicherkapazität zum Speichern der Bitmap aufweist, dann kann der Prozessor des Druckers zum Verarbeiten der Daten angewiesen werden, so daß der Prozessor des Hostcomputers für das Verarbeiten des nächsten Datenblocks frei ist. Dabei ist zu beachten, daß diese Berechnung ein dynamischer Prozeß ist, der sich von einem Datenblock zum anderen unterscheiden kann. Der Drucker 218 kann einen Datenblock verarbeiten, und der Hostcomputer 202 kann die nächsten drei Datenblöcke verarbeiten. Das Gesamtziel besteht darin, das Dokument auf die effizienteste Weise zu erzeugen. Das Computer-Drucker-System 200 der vorliegenden Erfindung erlaubt dies unter Verwendung der potentiellen Rechenleistung von sowohl dem Hostcomputer 202 wie dem Drucker 218.
- Die Lastbalance basiert auf verschiedenen Parametern wie etwa der relativen Rechenleistung des Hostcomputers 202 und des Druckers 218, der Geschwindigkeit des Datenkommunikationskanals, den relativen Größen des Hostressourcenspeichers 210 und des Druckerressourcenspeichers 220, der Komplexität der Druckaufgabe und den gegenwärtig durch den Hostcomputer 202 und den Drucker 218 durchgeführten Aufgaben. Wie zuvor genannt, ist die Lastbalance ein dynamischer Prozeß, in welchem der Ressourcenassembler 208 auf der Basis der vorstehend angeführten Parameter einige Seiten eines Dokuments dem Hostcomputer 202 und andere Seiten dem Drucker 210 für die Verarbeitung zuweisen kann.
- Die Lastbalance kann sogar Datenverarbeitungsverantwortlichkeiten zwischen dem Hostcomputer 202 und dem Drucker 218 innerhalb einer einzelnen Seite verschieben. Ein Beispiel dafür, daß verschiedene Teile des Computer-Drucker-Systems 200 dieselbe Seite verarbeiten, kann auftreten, wenn eine bestimmte Seite eines Dokuments zwei überlappende Graphikobjekte wie etwa Kreise enthält. Der Ressourcenassembler 208 kann die PDL- Beschreibung des ersten Kreises an den Drucker 218 senden, weil der Drucker gegenwärtig nicht druckt. Deshalb hat der Drucker 218 Zeit zum Übersetzen der PDL für den ersten Kreis. Der Hostcomputer 202 kann die PDL für den zweiten Kreis übersetzen, weil der Hostcomputer über mehr Rechenleistung verfügt als der Drucker 218 und der Drucker 218 bereits mit dem Übersetzen des ersten Kreises beschäftigt ist. Der Ressourcenassembler 208 wird also für die Lastbalance verwendet, um die Datenverarbeitungsverantwortlichkeiten zwischen dem Hostcomputer 202 und dem Drucker 218 zu verschieben.
- Wie zuvor genannt, erzeugt eine Ressource, die für einen bestimmten Datenblock des Dokuments erforderlich ist, eine Abhängigkeit im Computer-Drucker-System 200 für eine bestimmte Ressource für diesen Datenblock. Die Abhängigkeiten können von einem Datenblock zum nächsten variieren. Der Ressourcenassembler 208 gibt die Abhängigkeiten explizit an, so daß der Drucker 218 weiß, welche Ressourcen für einen bestimmten Datenblock erforderlich sind. Der Drucker weist also eine Art "Menü" von Ressourcen auf, welches die erforderlichen Ressourcen mit jedem der Datenblöcke in Beziehung setzt. Bei einer bidirektionalen Kommunikation kann der Drucker 218 seinen eigenen Speicher verwalten, weil explizite Abhängigkeiten zwischen Datenblöcken und Ressourcen vorgesehen sind. Der Drucker 218 verwendet das Menü der expliziten Abhängigkeiten, um Ressourcen vom Hostcomputerspeicher 210 derart anzufordern, daß die Effizienz des Druckerressourcenspeichers 220 maximiert wird. Zum Beispiel können die expliziten Abhängigkeiten angeben, daß ein Datenblock einen bestimmten Zeichensatz und einen bestimmten Glyphensatz erfordert, während der nächste Datenblock denselben Zeichensatz, aber einen anderen Glyphensatz erfordert. Der Drucker 218 kann in der Lage sein, alle drei Ressourcen (den Zeichensatz und die zwei Glyphensätze) gleichzeitig im Druckerressourcenspeicher 220 zu behalten. Deshalb fordert der Drucker 218 alle drei Ressourcen an.
- Ein schwierigerer Aspekt der Ressourcenverwaltung ist die Entscheidung, welche Ressourcen aus dem Druckerressourcenspeicher 220 gelöscht werden sollen. Wenn das Drucken eines bestimmten Datenblocks eine Ressource mit einer derartigen Größe erfordert, daß andere Ressourcen aus dem Druckerressourcenspeicher 220 gelöscht werden müssen, dann kann der Drucker 218 entscheiden, welche Ressource oder welche Ressourcen aus dem Druckerressourcenspeicher 220 gelöscht werden sollen und wann Ressourcen vom Hostcomputer 202 für zukünftige Datenblöcke angefordert werden sollen. Wenn weiterhin eine Fehlerbehebung erforderlich ist, weiß der Drucker 218, welche Ressourcen erforderlich sind, um die verlorenen Seiten wiederherzustellen, und kann die erforderlichen Ressourcen aus dem Hostcomputer 202 anfordern, wenn die erforderlichen Ressourcen bereits aus dem Druckerressourcenspeicher 220 gelöscht wurden.
- Die vorhergehenden Erläuterungen beziehen sich auf eine bidirektionale Kommunikation zwischen dem Hostcomputer 202 und dem Drucker 218. Wenn nur eine unidirektionale Kommunikation verfügbar ist, dann wird der Druckerspeicher 222 durch den Hostcomputer 202 verwaltet. In diesem Fall bestimmt der Hostcomputer die Sequenz, in welcher die Ressourcen in den Druckerressourcenspeicher 220 geladen oder aus demselben gelöscht werden, und wann die Ressourcen geladen und gelöscht werden sollen. Obwohl der Drucker 218 bei der Kommunikation in nur einer Richtung seinen eigenen Speicher nicht selbst verwalten kann, sieht die vorliegende Erfindung trotzdem eine Leistungsverbesserung gegenüber dem Stand der Technik vor, weil der Parser beseitigt ist und Teile des Computer- Drucker-Systems 200 wie der Ressourcenassembler 208 und die Host- und Druckerressourcenspeicher 210 und 220 hinzugefügt sind. In dem Computer-Drucker-System 200 der vorliegenden Erfindung können die Ressourcen während des Druckens des gesamten Dokuments mehrere Male in den Druckerressourcenspeicher geladen und aus demselben freigegeben werden. Die Aufgabe zu bestimmen, welche Ressourcen im Druckerressourcenspeicher 220 vorhanden sein sollen, wird durch den Ressourcenlader 214 bestimmt und im folgenden ausführlich beschrieben.
- Der Ressourcenassembler 208 untersucht das Dokument mehrere Datenblöcke vor dem Ressourcenlader 214, um Ressourcen für spätere Datenblöcke zu erzeugen. Dies erlaubt es dem Ressourcenlader 214, vorauszuschauen und die effizienteste Zuweisung von Ressourcen zu bestimmen. Einige Ressourcen können in vielen Datenblöcken im gesamten Dokument verwendet werden und weisen deshalb Abhängigkeiten im gesamten Dokument auf. Es kann in Abhängigkeit vom verfügbaren Platz im Druckerressourcenspeicher 220 effizienter sein, diese Ressourcen während des gesamten Druckprozesses im Drucker 218 zu behal ten. Eine zweite Ressource kann zum Beispiel nur einmal in der Mitte des Dokuments gebraucht werden. In diesem Fall kann die zweite Ressource nicht geladen werden, bis später eine andere Ressource nicht mehr im Drucker 218 benötigt wird und mehr Speicher im Druckerressourcenspeicher 220 verfügbar ist. Nachdem die zweite Ressource einmal verwendet wurde, kann sie aus dem Druckerressourcenspeicher 220 gelöscht werden, um Platz für andere Ressourcen zu machen.
- Die Bestimmung, wie weit vorausgeschaut werden soll, ist ein dynamischer Prozeß. Zum Beispiel besteht das Ziel zu Beginn eines Dokuments darin, den Druckmechanismus 226 zu starten. Deshalb nimmt der Ressourcenassembler 208 nur eine begrenzte Vorausschau vor, um die Ressourcen so schnell wie möglich zum Drucker 218 zu übertragen. Während der Drucker 218 die ersten Datenblöcke überträgt, kann der Ressourcenassembler auf spätere Datenblöcke vorausschauen und Ressourcen für den Hostressourcenspeicher 210 auswählen sowie RPLs für spätere Seiten erstellen. Idealerweise kann der Ressourcenassembler 208 vorausschauen, um das gesamte Dokument zu untersuchen, bevor das Drucken beginnt. Der Wunsch, den Druckmechanismus 226 zu starten, setzt jedoch eine Grenze für die anfänglichen Vorausschaufähigkeiten. Es gibt eine praktische Obergrenze für die Vorausschaufähigkeiten des Systems. Der Wunsch, die Verwendung des Hostcomputerspeichers 212 zu minimieren, so daß andere Anwendungsprogramme laufen können, begrenzt die Fähigkeiten des Ressourcenassemblers 208 zum Vorausschauen. Das Ziel besteht darin, den Druckmechanismus 226 so effektiv wie möglich in Bewegung zu halten. Die tatsächliche Anzahl der Seiten, auf die der Ressourcenassembler 208 vorausschaut, hängt von Faktoren wie der Gesamtlänge des Dokuments, der aktuellen Seite des gerade durch den Druckmechanismus 226 verarbeiteten Dokuments und der Komplexität des Dokuments ab. Die Vorausschaufähigkeiten des Ressourcenassemblers 208 verbessern die Fähigkeiten des Ressourcenladers 214 zum Steuern des Flusses der Ressourcen zum Druckerressourcenspeicher 220.
- Als Beispiel für den Betrieb des Ressourcenassemblers 208 soll der Fall betrachtet werden, daß für eine bestimmte Textseite Teile von fünf verschiedenen Zeichensätzen und eine Zeigetabelle (für das Zeichnen einer Bezierkurve) zum Drucken der Seite erforderlich sind. Der Ressourcenassembler 208 untersucht die Seite und erzeugt eine Liste mit expliziten Abhängigkeiten. Der Ressourcenassembler 208 kommuniziert wie oben beschrieben die Abhängigkeiten an andere Teile des Computer-Drucker-Systems 200. Gleichzeitig beginnt der Ressourcenassembler 208 auch damit, den Hostressourcenspeicher 210 zusammenzustellen, damit dieser die erforderlichen Ressourcen und RPLs für die Beschreibung der Seite enthält. Dabei ist zu beachten, daß der Ressourcenassembler 208 in dem bidirektionalen Modus vom Drucker 218 Information zu der Sequenz empfängt, in welcher die Datenblöcke verarbeitet werden. Der Einfachheit halber soll angenommen werden, daß der Ressourcenassembler 208 die Datenblöcke für die Seite von oben nach unten verarbeitet. Es wird eine einzige RPL vorgesehen, wenn der Drucker 218 im Seitenmodus betrieben wird, während eine unterschiedliche RPL für jedes Band vorgesehen wird, wenn der Drucker im Bandmodus betrieben wird. Die RPL beschreibt den Datenblock (Seite oder Band) in einem Format, das den Drucker 218 anweist, eine bestimmte Sequenz von Zeichen an einem bestimmten Punkt auf der Seite zu drucken. Das Computer-Drucker-System 200 verwendet diese Information dazu, eine Beschreibung der Zeichensequenz zu erstellen und diese Beschreibung im Hostressourcenspeicher 210 zu speichern. Der Begriff "Erstellen einer Beschreibung" kann vom Laden einer Bitmap der Zeichensequenz aus einer Speicherposition im Hostcomputer 202 bis zum Verwenden der Zeichensatz-Skalierungstechnologie zum Erstellen einer Bitmap der Zeichensequenz aus einem Satz von Gleichungen reichen. Der Ressourcenassembler 208 kann einen gesamten Zeichensatz speichern, wenn so viele Zeichen von diesem Zeichensatz erforderlich sind, daß es effizienter ist, den gesamten Zeichensatz zu übertragen. Wenn andererseits nur eine begrenzte Anzahl von Zeichen erforderlich ist, dann kann der Ressourcenassembler 208 einen Glyphensatz öffnen, um nur die erforderlichen Zeichen zu speichern.
- In dem vorliegenden Beispiel kann der erste Zeichensatz als ganzer übertragen werden. Die einzig erforderlichen Zeichen aus dem zweiten Zeichensatz können Zahlen und mathematische Symbole für eine Gleichung sein. Der Ressourcenassembler öffnet einen Glyphensatz, um die Zeichen für die Gleichung zu speichern. Der Glyphensatz kann offen bleiben, weil der nächste Teil der Seite eine begrenzte Anzahl von kursiven Zeichen (Zeichensatz Nummer drei) erfordert. Dabei ist zu beachten, daß die Größe eines Glyphensatzes dynamisch variabel ist. Zum Beispiel besteht zu Beginn der Druckoperation das Ziel darin, daß der Druckmechanismus 226 so schnell wie möglich zu arbeiten beginnt. Um dieses Ziel zu erreichen, kann der Ressourcenassembler 208 kleine Glyphensätze für die ersten Datenblöcke des Dokuments verwenden, damit die Glyphensätze so schnell wie möglich zum Druckerressourcenspeicher 220 übertragen werden können. Auf diese Weise hat der Druckmechanismus 226 etwas zu arbeiten, während der Ressourcenassembler die Ressourcen für die folgenden Datenblöcke zusammenstellt. Die Größe der folgenden Glyphensätze wird allgemein durch Parameter wie die Größe des Druckerressourcenspeichers 220 und die Rate der Datenübertragung zwischen dem Hostcomputer 202 und dem Drucker 218 be stimmt. Der Ressourcenassembler 208 hält den Glyphensatz offen, bis dieser eine vorbestimmte Größe erreicht.
- Wie zuvor beschrieben können Glyphensätze Zeichen aus verschiedenen Zeichensätzen enthalten. Umgekehrt können Zeichen aus demselben Zeichensatz wegen der Abhängigkeiten in verschiedenen Glyphensätzen gespeichert werden. Zum Beispiel können einige der in den oben beschriebenen mathematischen Formeln verwendeten Zeichen in einer zweiten Gleichung verwendet werden, die in einem folgenden Datenblock gedruckt wird. Die zweite Gleichung kann auch zusätzliche Zeichen aus dem zweiten Zeichensatz sowie Zeichen aus vierten und fünften Zeichensätzen verwenden. Der Ressourcenassembler 208 kann einen zweiten Glyphensatz erstellen, der nur die zusätzlichen für die zweite Gleichung erforderlichen Zeichen enthält. Wenn der Ressourcenausführer 224 die RPLs und Ressourcen zu einer Bitmapdatendatei verarbeitet, dann verwendet er Ressourcen aus beiden Glyphensätzen, um eine Bitmap für die zweite Gleichung zu erstellen. Die RPL zum Plazieren eines Glyphensatzes weist ein Format auf, das angibt, welcher Glyphensatz und welches Zeichen an einer bestimmten Position auf der gedruckten Seite plaziert wird. Die RPL für die zweite Gleichung des Beispiels kann die folgende Sequenz aufweisen:
- Glyphensatz 1, Zeichen 1;
- Glyphensatz 1, Zeichen 2;
- Glyphensatz 1, Zeichen 3;
- Glyphensatz 1, Zeichen 12;
- Glyphensatz 2, Zeichen 1;
- Glyphensatz 2, Zeichen 2;
- Glyphensatz 1, Zeichen 17;
- Glyphensatz 2, Zeichen 3;
- Glyphensatz 2, Zeichen 4;
- Glyphensatz 2, Zeichen 4;
- Glyphensatz 2, Zeichen 5;
- Glyphensatz 2, Zeichen 6; und
- Glyphensatz 2, Zeichen 7.
- Dabei ist zu beachten, daß die Verwendung von beiden Glyphensätzen in einer einzigen RPL erforderlich macht, daß beide Glyphensätze gleichzeitig im Druckerressourcenspeicher 220 sind. Wenn der erste Glyphensatz aus dem Druckerressourcenspeicher 220 gelöscht wurde, bestimmt der Ressourcenlader 214, daß der erste Glyphensatz neu aus dem Hostressourcenspeicher 210 geladen werden muß.
- Der Ressourcenplaner 216 steuert den Zeitablauf der Anforderung, so daß der Druckerressourcenspeicher 220 nicht überläuft und die Ressourcen rechtzeitig im Druckerressourcenspeicher verfügbar sind. Die Systeme aus dem Stand der Technik laden ganze Zeichensätze herunter und versuchen nicht, den Druckerspeicher zu verwalten. Daraus können Speicherüberläufe resultieren, so daß die Druckaufgabe nicht abgeschlossen werden kann. Auch Systeme, die wie oben beschrieben ein inkrementelles Herunterladen durchführen können, versuchen nicht, den Druckerspeicher zu verwalten, außer daß sie periodisch die heruntergeladenen Zeichensätze löschen. Im Gegensatz dazu spart das Computer-Drucker- System 200 der vorliegenden Erfindung Zeit und Druckerspeicher durch das Zusammenstellen von Zeichen in Glyphensätzen, weil nur die erforderlichen Zeichen zum Druckerressourcenspeicher übertragen werden, wobei die Glyphensatzressource aktiv wie oben beschrieben verwaltet wird. Dadurch wird die Gesamteffizienz des Druckprozesses erhöht.
- Der Betrieb des Ressourcenassemblers 208 läßt sich wie folgt zusammenfassen: der Ressourcenassembler bestimmt die Ressourcenabhängigkeiten, kommuniziert diese Information zu anderen Teilen des Computer-Drucker-Systems 200 und verarbeitet die Dokumentbeschreibung in der effizientesten Weise. Der Ressourcenassembler 208 erzeugt auch RPLs, welche Datenblöcke beschreiben, und speichert die RPLs und Ressourcen im Hostressourcenspeicher 210.
- Der Ressourcenlader 214 ist dafür verantwortlich, die Sequenz zu bestimmen, in welcher die Ressourcen in den Druckerressourcenspeicher 220 geladen und aus demselben freigegeben werden. Der Ressourcenlader 214 hat immer Zugriff auf die durch den Ressourcenassembler 208 bestimmten Systemabhängigkeiten, so daß die effizienteste Sequenz des Ladens und Neuladens der Ressourcen bestimmt werden kann. Der Ressourcenlader 214 kann in Abhängigkeit von den Kommunikationsfähigkeiten des Computer-Drucker-Systems 200 im Hostcomputer 202 oder im Drucker 218 vorgesehen sein. Wenn nur eine Kommunikation in einer Richtung vom Hostcomputer 202 zum Drucker 218 vorgesehen ist, dann ist der Ressourcenlader 214 immer im Hostcomputer 202 vorgesehen. Der Druckerspeicher 222 wird also durch den Hostcomputer 202 verwaltet. Wenn jedoch eine bidirektionale Kommunikationsfähigkeit vorgesehen ist, dann kann der Ressourcenlader 214 im Drucker 218 vorgesehen sein, um dem Drucker das Verwalten seines eigenen Speichers zu gestatten. Der Ressourcenlader 214 steuert die Übertragung der RPLs und der Ressourcen zum Drucker 218.
- Wie oben bemerkt weist der Hostressourcenspeicher 210 eine ausreichende Größe auf, so daß die durch den Ressourcenassembler 208 zusammengestellten Ressourcen nur einmal in den Hostressourcenspeicher geladen werden. Der Hostressourcenspeicher 210 berücksichtigt nicht die Größe der Ressourcen oder die durch die Größe der Druckerressourcenspeichers 220 auferlegten Beschränkungen. Andererseits ist der Druckerressourcenspeicher 220 in seiner Größe begrenzt, und sind die Ressourcen durch die Größenbegrenzung beschränkt. Um den Druckerressourcenspeicher 220 effizient zu verwalten, betrachtet der Ressourcenlader 214 die Größe aller bereits im Druckerressourcenspeicher 220 vorhandenen Ressourcen sowie die (zuvor durch den Ressourcenassembler 208 bestimmten) Ressourcenabhängigkeiten und bestimmt die Reihenfolge, in welcher die Ressourcen in den Drucker geladen und wieder aus demselben freigegeben werden sollen, so daß der Druckerressourcenspeicher 220 nicht überläuft. Der Ressourcenlader 214 kann also eine bestimmte Ressource mehrere Male während der Druckaufgabe laden und wieder freigeben.
- Dabei ist zu beachten, daß der Ressourcenlader 214 eine bestimmte Ressource freigeben kann, wenn sie nicht mehr gebraucht wird. Der Drucker 218 kann die bestimmte Ressource nicht unmittelbar aus dem Druckerressourcenspeicher 220 löschen, weil die Ressource weiterhin im Drucker 218 gebraucht werden kann. Da der Hostcomputer 202 und der Drucker 218 asynchron betrieben werden, kann die Freigabe einer Ressource durch den Ressourcenlader 214 das Löschen der Ressource aus dem Druckerressourcenspeicher 220 nicht unmittelbar veranlassen. Die Begriffe "Freigeben" und "Löschen" sind also nicht synonym. Eine Ressource wird freigegeben, wenn der Ressourcenlader 214 bestimmt, daß eine Ressource aus dem Druckerressourcenspeicher 220 freigegeben werden soll. Aus der Perspektive des Ressourcenladers 214 ist die Ressource dann nicht mehr im Drucker 218 vorhanden. Der Ressourcenlader 214 spezifiziert dann die nächste zu ladende oder freizugebende Ressource. Eine Ressource wird gelöscht, wenn der Drucker 218 die Ressource nicht mehr im Drucker benötigt und die Ressource tatsächlich aus dem Druckerressourcenspeicher 220 löscht. Der Ressourcenlader 214 ist nur an der Größe jeder Ressource interessiert und daran, ob es bezüglich der Effizienz sinnvoll ist, daß eine bestimmte Ressource im Druckerressourcenspeicher 220 vorhanden ist. Der Ressourcenspeicher 214 verfolgt die Größe des Druckerressourcenspeichers 220 und des darin verfügbaren Platzes sowie den aktuellen Zustand des Druckerressourcenspeichers 220 (d. h. welche Ressourcen im Druckerressourcenspeicher vorhanden sind) und bestimmt, welche Ressourcen behalten oder freigegeben werden sollen. Der Ressourcenlader 214 betrachtet die expliziten Abhängigkeiten für sowohl die aktuellen RPLs wie die zukünftigen RPLs. Dabei ist zu beachten, daß dar Ressourcenlader 214 nur an der Reihenfolge interessiert ist, in welcher die Ressourcen geladen oder freigegeben werden sollen; er beschäftigt sich nicht mit dem tatsächlichen Zeitablauf der Ressourcenänderungen. Der Zeitablauf der Änderungen im Druckerresourcenspeicher 220 wird durch den Ressourcenplaner 216 gesteuert.
- Wie oben bemerkt, machen es die explizit angegebenen Abhängigkeiten für den Ressourcenlader 214 leichter, die Sequenz für das Laden der Ressourcen in den Druckerressourcenspeicher 220 zu bestimmen. Die schwierigere Aufgabe besteht darin, zu bestimmen, wann die Ressourcen aus dem Druckerressourcenspeicher 220 freigegeben werden sollen, um Platz für neue Ressourcen zu schaffen. Es ist offensichtlich, daß eine Ressource, die nicht mehr gebraucht wird, ohne weiteres gelöscht werden kann. Wenn die Ressourcen jedoch später noch verwendet werden, muß der Ressourcenlader 214 entscheiden, welche Ressourcen freigegeben werden sollen, um Platz für neue Ressourcen zu schaffen. In vielen Cachesystemen aus dem Stand der Technik besteht der allgemeine Ansatz darin, dasjenige Element zu löschen, das am längsten nicht verwendet wurde (d. h. das für die längste Zeitdauer nicht verwendet wurde). Dieser Ansatz ist nicht effizient, um vorauszusagen, welche Ressourcen später am wenigsten gebraucht werden. Auf der Basis der expliziten Abhängigkeiten kann das Computer-Drucker-System 200 ein vorausschauendes Cachespeichern der Ressourcen durchführen, um das effizienteste Speichern der Ressourcen für zukünftige Datenblöcke des Dokuments vorauszusagen. Die Ressourcen werden auf der Basis der Reihenfolge, mit der die Ressourcen verwendet werden, der zum Speichern einer Ressource erforderlichen Speichermenge und der zum erneuten Laden einer Ressource erforderlichen Zeitdauer, wenn die Ressource aus dem Druckerressourcenspeicher 220 freigegeben werden muß, verwaltet. Der Ressourcenlader 214 verwendet die expliziten Abhängigkeiten, um eine "Zeitleiste" zu erstellen, in welcher der Ressourcenlader die aktuell im Druckerressourcenspeicher vorhandenen Ressourcen betrachtet und bestimmt, welche Ressource am spätesten gebraucht wird. Dabei berücksichtigt der Ressourcenlader 214 jedoch wie oben bemerkt auch die Größe der zu löschenden Ressource und die später zum erneuten Laden der Ressource erforderliche Zeitdauer.
- Als ein Beispiel eines vorausschauenden Cachespeicherns soll angenommen werden, daß der Druckerressourcenspeicher 220 bereits zehn Ressourcen (in diesem Beispiel von 1 bis 10 numeriert) enthält, wobei der Drucker 218 eine Ressource 11 für einen bestimmten Datenblock erfordert. Der Ressourcenlader 214 betrachtet die Zeitleiste und kann bestim men, daß zum Beispiel die Ressource 8 am spätesten gebraucht wird. Wenn die Ressource 8 jedoch klein ist, kann ihre Freigabe immer noch zuwenig Platz für den Druckerressourcenspeicher 220 zum Laden der erforderlichen Ressource 11 schaffen. Deshalb betrachtet der Ressourcenlader 214 nochmals die Zeitleiste, um die nächste nach der Ressource 8 am spätesten verwendete Ressource zu bestimmen. Es kann zum Beispiel die Ressource 2 freigegeben werden. Wenn die Freigabe der Ressource 2 jedoch mehr freien Platz im Druckerressourcenspeicher 220 als nötig schafft, dann kann der Ressourcenlader 214 nochmals die Zeitleiste betrachten, um statt dessen eine oder mehrere andere Ressourcen freizugeben. In diesem Beispiel kann der Ressourcenlader 214 die Ressourcen 7 und 5 statt der Ressourcen 2 und 8 freigeben, um Platz im Druckerressourcenspeicher 220 für die erforderliche Ressource 11 zu schaffen. Die vorstehende Beschreibung ist lediglich ein Beispiel für die verschiedenen Parameter, die durch den Ressourcenlader 214 bei der Verwaltung des Druckerressourcenspeichers 220 berücksichtigt werden.
- Während der Ressourcenlader 214 die Reihenfolge bestimmt, in welcher die Ressourcen in den Druckerressourcenspeicher 220 geladen und aus demselben freigegeben werden, wird der tatsächliche Zeitablauf der Ressourcenverwaltung durch den Ressourcenplaner 216 gesteuert. Der Ressourcenplaner 216 kann als das Druckerbetriebssystem betrachtet werden. Wie oben erläutert, braucht der Ressourcenplaner 216 jedoch nicht physikalisch im Drucker 218 vorgesehen zu sein. In einem Computer-Drucker-System 200 mit einer Kommunikation in nur einer Richtung kann der Ressourcenlader 216 im Hostcomputer 202 vorgesehen sein und den Druckerspeicher 222 vom Hostcomputer aus verwalten. Wenn das Computer- Drucker-System 200 über eine bidirektionale Kommunikation verfügt, dann ist der Ressourcenplaner 216 im Drucker 218 vorgesehen, damit der Drucker seinen eigenen Druckerspeicher 222 verwalten kann. Weil der Hostcomputer 202, der Drucker 218 und der Druckmechanismus 226 im Drucker alle asynchron betrieben werden, muß der Ressourcenplaner 216 den gesamten Zeitablauf steuern, damit keine Konflikte zwischen den drei asynchronen Teilen auftreten. Der Ressourcenplaner 216 initiiert und steuert den gesamten Zeitablauf des Druckers, synchronisiert den Betrieb mit dem Druckmechanismus 226 und entscheidet, wann eine bestimmte Ressource in den Druckerressourcenspeicher 220 aufgenommen wird.
- Der Ressourcenplaner 216 entscheidet auch, wann eine bestimmte Ressource aus dem Druckerressourcenspeicher 220 gelöscht wird. Wie zuvor beschrieben, ist es die Aufgabe des Ressourcenladers 214, die Sequenz des Ladens und Freigebens von Ressourcen anzugeben. Der Ressourcenplaner 216 bestimmt, wann der Drucker 218 eine bestimmte Ressource nicht mehr braucht, die zuvor durch den Ressourcenlader 214 freigegeben wurde.
- Wie der Ressourcenlader 214 hat auch der Ressourcenplaner 216 Zugriff auf die im Ressourcenassembler 208 erzeugten expliziten Abhängigkeiten. Im Gegensatz zum Ressourcenlader 214 interessiert sich der Ressourcenplaner 216 nur dafür, ob die für die aktuelle Seite erforderlichen Ressourcen im Druckerressourcenspeicher 220 vorhanden sind.
- Wenn alle Abhängigkeiten für die aktuelle Seite erfüllt sind (d. h. alle erforderlichen Ressourcen im Druckerressourcenspeicher 220 vorhanden sind), dann erzeugt der Ressourcenplaner 216 ein Ausführungssignal, das den Druckmechanismus 226 zum Drucken der Seite veranlaßt. Wie weiter unten ausführlicher beschrieben wird, muß der Druckmechanismus mit Bitmapdaten in Echtzeit versorgt werden, sobald dieser mit dem Drucken einer Seite begonnen hat, da ansonsten das Bild nicht korrekt gedruckt wird, weil der Druckmechanismus nicht in der Mitte einer Seite stoppen kann. Dabei ist zu beachten, daß ein doppelseitig druckender Drucker ein Ausführungssignal für jede Seite des Papiers erfordert (d. h. der Druckprozeß kann zwischen den Papierseiten stoppen). Der Ressourcenplaner 216 bestimmt, wann der Druckmechanismus in Echtzeit gestartet werden kann und erzeugt das Ausführungssignal, um den Druckmechanismus zum Drucken einer Seite zu veranlassen.
- Der Ressourcenplaner 216 führt ähnliche Funktionen bei sowohl einer unidirektionalen wie bei einer bidirektionalen Kommunikation durch. In einem unidirektionalen Kommunikationssystem erzeugt der Ressourcenplaner 216 ein BUSY-Flag in der Hardwareschnittstelle, das den Druckerstatus für den Hostcomputer 202 angibt. Der Ressourcenplaner entscheidet auch, wann in der Zeit eine Ressource tatsächlich aus dem Druckerressourcenspeicher 218 gelöscht wird. In einem bidirektionalen Kommunikationssystem verwaltet der Ressourcenlader 214 den Druckerspeicher 222 vom Drucker 218 aus und fordert in speziellen Anforderungen bestimmte Ressourcen vom Hostcomputer 202. Außerdem überwacht der Ressourcenplaner 216 den Druckprozeß und informiert den Hostcomputer 202, wenn eine Seite den letzten Papierstausensor im Druckmechanismus 226 passiert hat. Dadurch weiß der Hostcomputer 202, daß er die mit dieser Seite assoziierten Ressourcen nicht mehr behalten muß, um eine Fehlerbehebung vorzusehen. Der Ressourcenplaner 216 kann auch den Papierpfad für eine Druckaufgabe planen. Dies ist in großen Druckern mit mehreren Papierfächern, Papiergrößen und Papierpfaden besonders wichtig. Das Planen des optimalen Papierpfades erhöht die Gesamteffizienz der Druckaufgabe.
- Der Ressourcenausführer 224 nimmt das Ausführungssignal vom Ressourcenplaner 216 an und wandelt die RPLs zu einer Bitmap um, die durch den Druckmechanismus 226 verwendet werden kann, um die Seite tatsächlich zu drucken. Andere Ressourcen können bereits im Druckerressourcenspeicher 220 in Bitmapform vorhanden sein. Der Ressourcenausführer 224 verwendet die Ressourcen, die aktuell im Druckerressourcenspeicher 220 vorhanden sind, um die Bitmap zu erzeugen. Wie zuvor erläutert, werden einige Drucker in einem Bandmodus betrieben. Das Computer-Drucker-System 200 der vorliegenden Erfindung arbeitet mit Druckern, die in einem Bandmodus oder in einem Seitenmodus betrieben werden. Der Ressourcenausführer 224 ist auf einen Echtzeitbetrieb beschränkt, wenn ein Bandmodus verwendet wird. Das heißt, wenn der Druckmechanismus 226 in Echtzeit gestartet wurde, dann muß der Ressourcenausführer alle RPLs für ein Band jeweils in Echtzeit zu einer Bitmap umwandeln, da ansonsten ein Fehler verursacht wird. Wenn der Drucker 218 im Seitenmodus betrieben wird (im Gegensatz zum Bandmodus), dann ist keine Echtzeitbeschränkung vorgegeben. Der Ressourcenausführer 224 kann die gesamte Seite zu einer Bitmap umwandeln, die dann zum Druckmechanismus übertragen wird. Das Computer- Drucker-System 200 der vorliegenden Erfindung kann entweder im Seitenmodus oder im Bandmodus betrieben werden. Die tatsächliche Umwandlung einer RPL in eine Bitmapdatendatei ist dem Fachmann wohlbekannt und braucht deshalb hier nicht erläutert zu werden.
- Der Druckmechanismus 226 nimmt die Bitmap vom Ressourcenausführer 224 an und veranlaßt das Druckern der Bitmapdaten auf der Seite. Die Verwendung des Druckmechanismus ist dem Fachmann ebenso wohlbekannt und braucht deshalb hier nicht erläutert zu werden.
- Wenn die Bitmapdaten für eine Seite des Dokuments durch den Druckmechanismus 226 verarbeitet werden, bewegt sich das Papier durch den Drucker 218. Es sind eine Anzahl von Sensoren im Druckmechanismus 226 vorgesehen, um Fehler wie einen Papierstau oder einen Tonermangel festzustellen. Systeme aus dem Stand der Technik behalten die Bitmapdaten im Druckerspeicher, bis die Seite den letzten Papierstausensor passiert. Wenn ein Papierstau auftritt, haben die Systeme aus dem Stand der Technik die Daten bereits in Bitmapform, um die gestaute Seite neu zu drucken. Wenn das Computer-Drucker-System 200 über bidirektionale Kommunikationsfähigkeiten verfügt, dann werden die Bitmapdaten nicht im Drucker 218 behalten, sondern es werden Fehlerbehebungsdaten im Hostcomputer 202 erzeugt. Die Systeme aus dem Stand der Technik können eine scheinbar schnellere Fehlerbehebung vorsehen als die vorliegende Erfindung, weil die Bitmapdaten bereits im Druckerspeicher auf das erneute Drucken nach einem Papierstau warten. Papierstaus treten jedoch so selten während des normalen Druckprozesses auf, daß es effizienter für den gesamten Druckprozeß ist, mit der Verarbeitung von Daten für weitere Seiten fortzufahren und sich nicht mit der effizientesten Technik für die Fehlerbehebung zu befassen. Das Computer- Drucker-System 200 der vorliegenden Erfindung beschäftigt sich statt dessen mit der effizientesten Technik zum Drucken des ganzen Dokuments.
- Die Systeme aus dem Stand der Technik können die Daten für die nächste Seite nicht sofort verarbeiten, weil der Druckerspeicher gezwungen ist, die Bitmapdaten zu behalten, bis die Seite den letzten Papierstausensor passiert hat. Bei einem typischen Druckmechanismus sind es etwa zehn Sekunden nötig, um ein Papierblatt zu nehmen, ein Bild auf dem Papier zu erzeugen und das Papier in ein Papierfach auszugeben. Die vorliegende Erfindung fährt in der Erwartung, daß kein Papierstau auftritt, mit der Verarbeitung von Daten für spätere Seiten in einem Dokument fort. Während der Zeitdauer, während welcher die Systeme aus dem Stand der Technik darauf warten, daß die gedruckte Seite den letzten Papierstausensor passiert, kann das Computer-Drucker-System 200 Ressourcen zusammenstellen, die PDL in RPLs übersetzen und den Fluß der Ressourcen im Druckerressourcenspeicher 220 für mehrere Seiten verwalten.
- Bei dem unwahrscheinlichen Auftreten eines Papierstaus, verarbeitet der Hostcomputer 202 die Seite von Beginn an neu. Dies stellt keinen echten zusätzlichen Zeitaufwand dar, weil der Bediener eingreifen muß, um die gestaute Seite/die gestauten Seiten nach dem Papierstau zu entfernen. Während der Bediener die gestauten Seiten entfernt, bestimmt der Ressourcenlader 214, welche Seiten eine Fehlerbehebung erfordern, und beginnt damit, die erforderlichen Seiten und RPLs erneut in den Drucker 218 zu laden. Die expliziten Abhängigkeiten vereinfachen den Fehlerbehebungsprozeß, weil der Ressourcenlader 214 die Liste der expliziten Abhängigkeiten betrachtet, um zu bestimmen, welche Ressourcen für den Fehlerbehebungsprozeß erforderlich ist. Zum Beispiel können im Drucker 218 die Seiten mit den Nummern zwei bis fünf gestaut sein, Wobei Seite zwei und drei doppelseitig und Seite vier und fünf einseitig gedruckt sind. Wenn der Drucker 218 zuvor die Druckreihenfolge mit Seite drei (von unten nach oben), Seite zwei (von oben nach unten), Seite vier (von oben nach unten) und Seite fünf (von oben nach unten) spezifiziert hat, dann kann der Ressourcenlader 214 die expliziten Abhängigkeiten verwenden, um Ressourcen und RPLs in der effizientesten Weise zum Durchführen der Fehlerbehebung anzufordern. Diese Aktivitäten können stattfinden, während der Bediener das gestaute Papier entfernt. Das Computer-Drucker- System 200 verliert also im Vergleich zu den Systemen aus dem Stand der Technik keine Zeit für die Fehlerbehebung. Weiterhin wird die Effizienz des Druckprozesses beträchtlich durch die Annahme erhöht, daß normalerweise kein Papierstau auftritt. Das Computer- Drucker-System 200 kann also ein Dokument in viel kürzerer Zeit verarbeiten als eines der Systeme aus dem Stand der Technik.
- Wie zuvor genannt, kann das Computer-Drucker-System 200 der vorliegenden Erfindung mit einer unidirektionalen Kommunikation vom Hostcomputer 202 zum Drucker 218 oder mit einer vollständigen bidirektionalen Kommunikationskanal zwischen dem Hostcomputer 202 und dem Drucker 218 betrieben werden. Wenn die Hardware des Hostcomputers 202 oder des Druckers 218 keine bidirektionale Kommunikation unterstützen kann, dann ist nur eine unidirektionale Kommunikation möglich. Auch mit der Beschränkung einer unidirektionalen Kommunikation stellt das Computer-Drucker-System 200 der vorliegenden Erfindung eine Verbesserung gegenüber dem Stand der Technik dar. In einigen Fällen kann eine bidirektionale Kommunikation durch sowohl das Computersystem 202 wie den Drucker 218 unterstützt werden, wobei jedoch die Latenzzeit des bidirektionalen Kommunikationskanal so lang ist, daß es unmöglich ist, eine volle bidirektionale Kommunikation effizient zu unterstützen. In diesem Fall kann das Computer-Drucker-System 200 der vorliegenden Erfindung eine beschränkte bidirektionale Kommunikation zwischen dem Drucker 218 und dem Hostcomputer 202 unterstützen. Dieser Modus ist zwar nicht so effizient wie die volle bidirektionale Kommunikation, ist aber einer unidirektionalen Kommunikation vorzuziehen. Eine begrenzte bidirektionale Kommunikation ermöglicht eine bessere Fehler- und Statusbenachrichtigung des Hostcomputers als eine einfache unidirektionale Kommunikation. Die Datenverarbeitung kann dabei so fortschreiten, als ob nur eine unidirektionale Kommunikation vorgesehen wäre, wobei das Computer-Drucker-System 200 jedoch beim Auftreten von Fehlern die Fehler- und Statusinformation zum Beheben des Fehlers verwenden kann.
- Bei einigen die PCL-Sprache verwendenden Laserdruckersystemen kann eine Softwarekassette in den Drucker eingesteckt werden. Die Kassette kann zusätzliche Zeichensätze enthalten. Das Computer-Drucker-System 200 kann eine derartige Kassette verwenden, um die im Drucker vorgesehenen erforderlichen Komponenten der vorliegenden Erfindung für den Drucker 218 bereitzustellen. In einer Ausführungsform der vorliegenden Erfindung weist das Computer-Drucker-System 200 die Fähigkeit auf, in einem ersten Modus unter Verwendung der PCL oder in einem zweiten Modus unter Verwendung der vorliegenden Erfindung betrieben zu werden. In dieser Ausführungsform kann das Computer-Drucker-System 200 automatisch zwischen den zwei Modi hin und her schalten. Dies erlaubt es dem Computer- Drucker-System 200 für andere Anwendungen wie etwa DOS-Anwendungen kompatibel zu bleiben. Durch das Wechseln zwischen den zwei Modi sieht das Computer-Drucker-System 200 eine größere Kompatibilität vor als die Systeme aus dem Stand der Technik.
- Wie weiter oben erläutert, sind die Ansätze aus dem Stand der Technik zum Modusschalten langsam und komplex. Im Gegensatz dazu erlaubt das Computer-Drucker-System 200 ein schnelles und einfaches Modusschalten zwischen dem auf Ressourcen basierenden Modus der vorliegenden Erfindung und dem PCL-Modus. Dieser Ansatz erlaubt ein schnelleres Modusschalten, weil die Basissoftware oder -firmware im Drucker 218 keine vollständige Initialisierung des Druckers 218 durchführen muß. Weiterhin wird die Komplexität der neuen Software oder Firmware reduziert, weil es nicht erforderlich ist, die Grundfunktionen in die neue Firmware aufzunehmen.
- Wie im Stand der Technik macht die Basisfunktion, wenn sie nach einem Systemneustart mit einer Operation beginnt, einen Initialisierungsaufruf. Der Initialisierungsaufruf erfordert ziemlich viel Zeit, um die Hardware zu initialisieren, den Speicher zu testen und zu initialisieren, nach zusätzlichen Hardwareperipheriegeräten und nach zusätzlicher Firmware zu suchen. Wenn zusätzliche Firmware festgestellt wird, dann wird dieser die Steuerung übergeben, damit die neuen Funktion starten kann. Nach dem Initialisierungsaufruf macht die vorliegende Erfindung einen "Schnappschuß" des kompletten Zustands des Druckers 218. Dieser umfaßt den internen Zustand des Prozessors (Register, Modi) sowie den gesamten Inhalt des Druckerspeichers 222. Diese Information wird stark komprimiert und dann gespeichert. Wie in Fig. 4 gezeigt, kann ein typischer Druckerspeicher 222 1,5 Megabyte groß sein. Unmittelbar nach der Initialisierung kann der Druckerspeicher 222 jedoch stark komprimiert werden, so daß er typischerweise auf nur 8 KBytes Speicherplatz komprimiert werden kann. Dieser Schnappschuß wird als Teil des Druckerspeichers 222 gespeichert und dann vor der alten Firmware "versteckt". Die vorliegende Erfindung kann auch derart implementiert werden, daß der Schnappschuß in einen zu diesem Zweck vorgesehenen Speicher gegeben wird und nicht für die Basisfunktion verfügbar ist.
- Nach dem Komprimieren und Speichern des Zustands des Druckers 218 wird die Steuerung an die Basisfirmware zurückgegeben, um mit dem Betrieb zu beginnen. Wenn der auf Ressourcen basierende Druckermodus wegen einer Anforderung der neuen Funktion aufgerufen wird, dann beginnt der Drucker 218, die neue Firmware auszuführen. Schließlich wird wieder die Basisfunktion angefordert und die Steuerung an die Basisfirmware übergeben. Wenn dies auftritt, wird die zuvor gespeicherte Statusinformation verwendet, um den kompletten Zustand des Druckers 218 wiederherzustellen, wobei dann die Steuerung genauso an die Basisfirmware zurückgegeben wird, wie wenn die neue Firmware vom ursprünglichen Initialisierungsaufruf zurückkehrt. So ist der Zustand des Druckers 218 identisch mit dem Zustand des Druckers 218 nach dem Initialisierungsaufruf. Die vorliegende Erfindung erlaubt es dem Drucker 218, zwischen dem auf Ressourcen basierenden Modus und dem PCL-Modus zu wechseln, ohne daß der Aufwand einer kompletten Neuinitialisierung oder die zusätzliche Komplexität und der zusätzliche Aufwand der Aufnahme der Basisfunktion in die neue Firmware erforderlich sind.
- Das Verfahren der vorliegenden Erfindung ist in dem Zustandsdiagramm von Fig. 5 dargestellt. Im Zustandsblock 400 beginnt der Drucker 218 den Betrieb mit dem Initialisieren seiner internen Datenregister und mit dem Testen und Initialisieren des Druckerspeichers 222. Im Zustandsblock 402 speichert das Computer-Drucker-System 200 den Zustand des Druckers 218, indem es den Druckerspeicher 222 und alle internen Datenregister (nicht gezeigt) des Prozessors im Drucker komprimiert. Dies umfaßt interne Datenregister wie den Befehlszeiger, den Stapelzeiger und ähnliches. Im Zustandspuffer 404 werden die komprimierten Daten wie oben beschrieben in einem Zustandspuffer gespeichert. Dieser Zustandspuffer, der entweder ein Teil des Druckerspeichers 222 oder eine separate Speichereinrichtung sein kann, ist für keinen der Betriebsmodi zugreifbar. Der komprimierte Schnappschuß des Initialzustands des Druckers 218 ist also gegenüber einer Korruption durch beide Betriebsmodi geschützt.
- Wie oben erläutert, wird die Steuerung im Zustandsblock 406 an die Basisfunktion zurückgegeben. Der Drucker 218 beginnt also mit dem Betrieb im PCL-Modus. Alternativ dazu kann der Drucker 218 an die neue Funktion gegeben werden, so daß der Drucker 218 den Betrieb in dem auf Ressourcen basierenden Betriebsmodus beginnt.
- Um von der Basisfunktion im Zustandsblock 406 zum Zustandsblock 408 der neuen Funktion zu wechseln, überschreibt die vorliegende Erfindung die bestehenden Daten in den internen Datenregistern und im Druckerspeicher 222. Der Betrieb in dem auf Ressourcen basierenden Druckmodus wird weiter oben ausführlich beschreiben.
- Um von dem Zustandsblock 408 der neuen Funktion zurück zum Zustandsblock 406 der Basisfunktion zurückzukehren, dekomprimiert ein Zustandsblock 410 zum Modusschalten den komprimierten Schnappschuß des Initialzustands des Druckers 218 und stellt alle internen Datenregister sowie den gesamten Druckerspeicher 222 mit dem Zustand nach dem ursprünglichen Initialisierungsaufruf wieder her. Der Drucker 218 wird dann so betrieben, als hätte er die Initialisierung gerade erst abgeschlossen.
- Der Zustandsblock 410 zum Modusschalten prüft den Zustandspuffer 404, um zu bestimmen, ob der Inhalt geändert wurde. Der Prozeß für diese Prüfung wird im folgenden beschrieben. Wenn die Inhalte des Zustandspuffers 404 geändert wurden, gibt die vorliegende Erfindung die Steuerung an den Zustandsblock 400 zurück und zwingt den Drucker 218, eine komplette Initialisierung zu durchlaufen.
- Wie oben erläutert, umfaßt das Speichern des Zustands des Systems das Komprimieren des gesamten Speichers (typischerweise 1 bis 4 Megabyte) sowie des Zustands der Hardware in einem kleinen Speicherblock. In der vorliegenden bevorzugten Ausführungsform können der Druckerspeicher 222 und der Zustand der Hardware derart komprimiert werden, daß sie in einen 8 KByte großen Speicherblock passen.
- Das ist eine normalerweise unmöglich zu erreichende Komprimierungsrate, weil aber die Einrichtung direkt nach einem Neustart und einer Speicherinitialisierung untersucht wird, ist der Inhalt des Speichers ziemlich leer, so daß er stark komprimiert werden kann. In einigen Fällen ist es nicht einmal erforderlich, die Zustandsinformation zu komprimieren, weil die kritischen Bereiche des Speichers weniger als 8 KByte einnehmen.
- In der vorliegenden bevorzugten Ausführungsform werden der Druckerspeicher 222 und die Zustandsinformation unter Verwendung einer Lauflängencodierung (RLE) komprimiert, die eine wohlbekannte Form der Datenkomprimierung ist. Bei einer RLE-Codierung wird die Anzahl der aufeinanderfolgenden Bytes mit einem Nullwert gespeichert, um die Daten zu komprimieren. Wenn der Druckerspeicher zum Beispiel 10000 Bytes umfaßt, die alle null sind, dann speichert die RLE-Komprimierung die Zahl 10000. Es sollte dem Fachmann deutlich sein, daß viele verschiedene wohlbekannte Datenkomprimierungstechniken in Übereinstimmung mit den Prinzipien der vorliegenden Erfindung verwendet werden können.
- Der komprimierte Schnappschuß umfaßt wie in Fig. 5 gezeigt eine Prüfsumme, die an den Zustandspuffer 404 angefügt ist, um eine versehentliche Modifikation dieses Speichers festzustellen. Dies ist wegen der kritischen Natur der Daten erforderlich. Wenn ein Teil dieses komprimierten Schnappschusses modifiziert wird, verursacht dies einen Ausfall des Druckers 218, wenn der Zustand wiederhergestellt wird. Wenn die Prüfsumme angibt, daß der Schnappschuß modifiziert wurde, wird ein herkömmlicher vollständiger Neustart des Druckers 218 verwendet, um zwischen den Modi zu wechseln. Alternativ dazu können andere wohlbekannte Techniken für die Fehlerprüfung verwendet werden.
- Wie oben beschrieben beginnt der Drucker 218 den Betrieb im PCL-Modus. Das Schalten zum dem auf Ressourcen basierenden Druckbetriebsmodus erfordert einfach das Überschreiben der bestehenden Daten im Druckerspeicher 222 und der internen Datenregister im Prozessor des Druckers 218. Das Schalten von dem auf Ressourcen basierenden Druckbetriebsmodus zu dem PCL-Betriebsmodus erfordert einfach das wie oben beschriebene Wiederherstellen des Initialzustands des Druckers 218. Der Drucker 218 kann also einfach und schnell zwischen den Betriebsmodi wechseln, ohne daß die neue Firmware die alte und neue Funktion enthalten muß und ohne daß eine vollständige Initialisierung des Druckers 218 bei jedem Moduswechsel erforderlich ist.
- Die vorstehende Beschreibung nimmt auf das Moduswechseln zwischen dem auf Ressourcen basierenden Druckmodus und dem PCL-Druckmodus Bezug, wobei jedoch zu beachten ist, daß die Prinzipien der vorliegenden Erfindung auch auf andere Drucker und andere Druckbetriebsmodi angewendet werden können. Es gibt viele Firmware-Zusatzkassetten zum Einstecken in Druckern, die eine neue Funktion zusätzlich zu der Basisfunktion vorsehen. In Übereinstimmung mit den Prinzipien der vorliegenden Erfindung kann ein Moduswechseln einfach mit einem beliebigen Drucksystem erreicht werden. Entsprechend können die Prinzipien der vorliegenden Erfindung auf ein beliebiges Gerät mit mehr als einem Betriebsmodus angewendet werden.
- Dem Fachmann sollte deutlich sein, daß der revolutionäre Ansatz für das Drucken der vorliegenden Erfindung die Gesamtgeschwindigkeit des Druckprozesses beträchtlich erhöht. Durch das Überwinden von herkömmlichen Konzepten bezüglich des Vorgehens im Druckprozeß und das Nutzen der gesamten verfügbaren Rechenleistung in sowohl dem Hostcomputer wie dem Drucker erhöht die vorliegende Erfindung die Druckgeschwindigkeit mit wenig zusätzlichem Hardwareaufwand beträchtlich. Die Prinzipien der vorliegenden Erfindung können einfach auf bestehende Laserdrucker angewendet werden.
Claims (23)
1. System zum Schalten eines Druckgerätes (218) mit einem Gerätespeicher (222)
zwischen einem ersten Betriebsmodus und einem zweiten Betriebsmodus, wobei das Gerät
zu Beginn nach dem Hochfahren oder nach einem Geräteneustart in einen Initialzustand
eintritt, damit das Gerät im ersten Betriebsmodus betrieben werden kann, wobei der
Gerätespeicher im Initialzustand Initialwerte aufweist, wobei das System umfaßt:
einen Zustandspuffer (404) zum Empfangen und Speichern der Initialwerte für den
Gerätebetrieb im ersten Betriebsmodus, und
eine Aktivierungseinrichtung (410) zum selektiven Aktivieren von entweder dem
ersten oder dem zweiten Betriebsmodus, wobei die Aktivierungseinrichtung den
Gerätespeicher (222) für den Betrieb im zweiten Betriebsmodus setzt, wenn das Gerät vom ersten
Betriebsmodus zum zweiten Betriebsmodus schaltet, und wobei die gespeicherten
Initialwerte zum Wiederherstellen des Initialzustands verwendet werden, wenn das Gerät vom
zweiten Betriebsmodus zum ersten Betriebsmodus schaltet.
2. System nach Anspruch 1, wobei das Gerät interne Datenregister umfaßt und wobei
die Initialwerte auch Initialwerte für die internen Datenregister umfassen.
3. System nach Anspruch 1 oder 2, wobei der Zustandspuffer (404) ein Teil des
Gerätespeichers (222) ist, wobei dieser Teil des Gerätespeichers während des Betriebs im ersten
oder zweiten Betriebsmodus vor einer Benutzung geschützt ist.
4. System nach Anspruch 1 oder 2, das weiterhin eine Komprimierungseinrichtung (402)
zum Komprimieren des Inhalts des Gerätespeichers nach der Initialisierung umfaßt, um
einen Satz von komprimierten Initialspeicherwerten zu erzeugen, wobei die Initialwerte die
komprimierten Initialspeicherwerte umfassen.
5. System nach Anspruch 4, wobei der Zustandspuffer (404) ein Teil des
Gerätespeichers ist, wobei dieser Teil des Gerätespeichers während des Betriebs im ersten oder
zweiten Betriebsmodus vor einer Benutzung geschützt ist.
6. System nach Anspruch 1 oder 2, welches weiterhin eine Prüfeinrichtung umfaßt, um
zu bestimmen, ob der Inhalt des Zustandspuffers nach dem Speichern der Initialwerte
geändert wurde, wobei die Aktivierungseinrichtung die Prüfeinrichtung verwendet, um eine
Änderung des Inhalts des Zustandspuffers festzustellen, wobei wenn die Aktivierungseinrichtung
eine Änderung des Inhalts des Zustandspuffers feststellt, die Aktivlerungseinrichtung
veranlaßt, daß das Gerät einen Geräteneustart durchführt, um das Gerät für den Betrieb im ersten
Betriebsmodus zurückzusetzen.
7. System nach Anspruch 1 oder 2, welches weiterhin eine Prüfeinrichtung umfaßt, um
zu bestimmen, ob der Inhalt des Zustandspuffers nach dem Speichern der Initialwerte
geändert wurde.
8. System nach Anspruch 7, wobei die Prüfeinrichtung eine Prüfsumme umfaßt.
9. System nach Anspruch 1 oder 2, wobei das Gerät ein Drucker ist, der alternativ im
ersten oder zweiten Betriebsmodus betrieben werden kann, und wobei der Zustandspuffer
ein Teil der Druckerspeichers ist, wobei dieser Teil des Druckerspeichers während des
Betriebs im ersten oder zweiten Betriebsmodus vor einer Verwendung geschützt ist.
10. System nach Anspruch 9, welches weiterhin eine Komprimierungseinrichtung (402)
zum Komprimieren des Inhalts des Druckerspeichers nach dem Eintreten in den
Initialzustand umfaßt, um einen Satz von komprimierten Initialspeicherwerten zu erzeugen, wobei
die Initialwerte die komprimierten Initialspeicherwerte umfassen.
11. System nach Anspruch 9, welches weiterhin eine Prüfsumme umfaßt, um zu
bestimmen, ob der Inhalt des Zustandspuffers nach dem Speichern der Initialwerte geändert
wurde.
12. System nach Anspruch 11, wobei die Aktivierungseinrichtung die Prüfeinrichtung
verwendet, um eine Änderung des Inhalts des Zustandspuffers festzustellen, wobei wenn die
Aktivierungseinrichtung eine Änderung des Inhalts des Zustandspuffers feststellt, die
Aktivierungseinrichtung den Drucker zum Eintreten in den Initialzustand veranlaßt.
13. System nach Anspruch 9, wobei die Aktivierungseinrichtung zu Beginn den ersten
Betriebsmodus auswählt, indem sie den Betrieb des Druckers im Initialzustand aktiviert.
14. Verfahren zum Schalten eines Druckgerätes (218) zwischen einem ersten
Betriebsmodus und einem zweiten Betriebsmodus, wobei das Gerät nach dem Hochfahren oder
nach einem Geräteneustart einen Initialzustand initialisiert, damit das Gerät im ersten
Betriebsmodus betrieben werden kann, wobei das Gerät interne Datenregister und einen
Gerätespeicher umfaßt, welche im Initialzustand Initialwerte aufweisen, wobei das Verfahren
folgende Schritte umfaßt:
Speichern der Initialwerte in einem Zustandspuffer,
selektives Aktivieren des ersten und des zweiten Modus für das Gerät, wobei der
erste Modus zu Beginn des Betriebs des Gerätes ausgewählt wird und wobei der zweite
Modus durch das Setzen der Datenregister und des Speichers des Gerätes für den Betrieb
im zweiten Modus ausgewählt wird, und
selektives Schalten zwischen dem ersten Modus und dem zweiten Modus durch das
Setzen der Datenregister und des Speichers des Gerätes für den Betrieb im zweiten Modus,
wenn das Gerät vom ersten Modus zum zweiten Modus schaltet, und Verwenden der
gespeicherten Initialwerte, um den Initialzustand des Gerätes wiederherzustellen, wenn das
Gerät vom zweiten Modus zum ersten Modus schaltet.
15. Verfahren nach Anspruch 14, welches weiterhin folgende Schritte umfaßt:
Bestimmen, ob der Zustandspuffer nach dem Speichern der Initialwerte geändert
wurde,
Schalten vom zweiten Modus zum ersten Modus durch das Verwenden der
gespeicherten Initialwerte, um den Initialzustand wiederherzustellen, wenn der Bestimmungsschritt
bestimmt, daß der Zustandspuffer nicht geändert wurde, und
erneutes Initialisieren des Gerätes, wenn der Bestimmungsschritt feststellt, daß der
Zustandspuffer geändert wurde.
16. Verfahren nach Anspruch 14, welches weiterhin einen Schritt zum Komprimieren des
Inhalts des Gerätespeichers vor dem Schritt zum Speichern der Initialwerte umfaßt.
17. Verfahren nach Anspruch 14, wobei der Schritt zum Speichern der Initialwerte einen
Teil des Gerätespeichers verwendet, wobei dieser Teil des Gerätespeichers während des
Betriebs im ersten oder zweiten Modus vor einer Benutzung geschützt ist.
18. Verfahren nach Anspruch 14, wobei das Gerät ein mit einem Computer verbundener
Drucker ist, wobei das Verfahren weiterhin einen Schritt zum Komprimieren des Inhalts des
Druckerspeichers vor dem Schritt zum Speichern der Initialwerte umfaßt.
19. Verfahren nach Anspruch 18, wobei der Schritt zum Speichern des Satzes von
komprimierten Initialwerten einen Teil des Druckerspeichers verwendet, wobei dieser Teil des
Druckerspeichers während des Betriebs im ersten oder zweiten Modus vor einer Benutzung
geschützt ist.
20. Verfahren nach Anspruch 18, wobei der Schritt zum selektiven Aktivieren zu Beginn
den ersten Modus auswählt, indem er den Betrieb des Druckers im Initialzustand aktiviert.
21. Verfahren nach Anspruch 18, welches weiterhin folgende Schritte umfaßt:
Bestimmen, ob der Zustandspuffer nach dem Speichern des Satzes von
komprimierten Initialwerten geändert wurde,
Schalten von dem zweiten Modus zu dem ersten Modus durch die Verwendung des
gespeicherten Satzes von komprimierten Initialwerten, um den Initialzustand
wiederherzustellen, wenn der Bestimmungsschritt bestimmt, daß der Zustandspuffer nicht geändert
wurde, und
erneutes Initialisieren des Druckers, wenn der Bestimmungsschritt bestimmt, daß der
Zustandspuffer geändert wurde.
22. Verfahren nach Anspruch 21, wobei der Schritt zum Speichern des Satzes von
komprimierten Initialwerten einen Teil des Druckerspeichers verwendet, wobei dieser Teil des
Druckerspeichers während des Betriebs im ersten oder zweiten Modus vor einer Benutzung
geschützt ist.
23. Verfahren nach Anspruch 21, wobei der Schritt zum selektiven Aktivieren zu Beginn
den ersten Modus auswählt, indem er den Betrieb des Druckers im Initialzustand aktiviert.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/911,767 US5469533A (en) | 1992-07-10 | 1992-07-10 | Resource-oriented printer system and method of operation |
US07/912,098 US5337258A (en) | 1992-07-10 | 1992-07-10 | Cost metrics |
US07/976,204 US5467435A (en) | 1992-07-10 | 1992-11-16 | System and method for mode switching |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69326640D1 DE69326640D1 (de) | 1999-11-11 |
DE69326640T2 true DE69326640T2 (de) | 2000-04-27 |
Family
ID=27420623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69326640T Expired - Lifetime DE69326640T2 (de) | 1992-07-10 | 1993-07-09 | System und Verfahren zur Schaltung der Betriebsart eines Druckers |
Country Status (7)
Country | Link |
---|---|
US (1) | US5467435A (de) |
EP (1) | EP0578257B1 (de) |
JP (1) | JPH06202972A (de) |
KR (1) | KR940006047A (de) |
AT (1) | ATE185432T1 (de) |
CA (1) | CA2100175C (de) |
DE (1) | DE69326640T2 (de) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5617517A (en) * | 1994-09-20 | 1997-04-01 | Seiko Epson Corporation | Two-dimensional method and system for compressing bi-level images |
JP3562860B2 (ja) * | 1995-03-20 | 2004-09-08 | 株式会社沖データ | プリンタシステムおよびその印刷方法 |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US6166822A (en) * | 1998-01-20 | 2000-12-26 | Lexmark International, Inc. | Method of printing with a host based printer using an internal font |
US6954278B1 (en) | 1998-02-13 | 2005-10-11 | Lexmark International, Inc. | Dynamic printer operating system |
JP3289775B2 (ja) * | 1998-02-27 | 2002-06-10 | 日本電気株式会社 | Lsi、該lsiを備えた電子機器の制御回路および該制御回路の制御方法 |
US7054015B1 (en) * | 1999-07-02 | 2006-05-30 | Electronics For Imaging, Inc. | Printer description file format generator |
US6489972B1 (en) * | 1999-09-14 | 2002-12-03 | Hewlett-Packard Company | Dynamic internal page registration and retrieval system |
CA2589552A1 (en) * | 2004-07-21 | 2006-01-26 | Australian Postal Corporation | Improvements in or relating to tickets |
JP3879757B2 (ja) * | 2004-10-07 | 2007-02-14 | コニカミノルタビジネステクノロジーズ株式会社 | 画像処理装置、新機能追加通知方法、およびコンピュータプログラム |
US20070216696A1 (en) * | 2006-03-16 | 2007-09-20 | Toshiba (Australia) Pty. Limited | System and method for document rendering employing bit-band instructions |
EP2472397A1 (de) * | 2010-12-28 | 2012-07-04 | POLYTEDA Software Corporation Limited | Lastverteilungsterminierungsverfahren in Datenverarbeitungssystemen |
JP2020201719A (ja) * | 2019-06-10 | 2020-12-17 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4353653A (en) * | 1979-10-19 | 1982-10-12 | International Business Machines Corporation | Font selection and compression for printer subsystem |
JPS62204955A (ja) * | 1986-03-05 | 1987-09-09 | Minolta Camera Co Ltd | 文字画像発生回路 |
US5220674A (en) * | 1987-07-17 | 1993-06-15 | Digital Equipment Corporation | Local area print server for requesting and storing required resource data and forwarding printer status message to selected destination |
JPH01183729A (ja) * | 1988-01-18 | 1989-07-21 | Citizen Watch Co Ltd | メモリの自動初期化機能を備えたプリンタ |
US5108208A (en) * | 1988-12-05 | 1992-04-28 | Gardner Michael E | Allocation of memory in a font cartridge |
JP2997005B2 (ja) * | 1990-04-12 | 2000-01-11 | キヤノン株式会社 | 出力装置 |
JPH0412874A (ja) * | 1990-05-01 | 1992-01-17 | Minolta Camera Co Ltd | プリンタ制御装置 |
JP3105903B2 (ja) * | 1990-07-13 | 2000-11-06 | キヤノン株式会社 | 印刷制御装置及び印刷装置 |
EP0470782B1 (de) * | 1990-08-08 | 1996-02-14 | The Peerless Group | Verfahren und Vorrichtung zur Bildwiedergabe |
JP2562514B2 (ja) * | 1990-09-03 | 1996-12-11 | キヤノン株式会社 | 印刷制御装置及びイメージデータ描画方法 |
US5175679A (en) * | 1990-09-28 | 1992-12-29 | Xerox Corporation | Control for electronic image processing systems |
US5113355A (en) * | 1990-10-10 | 1992-05-12 | Fuji Xerox Co., Ltd. | Printer control system |
CA2041140A1 (en) * | 1990-10-12 | 1992-04-13 | Richard L. Kochis | Pcl vertical graphics scaling using macros |
-
1992
- 1992-11-16 US US07/976,204 patent/US5467435A/en not_active Expired - Lifetime
-
1993
- 1993-07-09 EP EP93111034A patent/EP0578257B1/de not_active Expired - Lifetime
- 1993-07-09 CA CA002100175A patent/CA2100175C/en not_active Expired - Lifetime
- 1993-07-09 DE DE69326640T patent/DE69326640T2/de not_active Expired - Lifetime
- 1993-07-09 AT AT93111034T patent/ATE185432T1/de not_active IP Right Cessation
- 1993-07-10 KR KR1019930013046A patent/KR940006047A/ko not_active Application Discontinuation
- 1993-07-12 JP JP22202593A patent/JPH06202972A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP0578257B1 (de) | 1999-10-06 |
KR940006047A (ko) | 1994-03-23 |
JPH06202972A (ja) | 1994-07-22 |
DE69326640D1 (de) | 1999-11-11 |
ATE185432T1 (de) | 1999-10-15 |
US5467435A (en) | 1995-11-14 |
CA2100175A1 (en) | 1994-01-11 |
EP0578257A1 (de) | 1994-01-12 |
CA2100175C (en) | 2000-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69326640T2 (de) | System und Verfahren zur Schaltung der Betriebsart eines Druckers | |
DE69328650T2 (de) | Betriebsverfahren und betriebsmittelorientiertes Druckersystem | |
DE69321045T2 (de) | Verfahren und System für dynamische Drucker "Time out" | |
DE69330324T2 (de) | Verfahren und Vorrichtung zur Kostenmessungen für Druckersysteme | |
DE69317698T2 (de) | Verfahren zum Übersetzen eines Vielzahl von Drucker-Seiten-beschreibende Sprachen | |
DE69024881T2 (de) | Drucker-Initialisierungssystem | |
DE69422076T2 (de) | Druckersystem mit Datenanalyse-Bestimmungsfähigkeit | |
US5159681A (en) | Page printer memory allocation | |
DE69709970T2 (de) | Verfahren und Gerät, um einen Auftrag für einem Drucker zu speichern | |
US5469532A (en) | System and method for font wrapping printer data | |
DE4226052C2 (de) | Drucksteuerungsverfahren und -gerät, die eine Vielzahl von Prozessoren verwenden | |
DE69024753T2 (de) | Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt | |
DE69730892T2 (de) | Verarbeitung von Rückzugspunkten zur Blatterstellung mit Techniken zur Speicherreduktion | |
DE69228675T2 (de) | Jobverteiler für Barcode-Drucker | |
DE69712592T2 (de) | Verfahren und Vorrichtung zur Verarbeitung und zum Drucken von Dokumenten | |
DE69326917T2 (de) | Drucker | |
DE4244266C2 (de) | Verfahren und Schaltungseinrichtung zum dynamischen Konfigurieren von Gerätetreibern für Computersystem-Betriebsmittel | |
DE69122358T2 (de) | Emulator für Japanisch | |
DE69616119T2 (de) | Netzwerkschnittstellenkarte für digitales Kopiergerät | |
DE19983504B4 (de) | Verbesserung der Portabilität von digitalen Bildern | |
DE69431386T2 (de) | Verfahren und Gerät zur Erzeugung eines Programms für parallele Verarbeitung | |
DE69615798T2 (de) | Drucker mit Kodeumsetzungstabellen | |
DE69322199T2 (de) | Vorrichtung und Verfahren für die Übersetzung von Druckersprachen | |
JP3652725B2 (ja) | ジョブ印刷方法 | |
DE69324182T2 (de) | Gerätunabhängige Schnittstelle für graphische Anzeigegeräte |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |