DE69723180T2 - Herunterladen eines Interpreters in einen Drucker - Google Patents

Herunterladen eines Interpreters in einen Drucker Download PDF

Info

Publication number
DE69723180T2
DE69723180T2 DE69723180T DE69723180T DE69723180T2 DE 69723180 T2 DE69723180 T2 DE 69723180T2 DE 69723180 T DE69723180 T DE 69723180T DE 69723180 T DE69723180 T DE 69723180T DE 69723180 T2 DE69723180 T2 DE 69723180T2
Authority
DE
Germany
Prior art keywords
printer
routines
code
memory
page description
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69723180T
Other languages
English (en)
Other versions
DE69723180D1 (de
Inventor
Martin Geoffrey Lexington Rivers
Christopher Mark Foster City Songer
Hugh Deral Lexington Spears
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lexmark International Inc
Original Assignee
Lexmark International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lexmark International Inc filed Critical Lexmark International Inc
Application granted granted Critical
Publication of DE69723180D1 publication Critical patent/DE69723180D1/de
Publication of DE69723180T2 publication Critical patent/DE69723180T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00278Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a printing apparatus, e.g. a laser beam printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0005Accepting output data; Preparing data for the controlling system
    • G06K2215/0011Accepting output data; Preparing data for the controlling system characterised by a particular command or data flow, e.g. Page Description Language, configuration commands
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0074Arrangements for the control of a still picture apparatus by the connected apparatus

Description

  • Diese Erfindung betrifft rechnergesteuerte Drucker, die empfangene Daten in mehr als einem Protokoll oder "Sprache" interpretieren.
  • Diese Erfindung beinhaltet den Einbau von Codeverkettungstabellen und -routinen in einen Drucker, um zu ermöglichen, dass heruntergeladener Code in den Code der Vorrichtung verkettet wird. Der primäre Zweck besteht darin, zu ermöglichen, dass ein Drucker, der Code aufweist, um eine oder mehrere spezielle Seitenbeschreibungssprachen zu interpretieren, zusätzlichen Code empfängt, der ermöglicht, dass der Drucker eine unterschiedliche Seitenbeschreibungssprache verarbeitet, wobei er viel von dem Interpretierercode verwendet, der sich schon im Drucker befindet.
  • Die FR-A-2633410, gegen die die Ansprüche abgegrenzt sind, offenbart einen Etikettendrucker mit einem Mikroprozessor und einem EEPRom, das eine Tabelle von Adressen von optionalen Routinen enthält. Die Tabelle kann von einem Hauptrechner zur Modifikation heruntergeladen werden, um die optionalen Routinen zu validieren oder zu annullieren.
  • Die EP-A-0469974 offenbart einen Drucker, der Druckjobs empfängt, die in einer beliebigen von mehreren Druckersteuersprachen codiert sind. Die ankommenden Daten werden durch den Drucker unter Verwendung von statistischen Techniken analysiert, um die verwendete PDL zu detektieren und um die geeignete Emulation auszuwählen.
  • Der QMS 1660-Drucker, der von QMS, Inc., hergestellt wird, empfängt heruntergeladene Daten, was dazu führt, dass der Drucker neue Daten interpretiert, aber wie dies durchgeführt wird, ist unbekannt. Das Herunterladen von Routinen ist bekannt. In der Drucktechnik ist es bekannt, Fontaufbereiter und kundenspezifische Operatoren herunterzuladen. Das US-Patent No. 5,222,200 an Callister at al. offenbart einen Drucker, der eingebetteten Code aufweist, um den Interpretierercode für die Sprache, die empfangen wird, automatisch zu verwenden. Das US-Patent No. 5,179,690 an Ishikawa offenbart eine rechnergesteuerte Anzeigevorrichtung, die ein Emulationssystem eingebettet aufweist, das Daten während einer Emulation substituiert. Das US-Patent 5,353,388 an Motoyama offenbart ein Dokumentenverarbeitungssystem, das auf Dokumente einwirkt, die in unterschiedlichen Sprachen gespeichert sind.
  • Obwohl Druckercode auf eine Standardweise kompiliert wird, bei der eine verfügbare Tabelle von Routinen und ihre Stelle in dem Code vorliegt, der durch den Kompilierer verwendet wird, wird diese im endgültigen Code nicht benötigt und ist nicht Teil von ihm. Demgemäß umfasste ein Druckercode vor dieser Erfindung keine Tabelle von Routinen und ihre Stelle.
  • Die Erfindung stellt einen Drucker und ein Verfahren zum Hinzufügen einer Funktion zu einem vorhandenen Drucker bereit, wie in den Ansprüchen definiert.
  • Gemäß dieser Erfindung weist der Druckercode eine Tabelle von Routinen und ihren Stellen auf. Da eine solche Tabelle sehr lang ist, wird sie vorzugsweise komprimiert. Zusätzlich umfasst der Druckercode eine Verkettungsroutine, die im Wesentlichen Standard sein kann. Zum Drucker heruntergeladene Daten, um einen zusätzlichen Interpretierer zum Drucker hinzuzufügen, rufen die Verkettungsroutine auf und stellen Befehle zur Verkettung bereit. Vorzugsweise liegen die heruntergeladenen Daten in hohem Maße in Objektcodeform vor und brauchen nur durch Hinzufügung der Stelle von Routinen von der Routinetabelle im Drucker und durch Speichern des fertiggestellten Code und der Adressen, an denen er gespeichert ist, vervollständigt zu werden. Die Routinetabelle im Drucker kann permanent im Drucker installiert sein oder zu dem Zeitpunkt heruntergeladen werden, wenn ein zusätzlicher Interpretierer gebildet werden soll.
  • Es sollte ersichtlich sein, dass der Begriff "Routine" im Kontext dieser Erfindung das Speichern von Variablen umfasst, die durch verschiedene funktionelle Routinen verwendet werden können. Variable können beliebige Daten sein, die einer Änderung unterworfen sind, wie z. B. Daten, die definieren, wenn die Bedienperson eine Papiergrößenauswahl eingegeben hat, oder Daten, die definieren, ob ein Drucken auf einer Seite des Papiers oder auf beiden Seiten (als Duplex bezeichnet) stattfinden soll.
  • Die Einzelheiten dieser Erfindung werden nur anhand eines Beispiels in Verbindung mit der beigefügten Zeichnung beschrieben, bei der 1 für einen Drucker veranschaulichend ist und 2 ein Flussdiagramm der Verkettung ist, die durch den Drucker vorgenommen wird.
  • Ein Drucker 1, der veranschaulichend in 1 dargestellt ist, ist ein Standard-Laserdrucker, der weitverbreitet durch den Rechtsnachfolger dieser Erfindung verkauft wird, der den internen Code aufweist, um PostScript(Schutzmarke)- und PCL(Schutzmarke)-Seitenbeschreibungssprachen sowie PJL, einen Steuercodesatz, den Rücksetztcode SIC (zum Setzen von Anfangsbedingungen) zu interpretieren und um von heruntergeladenen Bitmaps zu drucken, die durch Windows-(Schutzmarke)-Software erzeugt sind. Der Drucker 1 wird durch einen Mikroprozessor 3 gesteuert, der einen Standard-Festwertspeicher oder ein ROM 5 und Lese/Schreib-Speicher, DRAM, 7 aufweist. Heruntergeladener Code kann zur Verwendung durch den Mikroprozessor 3 in nichtflüchtigem Direktzugriffsspeicher 9 gespeichert sein, der ein Flash-Speicher oder Magnetplattenspeicher sein kann, wie es nun bekannt ist. Der veranschaulichte Drucker 1 weist ein optisches System 11 auf, das auf einer fotoleitenden Trommel 13 betriebsfähig ist. Die Trommel 13 ist mit Toner beaufschlagt und überträgt das Tonerbild, das durch ein optisches System 5 definiert ist, an einer Übertragungsstation 15 auf Papier 17. Das Bild wird typischerweise durch Wärme an einer Fixierstation 19 fixiert, und die fertiggestellte Druckseite wird zur Ausgabeablage 21 abgegeben. Der Drucker 1 empfängt zu interpretierenden Code und heruntergeladenen Code auf einem Kabel 23 und weist eine Bedienperson-Steuertafel auf, die als Schalter 25 dargestellt ist.
  • Der Drucker 1 ist sowohl mit einer Tabelle von Routinen als auch ihrer Adresse im ROM 5 konfiguriert. Zusätzlich ist Code zum Verketten von heruntergeladenen Codes im ROM 5 gespeichert. Es sollte ersichtlich sein, dass der Begriff "Routine" im Kontext dieser Erfindung das Speichern von Variablen umfasst, die durch mehr als eine funktionale Routine verwendet werden können. Variablen definieren Faktoren, die einer Änderung unterworfen sind, wie z. B. eine Papierablageauswahl, Interrupteingabe von einer Bedienperson-Steuertafel und jeglichen anderen solchen Faktor. Der Begriff "Symbol" wird manchmal verwendet, um sowohl funktionale Routinen als auch Variablen zu umfassen. Diese Terminologie ist hier unnötig, da der Begriff "Routine" so verstanden wird, dass er zugehörige Variablen umfasst.
  • Der Code, der heruntergeladen werden soll, um einen Interpretierer zum Drucker 1 hinzuzufügen, wird zuerst aufbereitet. Dieser herunterladbare Code wird zuerst erzeugt, indem ein Standardkompilierer und Linker verwendet wird. Der Kompilierer führt die übliche Aufgabe eines Kompilierens von allen Quellencodemodulen in Objektcodedateien aus; dann kombiniert der Linker die Objektdateien in eine gemeinsame Objektdateiformat(häufig als COFF abgekürzt)-Datei. Während die Ausgabedateien der meisten Linker bereit sind (oder nahezu bereit) ausgeführt zu werden, ist die COFF-Datei für einen heruntergeladenen Interpretierer gemäß dieser Erfindung bei weitem nicht für eine Ausführung bereit. Viele von den Funktionen und Datenvariablen, die von dem Interpretierer adressiert werden, sind im Drucker 1 resident und sind zu diesem Zeitpunkt für den Linker nicht verfügbar. Diese werden "externe" Routinen genannt. Die externen Routinen sind zu diesem Zeitpunkt nicht verfügbar, aber sie sind in einem Abschnitt der COFF-Datei eingeschlossen, der "Relokalisierungstabellen" genannt wird, die Vorschriften für weitere Operationen der in Beziehung stehenden Daten, die Rohdaten genannt werden, enthalten. Außerdem kann auf die Funktionen und Daten, die zu dem Interpretierer selbst gehören (die als "interne" Routinen bezeichnet werden), nicht vollständig eingewirkt werden, weil ihre endgültige Anordnung davon abhängt, wo sie genau durch den Mikroprozessor 3 gespeichert werden, wenn der Interpretierer mit dem Drucker 1 integriert ist. Folglich ist die COFF-Datei nur teilweise verkettet, und es wird beträchtlich mehr Datenverarbeitung erfordert, bevor der Interpretierer ausgeführt wird.
  • Ein kundenspezifisches Tool, der COFF-Datei-Präprozessor, wird als Nächstes verwendet, um die teilweise verkettete COFF-Datei zu verarbeiten. Der Präprozessor beendet jegliche Arbeit, die nicht von dem Druckersystem abhängt, und reorganisiert die Inhalte, so dass die Verarbeitung und die Betriebsmittel, die von dem Drucker 1 erfordert. werden, minimiert sind. Der Präprozessor erzeugt eine separate Datei, die einfach als die "vorverarbeitete" Datei bekannt ist, als seine Ausgabe, da sich die reorganisierte Datei nicht länger im gemeinsamen Objektdateiformat befindet. Die folgende Liste stellt die Hauptkomponenten einer COFF-Datei und ihre Reihenfolge in der COFF-Datei dar: COFF-Datei-Header, Abschnitt 1-Rohdaten, Abschnitt 2-Rohdaten ........ Abschnitt n-Rohdaten, Abschnitt 1-Relokalisierungstabellen, Abschnitt 2-Relokalisierungstabellen ........ Abschnitt n-Relokalisierungstabellen, Routinetabelle.
  • Die COFF-Datei-Header kennzeichnen im Wesentlichen, wieviel Daten in sämtlichen Komponenten sind und wo sie alle lokalisiert sind. Die Rohdatenabschnitte sind Sätze von Programmcode, verschiedene Typen von Daten oder in einigen Fällen bloß Information. Die Relokalisierungstabellen geben an, welche von den Rohdatenelementen aufgelöst werden müssen., und welche Routine in der Routinetabelle verwendet werden soll, um sie aufzulösen. Die Routinetabelle enthält alle Routinenamen (Programmfunktionen und Variablennamen), auf die in den Rohdatenabschnitten Bezug genommen wird, und eine Feststellung darüber, wo die Routine lokalisiert ist (einschließlich eines Vermerks, um anzuzeigen, ob sie ein "externes" Symbol ist).
  • Der Präprozessor verwirft zu Beginn jegliche Informationsabschnitte, da sie nur zur Dokumentation sind und keinerlei Code oder Daten enthalten, die für eine Ausführung notwendig sind. Dies wird erzielt, indem der Informationsabschnitt von Rohdaten nicht zur vorverarbeiteten Ausgabedatei geschrieben wird und der Vermerk von seinem Vorhandensein in den Headern gelöscht wird.
  • Der Präprozessor gewinnt nun nur die "externen" Routinen von der Routinetabelle und schreibt diese reduzierte Tabelle von externen Routinen zum Anfang der Ausgabedatei. Die externen Routinen sind diejenigen, die im Speicher von Drucker 1 gespeichert sind und benötigt werden, um das endgültige Verketten im Drucker 1 zum Zeitpunkt eines Herunterladens auszuführen. Die internen Routinen werden während dieser Vorverarbeitungsphase verarbeitet. Die reduzierte Externroutinetabelle ist viel kleiner als die COFF-Routinetabelle (typischerweise weniger als 10%) und ihre Platzierung an den Anfang der Datei erleichtert die Verarbeitung, die durch den Drucker 1 zum Zeitpunkt eines Herunterladens erfordert wird.
  • Der Präprozessor beginnt nun seine Relokalisationsverarbeitung. Ein Abschnitt von Rohdaten wird zusammen mit den Relokalisationstabellen desselben Abschnitts wiedergewonnen und in Verbindung mit der Routinetabelle der COFF-Datei (der nicht reduzierten) verarbeitet. Jedes Relokalisierungstabellenelement kennzeichnet ein Code- oder Datenelement im Rohdatenabschnitt, die Ziffer des zugehörigen Funktions- oder Datenvariablennamens in der Routinetabelle und den Typ von Relokalisation, der erreicht werden soll. Wenn sich ein Relokalisationstabellenelement auf einen Externroutinenamen bezieht, kann es zu diesem Zeitpunkt nicht aufgelöst werden, und wird zur Ausgabedatei weitergeleitet, um durch den Drucker 1 verarbeitet zu werden. Wenn sich das Relokalisierungstabellenelement auf eine interne Routine bezieht, löst der Präprozessor die Routine in Bezug zum zugehörigen Rohdatenabschnitt auf. Die sich ergebende Auflösung wird in das Rohdatenelement gemischt, und ein Vermerk wird zum Relokalisationstabellenelement hinzugefügt, um anzuzeigen, dass die Basisadresse davon, wo der Abschnitt schließlich durch den Drucker 1 lokalisiert wird, mit dem Rohdatenelement vermischt werden muss, um die endgültige Relokalisierung zu vervollständigen. Man beachte, dass der interne Routinename nicht länger benötigt wird, so dass er verworfen wird.
  • Wenn ein ganzer Abschnitt relokalisiert worden ist, werden seine Rohdaten zur Ausgabedatei geschrieben, gefolgt von seinen Relokalisierungstabellen. Wenn alle Abschnitte verarbeitet sind, werden die Rohdaten und Relokalisierungstabellen in der Ausgabedatei dazwischengeschrieben. Dies steht im Gegensatz zur ursprünglichen COFF-Datei, die alle Rohdatenabschnitte zusammen aufwies, gefolgt von allen Relokalisierungstabellen. Da der Drucker 1 drei Dinge benötigt, um mit der Verarbeitung zu beginnen (Rohdaten, Relokalisierungstabelle und Routinetabelle), ermöglicht diese Reorganisation, dass der Drucker 1 seine Verarbeitung etwas früher beginnt. Das normale COFF-Dateiformat würde erfordern, dass die ganze Datei heruntergeladen wird und in einem temporären Betriebsmittel beiseitegesetzt wird, bevor mit einer Verarbeitung begonnen wird. Die reorganisierte vorverarbeitete Ausgabedatei befindet sich in der Reihenfolge, die im Folgenden dargestellt ist: vorverarbeiteter Dateiheader, Externroutinetabelle, Abschnitt 1-Rohdaten, Abschnitt 1-Relokalisationstabellen, Abschnitt 2-Rohdaten, Abschnitt 2-Relokalisationstabellen........ Abschnitt n-Rohdaten, Abschnitt n-Relokalisationstabellen.
  • Dies vervollständigt die Aufbereitung von Code, der zum Drucker 1 herunterzuladen ist. Der Drucker 1 weist eine Routinetabelle im ROM 5 gespeichert auf, die jede Routine enthält, die ein derartiger Herunterladecode aufrufen könnte. Solche Routinen einschließlich Variablen können sich in einigen Anwendungen auf etwa 8.000 belaufen und etwa 15.000 oder mehr in anderen Anwendungen, abhängig von der Anzahl und Komplexität des Interpretierers oder der Interpretierer, die zum Drucker 1 heruntergeladen werden sollen. Dies sind die externen Routinen. Sämtliche von diesen externen Routinen sind notwendigerweise vorhandene Routinen, da es ein Zweck dieser Erfindung ist, einen maximalen Gebrauch von Routinen zu machen, die bereits im Drucker 1 sind. Repräsentative funktionale Routinen (wie von Variablen unterschieden), die in der Routinetabelle gefunden werden, sind wie folgt:
  • Mathematische Funktionen
    • 1. Dividiere vorzeichenbehaftete Zahl durch eine andere vorzeichenbehaftete Zahl.
    • 2. Multipliziere Zahlen.
    • 3. Dividiere vorzeichenlose Zahlen durch vorzeichenlose Zahlen.
    • 4. Berechne Quadratwurzel von Zahlen, niedrigste Genauigkeit.
    • 5. Berechne Quadratwurzel von Zahlen, doppelte Genauigkeit.
    • 6. Berechne Exponent einer Zahl, niedrigste Genauigkeit.
    • 7. Berechne Winkel, welchen mit Tangens einer gegebenen Zahl.
  • Zeichenmanipulationsdienste
    • 1. Strlen – Bestimme die Länge einer Zeichenkette.
    • 2. Strcmp – Vergleiche eine Zeichenkette mit einer anderen.
    • 3. Strncmp – Vergleiche einen Teil einer Zeichenkette mit einem anderen.
    • 4. Strncpy – Kopiere einen Teil einer Zeichenkette zu einem anderen.
    • 5. Strncat – Hänge einen Teil einer Zeichenkette an einen anderen an.
    • 6. Strcat – Hänge eine Zeichenkette an eine andere an.
    • 7. Memset – Setze einen Speicherblock auf einen gegebenen Wert.
    • 8. Memcpy – Kopieren von Speicherblock.
  • Konvertierungen
    • 1. Cnvfp2si – Konvertiere eine relle Gleitkommazahl in eine vorzeichenbehaftete Ganzzahl.
    • 2. Cnvfp2dp – Konvertiere eine relle Gleitkommazahl in eine Ganzzahl doppelter Genauigkeit.
    • 3. Cnvdp2ui – Konvertiere eine Ganzzahl doppelter Genauigkeit in eine vorzeichenlose Ganzzahl.
    • 4. Cnvdp2fp – Konvertiere eine Ganzzahl doppelter Genauigkeit in eine relle Gleitkommazahl.
    • 5. Cnvui2dp – Konvertiere eine vorzeichenlose Ganzzahl in eine Ganzzahl doppelter Genauigkeit.
    • 6. Cnvui2fp – Konvertiere eine vorzeichenlose Ganzzahl in eine relle Gleitkommazahl.
    • 7. Cnvsi2fp – Konvertiere eine vorzeichenbehaftete Ganzzahl in eine relle Gleitkommazahl.
    • 8. Cnvdp2si – Konvertiere eine Ganzzahl doppelter Genauigkeit in eine vorzeichenbehaftete Ganzzahl.
    • 9. Cnvsi2dp – Konvertiere eine vorzeichenbehaftete Ganzzahl in eine Ganzzahl doppelter Genauigkeit.
    • 10. Cnvfp2ui – Konvertiere eine relle Gleitkommazahl in eine vorzeichenlose Ganzzahl.
  • Druckfunktionen
    • 1. Führe die X-, Y-Koordinaten eines Elementes zurück.
    • 2. Erzeuge ein Liniensegment zwischen (0,0) und einem Punkt P.
    • 3. Mache einen Font überall im System verfügbar.
    • 4. Erzeuge einen Kreisbogen, der durch drei Punkte spezifiziert ist.
    • 5. Invertiere die Intensitäten in einem Bild.
    • 6. Drucke die Seite.
  • Obwohl die Routinen im Standarddrucker im Allgemeinen in demselben Speicherblock gespeichert sind, gilt dies nicht für eine die Routinen kennzeichnende Tabelle, da es typischerweise keinen Bedarf dafür gibt, dass ein Standarddrucker eine solche Tabelle aufweist, nachdem der Code kompiliert ist.
  • Das ROM 5 des Druckers 1 enthält auch Code, um das endgültige Verketten des heruntergeladenen Code auszuführen, was erfordert: Anwenden der Routinen der Routinetabelle, wie durch die Relokalisationstabellen gelenkt, sowie Bestimmen des verfügbaren Datenspeicherraums und Speichern von verkettetem Code zu einem solchen Raum. Solche Funktionen sind Standardtechniken und folglich werden sie nicht ausgearbeitet. Demgemäß trägt der heruntergeladene Code entweder einen Header, der den Verkettungsprozess des Mikroprozessors 3 aktiviert, oder dieser wird von einer Steuertafel des Druckers 1 aktiviert.
  • In der gerade beschriebenen Ausführungsform ist der resultierende Code im Drucker 1 ein neuer Interpretierer, der möglichst viel vorhandenen Code im Drucker 1 verwendet. Er verlangt deshalb keinen übermäßigen Speicherraum. Die Routinetabelle im Drucker 1 ist in Druckern nicht üblich und könnte große Mengen an Speicher erfordern. Deshalb wird die Routinetabelle komprimiert, wobei die bevorzugte Komprimierung wie folgt ist:
  • Komprimierung von Routinetabelle
  • Ein Dienstprogramm zur Komprimierung erzeugt die komprimierte Routinetabelle, indem jede Systemroutine gewonnen wird, die durch den heruntergeladenen Code benötigt werden mag. Eine Speicherstelle von sämtlichen solchen Routinen wird durch Überprüfung des ursprünglichen Betriebssystemcode des Druckers 1 gefunden. Der Name und die Adresse sind in einer verhältnismäßig kleinen Kennzeichnungsziffer codiert, und die Routinetabelle ist eine Datei, die sämtliche codierten werte enthält. Das Komprimierungsverfahren, das verwendet wird, verringert die Menge an erforderlichem Speicher für die Namen von etwa 14 Byte (ein Byte ist acht Bit) pro mittlerem Symbolnamen auf etwa 2,5 Byte und von 4 Byte pro Adresse auf etwa 3 Byte. Für ein repräsentatives System, das 10.000 Routinen enthält, ist die Gesamtverringerung von 180.000 Byte auf 55.000 Byte.
  • Jeder Routinenamen in der Routinetabelle wird durch eine Sequenz von Byte repräsentiert, die in ASCII codiert sind, was ein Byte (d. h. acht Bit) für jedes Zeichen ist. Das Komprimierungsprogramm reorganisiert die Namen in Sätze gemäß der Länge der ASCII-Codierung. Jeder Satz von Symbolen wird dann separat verarbeitet. Bei der Verarbeitung von jedem Satz von Routinen wird jede Routine mit drei Werten codiert -- der erste ist ein 14 Bit-Wert, der zweite ist ein 8 Bit-Wert und der dritte ist ein 8 Bit-Wert. Der 14 Bit-Wert ist die einfache arithmetische Summe des "zugewiesenen Werts" von jedem Zeichen im Routinenamen. Der zweite codierte Wert ist eine logische Summe (EXKLUSIV-ODER-Verknüpfung) von jedem Zeichen in dem Namen, kombiniert mit der kumulativen arithmetischen Summe der Zeichen bis zu diesem Punkt (d. h. das 1ste EXKLUSIV-ODER-verknüpft mit Null, dann zu dem 1sten hinzugefügt, das 2te dann EXKLUSIV-ODER-verknüpft mit dem Ergebnis und die Summe des 1ten und 2ten dazu hinzugefügt usw.). Der dritte codierte Wert ist eine alternierende arithmetische Summe der Zeichen in den ungeradzahligen Positionen (1ste, 3te, 5te usw.) mit einer logischen Summe der Zeichen in den gradzahligen Positionen (d. h. das 1ste zu Null hinzugefügt, dann das 2te EXKLUSIV-ODER-verknüpft mit dem Ergebnis, dann das 3te dazu hinzugefügt usw.).
  • Die Codierverfahren sind das Ergebnis von Versuch und Beobachtung. Das Ziel besteht darin, an einem codierten Ergebnis anzulangen, das gegenüber allen anderen Ergebnissen in dem Satz von allen Routinenamen einer gegebene Länge eindeutig ist. Die Menge an Speicher, die für ein codiertes Ergebnis erforderlich ist, hängt davon ab, wie schnell ein eindeutig codierter Wert erreicht werden kann (wenn der 14 Bit-Wert für einen gegebenen Namen eindeutig ist, ist kein weiteres Codieren notwendig). Der "zugewiesene Wert" jedes Zeichens, der in der arithmetischen und logischen Summe verwendet wird, ist ein willkürlicher Wert, der für jedes Zeichen anstelle seines ASCII-Zeichencode verwendet wird. Die zugewiesenen Werte sind verteilt, statt dass sie sequenziell sind, um die Wahrscheinlichkeit zu verringern, dass verschiedene Kombinationen von Zeichen dieselbe Summe erzeugen.
  • Nachdem nach Ausführung die Codierungen für alle Routinen einer gegebenen Länge erzeugt sind, wird die Liste von Codierungen analysiert. Für jede Codierung, wo der erste 14 Bit-Wert eindeutig ist, werden die Bit 00 an diese Größe vorn angehängt, um sie zu einer 16 Größe zu machen und um anzuzeigen, dass die Codierung 16-Bit ist. Die zwei acht Bit-Codierungen werden verworfen. Für jede Codierung, wo der 22 Bit-Wert (erste Codierung und zweite Codierung) eindeutig ist, werden die Bit 01 zu der Vorderseite dieser Größe hinzugefügt, um sie zu einer 24 Bit-Größe zu machen und um anzuzeigen, dass die Codierung 24 Bit ist. Für jede Codierung, wo der 30 Bit-Wert (erste Codierung und zweite Codierung und dritte Codierung) eindeutig ist, werden die Bit 1 gefolgt von 0 an diese Größe vorn angehängt, um sie zu einer 32 Bit-Größe zu machen und um anzuzeigen, dass die Codierung 32 Bit ist. Für diejenigen Codierungen, die nicht eindeutig sind, selbst aus 30 Bit, werden die Bit 1 und 1 an die 14 Bit-Arithmetiksumme vorn angehängt, die zwei acht Bit-Codierungen werden verworfen, und die ASCII-Zeichen, die den vollen Routinename umfassen, werden an ihrem Ort substituiert. Der volle Routinename ist immer eindeutig, sonst würde ein ursprünglicher Code im Drucker 1 nicht richtig kompiliert und verkettet haben.
  • Ergebnisse von diesen Codierverfahren sind: etwa zweidrittel der Systemroutinen erfordern nur den ersten codierten Wert (14 Bit-Arithmetiksumme), gut über 99 Prozent sind eindeutig, wenn man das erste und zweite Codierverfahren verwendet, und praktisch alle sind eindeutig, wenn man alle drei codierten Werte verwendet. Typischerweise brauchen bloß höchstens einer oder zwei den vollen Routinename spezifiziert aufzuweisen.
  • Das Codieren der Adressen von Routinen ist ganz verschieden. Die Adressen können jegliche Zahl zwischen 0 und 4 Milliarden sein (eine vorzeichenlose 32-Bit-Hexadezimalzahl) und eignen sich nicht gut für Codierverfahren. Es wird etwas Raum mit dem folgenden Verfahren gespart: Ein Satz von 64 "Basiswerten" wird als ein Ausgangspunkt zum Verringern der Adressen hinunter zu kleinen Zahlen vorgesehen. Für eine gegebene Adresse wird der größte Basiswert gefunden, der nicht größer als die Adresse ist. Die Differenz zwischen der Adresse und dem Basiswert wird gespeichert, wobei führende Nullen entfernt sind. Die Differenz ist normalerweise eine verhältnismäßig kleine Zahl mit einigen führenden Null-Byte.
  • Die gespeicherten komprimierten Daten bestehen aus einem Steuerbyte gefolgt von den geeigneten signifikanten Byte. Das Steuerbyte wiederum enthält zwei codierte Felder. Zwei Bit definieren die Anzahl von signifikanten Byte, die dem Steuerbyte folgen (00 für 1, 01 für 2, 10 für 3 und 11 für 4). Die anderen 6 Bit definieren, welcher von den 64 Basiswerten beim Codieren verwendet wurde. Das anschließende Decodieren des Routinewerts kehrt den Prozess um. Die ersten zwei Bit des Steuerbyte werden verwendet, um die geeignete Anzahl von signifikanten Byte zu gewinnen, führende Null-Byte werden vorn angehängt, und die resultierende Zahl wird mit dem Basiswertbetrag addiert, der durch die niederwertigeren sechs Bit des Steuerbyte spezifiziert ist. Die 64 Basiswerte sind Null und die nächsten 55 Inkremente von 10000 in hexadezimal (hex) (was 65.536 in dezimal ist) (d. h. Null, 10000 [hex], 20000 [hex] usw.). Diese variieren jeweils vom nächsten um 65.536 in dezimal, wobei der höchste 3.604.408 in dezimal ist. Diese sind die nächstgelegenen zu den Adressen der funktionalen Routinen. Die Variablen sind durch viel höhere Adresszahlen lokalisiert und um sich diesen anzupassen, werden sieben Inkremente, beginnend mit 20000000 hex (was 536.870.912 in dezimal ist), die von dem nächsten um 10000 hex (65.536 in dezimal) variieren, verwendet, wobei der höchste von diesen sieben 537.264.128 dezimal ist. Schließlich ist eine Basis 28000000 hex (671.088.640 dezimal), um sich den allerhöchsten Zahlen anzupassen.
  • Dieses Codierverfahren reduziert den mittleren Raum, der pro Routineadresse erforderlich ist, von vier Byte auf drei. In der überwältigenden Mehrheit von Fällen enthält der Unterschied zwischen der Routineadresse und dem nächstgelegenen Basiswert zwei führende Null-Byte und zwei signifikante Byte. Folglich sind drei Byte erforderlich, um sie zu codieren, statt der vier Byte, die für den einfachen nichtcodierten Wert erforderlich sein würden.
  • Verkettung durch den Drucker
  • Die Verkettungsschritte dieser bevorzugten Ausführungsform sind in 2 veranschaulicht. Zu Beginn empfängt natürlich der Drucker 1 die vorverarbeiteten Dateidaten, Funktion 20, wobei mit der Externroutinetabelle angefangen wird und dann mit Rohdaten 1 und ihren Relokalisationstabellen 1 begonnen wird, unmittelbar gefolgt von anderen Rohdaten und ihren zugehörigen Relokalisationstabellen. Eine Verkettung im Drucker 1 kann mit dem Empfang der Externroutinetabelle und den Rohdaten 1 und Relokalisationstabellen 1 beginnen.
  • Die Daten werden in Funktion 22 auf Rohdaten überprüft. Wenn ja, wird in der nächsten Funktion, Funktion 24, die Relokalisationstabelle auf Verwendung einer externen Routine überprüft. Wenn nein, werden die zugehörigen Adressen mit den Rohdaten kombiniert, und sie werden im Drucker 1 in Funktion 26 gespeichert. Wenn ja, wird in Funktion 28 der Routinename verwendet, um ihre Größe (ein Anfangselement beim Dekomprimieren) und die drei codierten Werte zu bestimmen, durch welche die Stelle der Routine in der eingebetteten Tabelle im Drucker 1 gefunden wird. Dann wird in Funktion 30 die Routine entsprechend den Befehlen von ihren Relokalisationstabellen auf die Rohdaten angewandt, und zugehörige Adressen werden mit den Rohdaten kombiniert und im Drucker 1 gespeichert.
  • Bei jeder Beendigung von Funktion 30 und Funktion 26 kann wieder Funktion 22 (obwohl nicht dargestellt) aufgerufen werden, um empfangenen Code auf weitere Rohdaten zu überprüfen. Wenn diese Operation von 22 ja ist, kehrt die Datenverarbeitung zur Funktion 24 zurück. Wenn nein, speichert die Datenverarbeitung in Funktion 32 den ganzen Code in einer permanenten Stelle (normalerweise Flash-Speicher) und schreitet zur Funktion 34 fort, bei der die heruntergeladene vorverarbeitete Datei verworfen wird und die Datenverarbeitung beendet wird.
  • Schluss
  • Es wird angemerkt, dass die Erzeugung des vorverarbeiteten Code ohne sofortige Zeit- oder Speichergrößenbeschränkungen durchgeführt wird und einmal für wiederholte Wiederverwendung durchgeführt wird. Deshalb ist ein Optimieren dieses Code zur Verwendung durch die Druckerdatenverarbeitung wünschenswert. Natürlich erfordert eine Aufbereitung des heruntergeladenen Code eine Kenntnis davon, welche Routinen im Drucker sind, und dies ist für vorhandene Drucker bekannt. Es mag wünschenswert sein, Routinen insbesondere für den Zweck hinzuzufügen, dass sie in einem zusätzlichen Interpretierer verwendet werden, gemäß dieser Erfindung. Obwohl die Tabelle von Routinen Teil des ursprünglichen Druckercode sein kann, kann sie auch zu jedem Zeitpunkt vor ihrer Verwendung in den Drucker heruntergeladen werden. Andere Variationen sind augenscheinlich und können antizipiert werden.

Claims (8)

  1. Drucker (1) mit einem Mikroprozessor (3), der den Drucker steuert, und einem Speicher, der Datenverarbeitungscode permanent speichert, um mindestens eine erste Seitenbeschreibungssprache zu interpretieren, dadurch gekennzeichnet, dass der Drucker weiteren Speicher (5) zum Speichern von Code aufweist, der eine Tabelle von Routinenamen und ihre Adressen umfasst, welche Tabelle in einem zweiten Seitenbeschreibungsspracheninterpretierer verwendet werden kann; wobei die zweite Seitenbeschreibungssprache von der ersten Beschreibungssprache verschieden ist; und wobei die Routinen, deren Namen in der Tabelle gespeichert sind, Routinen sind, die der ersten und zweiten Seitenbeschreibungssprache gemeinsam sind; wobei der Drucker weiter umfasst: Datenverarbeitungscode zum Verketten von heruntergeladenen Rohdaten in der zweiten Seitenbeschreibungssprache und heruntergeladener in Beziehung stehender Verkettungsinformation unter Verwendung der Tabelle von Routinen, wie durch die in Beziehung stehende Verkettungsinformation geleitet, um den zweiten Seitenbeschreibungsspracheninterpretierer zu bilden.
  2. Drucker nach Anspruch 1, bei dem der Speicher (5) zum Speichern von Code Permanentspeicher in dem Drucker ist.
  3. Drucker nach Anspruch 1 oder 2, bei dem die Tabelle komprimiert ist, indem das Ergebnis von arithmetischen Operationen auf den Namen von Routinen in der Tabelle für die Namen der Routinen gespeichert ist.
  4. Drucker nach Anspruch 3, bei dem die Tabelle weiter komprimiert ist, indem eine von mehr als 32 Basiszahlen, die von der Adresse von Routinen subtrahiert ist, und die Differenz zwischen der bezeichneten Basiszahl und der Adresse als die Adresse der Routinen gespeichert ist.
  5. Drucker nach Anspruch 3 und 4, bei dem jedem Zeichen der Namen der Routinen ein numerischer Wert zugewiesen ist, wobei der numerische Wert, der jedem respektiven Zeichen zugewiesen ist, von den numerischen Werten, die den anderen Zeichen zugewiesen sind, durch mindestens den Wert von zwei getrennt ist.
  6. Verfahren zum Hinzufügen von Funktion zu einem vorhandenen Drucker (1), der betriebsfähig ist, um eine erste Seitenbeschreibungssprache zu interpre tieren, wobei das Verfahren verwendet wird, um eine zweite Seitenbeschreibungssprache, die von der ersten verschieden ist, zu interpretieren, wobei das Verfahren umfasst: Aufbereiten von Datenverarbeitungscode, um die zweite Sprache zu interpretieren, welcher aufbereitete Code Verketten mit vorhandenen Routinen in dem Drucker erfordert, Eingeben des aufbereiteten Codes in den Drucker; gekennzeichnet durch Verketten des aufbereiteten Codes in dem Drucker unter Verwendung einer Tabelle von Routinenamen und ihrer Stellen, die im Speicher in dem Drucker gespeichert sind, und Speichern des verketteten Codes im Speicher des Druckers, wobei die Routinen der ersten und zweiten Seitenbeschreibungssprache gemeinsam sind.
  7. Verfahren nach Anspruch 6, bei dem der verkettete Code in Permanentspeicher in dem Drucker gespeichert wird.
  8. Verfahren nach Anspruch 6 oder 7, bei dem die Tabelle in den Speicher in dem Drucker heruntergeladen wird.
DE69723180T 1996-09-13 1997-09-11 Herunterladen eines Interpreters in einen Drucker Expired - Fee Related DE69723180T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/713,300 US5754748A (en) 1996-09-13 1996-09-13 Download of interpreter to a printer
US713300 1996-09-13

Publications (2)

Publication Number Publication Date
DE69723180D1 DE69723180D1 (de) 2003-08-07
DE69723180T2 true DE69723180T2 (de) 2004-05-27

Family

ID=24865597

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69723180T Expired - Fee Related DE69723180T2 (de) 1996-09-13 1997-09-11 Herunterladen eines Interpreters in einen Drucker

Country Status (5)

Country Link
US (2) US5754748A (de)
EP (1) EP0829817B1 (de)
JP (1) JPH10143334A (de)
AU (1) AU719873B2 (de)
DE (1) DE69723180T2 (de)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10334212A (ja) 1997-04-01 1998-12-18 Fuji Photo Film Co Ltd 付加情報付き画像ファイルからの画像プリントシステム
US6023585A (en) * 1997-05-02 2000-02-08 Webtv Networks, Inc. Automatically selecting and downloading device drivers from a server system to a client system that includes one or more devices
US6954278B1 (en) * 1998-02-13 2005-10-11 Lexmark International, Inc. Dynamic printer operating system
US6027268A (en) * 1998-04-24 2000-02-22 Lexmark International, Inc. Method and apparatus for replacing a printer with a new printer of a different type
JP2000025305A (ja) * 1998-07-08 2000-01-25 Seiko Epson Corp 通信装置付きプリンタ
JP2000075989A (ja) * 1998-09-03 2000-03-14 Canon Inc リモート操作可能な装置及びそのリモート操作方法並びにリモート操作システム
US7103532B1 (en) 1998-12-31 2006-09-05 International Business Machines Corp. System and method for evaluating character in a message
US6718519B1 (en) 1998-12-31 2004-04-06 International Business Machines Corporation System and method for outputting character sets in best available fonts
US6760887B1 (en) 1998-12-31 2004-07-06 International Business Machines Corporation System and method for highlighting of multifont documents
US7031002B1 (en) 1998-12-31 2006-04-18 International Business Machines Corporation System and method for using character set matching to enhance print quality
US6813747B1 (en) 1998-12-31 2004-11-02 International Business Machines Corporation System and method for output of multipart documents
US6539118B1 (en) 1998-12-31 2003-03-25 International Business Machines Corporation System and method for evaluating character sets of a message containing a plurality of character sets
US7039637B2 (en) 1998-12-31 2006-05-02 International Business Machines Corporation System and method for evaluating characters in an inputted search string against a character table bank comprising a predetermined number of columns that correspond to a plurality of pre-determined candidate character sets in order to provide enhanced full text search
US6718378B1 (en) * 1999-04-30 2004-04-06 Canon Kabushiki Kaisha Device management information processing apparatus method and storage medium
US6424950B1 (en) * 1999-05-10 2002-07-23 Xerox Corporation Remote feature delivery for output devices
US7054015B1 (en) * 1999-07-02 2006-05-30 Electronics For Imaging, Inc. Printer description file format generator
US6694384B1 (en) 1999-07-13 2004-02-17 Bell & Howell Document Management & Products Company Method and system to remotely configure business office devices to user defined parameters
US7191114B1 (en) 1999-08-27 2007-03-13 International Business Machines Corporation System and method for evaluating character sets to determine a best match encoding a message
US6489972B1 (en) * 1999-09-14 2002-12-03 Hewlett-Packard Company Dynamic internal page registration and retrieval system
US6487609B1 (en) * 1999-10-01 2002-11-26 Hewlett-Packard Company Method and system for communicating event messages between a peripheral device and a client computer
US6829707B1 (en) 2000-02-11 2004-12-07 International Business Machines Corporation Method and system for downloading encrypted font scripts to a print server
US6781710B1 (en) 2000-03-27 2004-08-24 Hewlett-Packard Development Company, L.P. Print job capture subsystem with pass-through support
US7526775B2 (en) * 2000-05-17 2009-04-28 Aol Llc, A Delaware Limited Liability Company Component installation tool
US7733521B1 (en) 2000-07-05 2010-06-08 Lexmark International, Inc. Printer apparatus with selectable photo enhancement project and settings storage dynamically definable user interface and functions and template definition
US6915433B1 (en) 2000-09-28 2005-07-05 Sumisho Computer Systems Corporation Securely extensible component meta-data
US7023566B2 (en) * 2000-12-12 2006-04-04 Xerox Corporation Page description language on demand printing
US20020152336A1 (en) * 2001-04-17 2002-10-17 Frank Tso System and method of installing a driver of an expansion card on a portable electronic device
US20020194583A1 (en) * 2001-04-27 2002-12-19 Masayuki Kitagawa System and method for automatically transferring data to a host
US6647437B2 (en) * 2001-05-15 2003-11-11 Lexmark International, Inc. Method for automatically detecting and processing binary postscript print jobs
US20030051044A1 (en) * 2001-09-12 2003-03-13 Parry Travis J. System and method for facilitating generation of hard copies
US7430736B2 (en) * 2001-10-03 2008-09-30 Toshiba Tec Kabushiki Kaisha Download and installation of software from a network printer
US7917862B2 (en) * 2001-10-26 2011-03-29 Hewlett-Packard Development Company, L.P. System and method for improving the performance of a plurality of peripheral devices
US20030084257A1 (en) * 2001-10-30 2003-05-01 Mowery Keith R. Flash emulator
US7171468B2 (en) * 2001-11-10 2007-01-30 Kabushiki Kaisha Toshiba System and method for accessing a document management repository
US20040205675A1 (en) * 2002-01-11 2004-10-14 Thangaraj Veerappan System and method for determining a document language and refining the character set encoding based on the document language
JP4095448B2 (ja) * 2002-01-24 2008-06-04 キヤノン株式会社 ネットワークシステム、画像処理装置、情報処理装置、画像処理装置の制御方法及び情報処理装置の制御方法
US8699053B2 (en) * 2002-01-24 2014-04-15 Hewlett-Packard Development Company, L.P. System and method for mobile printing from a desktop operating system using a portable computing device
US7158248B2 (en) * 2002-02-07 2007-01-02 Hewlett-Packard Development Company, L.P. Control of software via bundling
US7107331B2 (en) * 2002-03-25 2006-09-12 Kabushiki Kaisha Toshiba System and method for configuring digital image devices
US20030196007A1 (en) * 2002-04-12 2003-10-16 Baron John M. Device-resident driver system and method
US20030200353A1 (en) * 2002-04-19 2003-10-23 Vikas Dogra Browser-implemented upload/download of a driver
JP4333084B2 (ja) * 2002-06-17 2009-09-16 富士ゼロックス株式会社 画像形成システム及びプログラム
US7831969B2 (en) * 2002-08-13 2010-11-09 Brother Kogyo Kabushiki Kaisha Driver installing system for network devices
EP1398948B1 (de) * 2002-09-13 2013-11-06 Ricoh Company, Ltd. Bilderzeugungsgerät, Verfahren dafür und Computerlesbares Speichermedium
CN100474883C (zh) * 2002-09-13 2009-04-01 株式会社理光 成像装置及其方法
US20040175194A1 (en) * 2003-03-04 2004-09-09 Huffman John W. Imaging devices, imaging systems, imaging methods, and real estate advertising methods
US20050068559A1 (en) * 2003-09-30 2005-03-31 Ferlitsch Andrew R. Enabling a heterogeneous imaging device to operate as a homogeneous device
US20050094174A1 (en) * 2003-10-20 2005-05-05 Cunnagin Stephen K. All-in-one printing system having an operator panel
US7715027B2 (en) * 2004-01-23 2010-05-11 Sharp Laboratories Of America, Inc. Method and apparatus for embedded driver download using raw imaging protocol
JP4476642B2 (ja) * 2004-02-19 2010-06-09 株式会社沖データ 画像形成装置及び画像形成方法
US8437020B2 (en) * 2004-05-13 2013-05-07 Sharp Laboratories Of America, Inc. System and method for printer emulation
KR100544203B1 (ko) * 2004-05-31 2006-01-23 삼성전자주식회사 네트워크 인쇄 방법 및 시스템
US8164785B2 (en) * 2004-06-15 2012-04-24 Sharp Laboratories Of America, Inc. Method and apparatus for selecting printing devices according to resource availability
US7251052B2 (en) * 2004-06-15 2007-07-31 Sharp Laboratories Of America, Inc. Method and apparatus for selecting job control device profiles
US7821657B2 (en) * 2004-09-14 2010-10-26 Sharp Laboratories Of America, Inc. Continuous raster image processing control across print jobs
JP4910585B2 (ja) * 2006-09-14 2012-04-04 富士ゼロックス株式会社 アプリケーション共用システム、装置およびプログラム
US20080229210A1 (en) * 2007-03-14 2008-09-18 Akiko Bamba Display processing system
EP2349729A4 (de) * 2008-10-27 2012-09-05 Sato Chishiki Zaisan Kenkyusyo Eine programmskriptsprache verwendende etikettendrucker-api
MY161493A (en) * 2009-06-08 2017-04-14 Sato Holdings Kk System and method for injecting run-time programming code in a printing device
KR20120109665A (ko) * 2011-03-23 2012-10-08 삼성전자주식회사 무선랜 액세스 포인트를 기반으로 하는 정보 푸시 서비스 방법 및 장치 그리고 시스템
JP5727067B2 (ja) * 2014-04-09 2015-06-03 サトーホールディングス株式会社 印刷装置へランタイムプログラミングコードを導入するためのシステム及び方法
US10250437B2 (en) * 2015-10-29 2019-04-02 Arista Networks, Inc. Method and system for configuring network devices

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8810387D0 (en) * 1988-05-03 1988-06-08 Altham D R S Printer control device
CA1327851C (en) * 1988-06-22 1994-03-15 Amy S. Christopher Reconfigurable printer
JPH02120988A (ja) * 1988-09-02 1990-05-08 Tektronix Inc データ処理パイプライン装置
US5140674A (en) * 1988-09-23 1992-08-18 Hewlett-Packard Company Text and color printing system
JPH0293725A (ja) * 1988-09-29 1990-04-04 Mitsubishi Electric Corp 表示エミユレーシヨン装置
FR2651946A1 (fr) * 1989-09-13 1991-03-15 Decimal Snc P Skalli Cie Procede d'adaptation d'une imprimante a une fonction de telecopie autonome, dispositif et application s'y rapportant.
US5091747A (en) * 1989-11-16 1992-02-25 Irving Tsai Method and apparatus for converting a conventional copier into an electronic printer
US5454067A (en) * 1989-11-16 1995-09-26 Tsai; Irving Method and apparatus for converting a conventional copier into an electronic printer
US5293466A (en) * 1990-08-03 1994-03-08 Qms, Inc. Method and apparatus for selecting interpreter for printer command language based upon sample of print job transmitted to printer
US5179610A (en) * 1991-04-19 1993-01-12 Trimedyne, Inc. Connector for coupling of laser energy
JP2661416B2 (ja) * 1991-06-29 1997-10-08 ブラザー工業株式会社 印字システム
EP0532837A1 (de) * 1991-08-19 1993-03-24 Oki America, Inc. Integriertes multifunktionelles Dokumentenverarbeitungssystem
US5353388A (en) * 1991-10-17 1994-10-04 Ricoh Company, Ltd. System and method for document processing
US5544045A (en) * 1991-10-30 1996-08-06 Canon Inc. Unified scanner computer printer
US5222200A (en) * 1992-01-08 1993-06-22 Lexmark International, Inc. Automatic printer data stream language determination
US5483624A (en) * 1992-03-27 1996-01-09 Monarch Marking Systems, Inc. Programmable hand held labeler
US5446837A (en) * 1992-04-30 1995-08-29 Ricoh Company, Ltd. Method and system to process resources in a document processing language
US5239621A (en) * 1992-06-26 1993-08-24 Lexmark International, Inc. Printer with flash memory
US5499108C1 (en) * 1992-07-29 2001-01-16 Primax Electronics Ltd Document-driven scanning input device communicating with a computer
EP0585523B1 (de) * 1992-09-03 1998-12-09 Hewlett-Packard Company Automatische Sprachgrenzerkennung für ein Peripheriegerät, das eine Vielzahl von Steuersprachen unterstützt
US5526469A (en) * 1994-06-14 1996-06-11 Xerox Corporation System for printing image data in a versatile print server
US5502797A (en) * 1994-10-04 1996-03-26 Lexmark International, Inc. Apparatus with flash memory control for revision
US5745748A (en) * 1994-12-09 1998-04-28 Sprint Communication Co. L.P. System and method for direct accessing of remote data
US5905852A (en) * 1996-02-16 1999-05-18 Lexmark International, Inc. Distributed print processing
US5937150A (en) * 1997-02-10 1999-08-10 Toshiba America Information Systems, Inc. LCD panel controlled by two process elements

Also Published As

Publication number Publication date
EP0829817B1 (de) 2003-07-02
AU719873B2 (en) 2000-05-18
JPH10143334A (ja) 1998-05-29
US5754748A (en) 1998-05-19
US6091508A (en) 2000-07-18
AU3752997A (en) 1998-03-19
DE69723180D1 (de) 2003-08-07
EP0829817A1 (de) 1998-03-18

Similar Documents

Publication Publication Date Title
DE69723180T2 (de) Herunterladen eines Interpreters in einen Drucker
DE60007091T2 (de) Programmierbare vorrichtung zur extraktion und analyse von daten
DE3606869C2 (de) Vorrichtung zur Datenkompression
DE10027222B4 (de) Verfahren und zentrales Drucksystem zum Verarbeiten eines Druckauftrags in einem Netzwerk unter Verwendung von ausgewählten Druckerattributen
EP1213644A2 (de) Drucksystem und Verfahren zur Individualisierung eines Druckauftrags
DE69631720T2 (de) Verfahren und Vorrichtung zum Drucken von Mehrfachkopien
DE69636707T2 (de) Druckersystem, Datenverarbeitungsgerät und Datenverarbeitungsverfahren
DE10101346B4 (de) Verfahren zum automatischen Umsetzen von Daten, die in einem bestimmten Laufzeitcodierungssystem erzeugt wurden, für die Verarbeitung in einem anderen Laufzeitcodierungssystem
DE4313959C2 (de) Einrichtung und Verfahren zum Steuern der Darstellung eines Dokuments
DE3911465A1 (de) Verfahren zur konfiguration technischer systeme aus komponenten
DE19822025A1 (de) Reduzieren der Speicherfragmentierung durch Mischen und Neuverteilen von vorher verteilten Seitenstreifen
DE4313958C2 (de) Einrichtung und Verfahren zum Steuern der Darstellung eines Dokuments
EP1347599B1 (de) Verfahren und Protokolltester zum Dekodieren gemäss einer Protokollbeschreibung kodierter Daten
DE69933323T2 (de) Kompiler
DE10252797B4 (de) Verfahren und System zum Erstellen von Dokumentenvorlagen mit Ressourcenverwaltung
DE102008012329B4 (de) Verfahren, Drucksystem und Computerprogramm zum Erzeugen und Verarbeiten von Dokumentendatenströmen
DE4336500A1 (de) Datenverarbeitungseinrichtung
EP1182547A1 (de) Programmkopplungsmethode
DE69731574T2 (de) Kompiliergerät und -verfahren
DE19816895A1 (de) Druckerspeicher-Verstärkung
DE10056825C2 (de) Verfahren, Vorrichtung und Computerprogramm zum Erzeugen eines Zufallstestcodes
DE60130710T2 (de) Bildverarbeitungsverfahren und -vorrichtung zum Ausführen von Prozessen in Abhängigkeit von Darstellungsbefehlen
DE19540849C2 (de) Verfahren zum Erstellen von Druckdaten
DE10105953A1 (de) Direktes Drucken von verkapseltem PDF
DE69911370T2 (de) Drucken von Dokumenten aus einem Rechner

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee