DE69637125T2 - Optimaler zugriff auf elektronische dokumente - Google Patents

Optimaler zugriff auf elektronische dokumente Download PDF

Info

Publication number
DE69637125T2
DE69637125T2 DE69637125T DE69637125T DE69637125T2 DE 69637125 T2 DE69637125 T2 DE 69637125T2 DE 69637125 T DE69637125 T DE 69637125T DE 69637125 T DE69637125 T DE 69637125T DE 69637125 T2 DE69637125 T2 DE 69637125T2
Authority
DE
Germany
Prior art keywords
page
objects
document
shared
display
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
Application number
DE69637125T
Other languages
English (en)
Other versions
DE69637125D1 (de
Inventor
Edward R. Los Angeles ROWE
Eswar Sunnyvale PRIYADARSHAN
Kenneth S. Palo Alto ANDERSON
Nabelle A. Mountain View AL-SHAMMA
Edward A. Mountain View TAFT
Elizabeth M. Los Gatos MCQUARRIE
Richard J. Palo Alto COHN
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.)
Adobe Inc
Original Assignee
Adobe Systems 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27415122&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69637125(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US08/533,875 external-priority patent/US5781785A/en
Priority claimed from US08/569,000 external-priority patent/US5737599A/en
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of DE69637125D1 publication Critical patent/DE69637125D1/de
Application granted granted Critical
Publication of DE69637125T2 publication Critical patent/DE69637125T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/123Storage facilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich allgemein auf die Speicherung und Wiedergewinnung bzw. Rückholung von Daten für ein Computersystem, und genauer auf ein Verfahren und eine Vorrichtung zum Optimieren von auf Seiten basierenden Datendokumenten für eine schnelle Rückholung bzw. Beschaffung über Netzwerke, und auf ein Verfahren und eine Vorrichtung zum Zugreifen auf derartige optimierte Dokumente. Die vorliegende Erfindung bezieht sich auch auf Verfahren und Vorrichtungen für die Bearbeitung und Anzeige von elektronischen Dokumenten, und spezifischer auf die Bearbeitung und Anzeige von derartigen Dokumenten, wenn sie über Netzwerke rückgeholt werden.
  • Es wurde zunehmend üblich, Dokumente in elektronischer Form zu erzeugen, zu übertragen und anzuzeigen. Elektronische Dokumente haben eine Anzahl von Vorteilen gegenüber Papierdokumenten, beinhaltend ihre Einfachheit einer Übertragung, ihre kompakte Speicherung und ihre Fähigkeit, editiert und/oder elektronisch manipuliert bzw. gehandhabt zu werden. Ein elektronisches Dokument hat typischerweise einen Informationsinhalt bzw. -content (wie Text, Graphiken und Bilder) und Formatierinformation, welche angibt, wie der Inhalt anzuzeigen ist. Mit neuerlichen bzw. neuen Fortschritten in der Multimedia Technologie können Dokumente nun auch Ton, Video einer vollständigen Bewegung und andere Multimedia Inhalte beinhalten.
  • Ein elektronisches Dokument wird durch einen Autor, Distributor bzw. Verteiler oder Herausgeber (der als "Heraus geber" hierin bezeichnet wird) zur Verfügung gestellt, welcher häufig wünscht, daß das Dokument mit dem Aussehen gesehen wird, mit welchem es erzeugt wurde. Dies erzeugt jedoch ein Problem, daß die elektronischen Dokumente typischerweise weit verbreitet vertrieben werden und somit auf einer großen Vielzahl von Hardware- und Softwareplattformen gesehen werden können. Beispielsweise können die Videomonitore, die verwendet werden, um das Dokument zu sehen, in der Größe, Auflösung, usw. variieren. Weiterhin besitzen die verschiedenen Softwareplattformen, wie DOS, Microsoft WindowsTM und MacintoshTM, all ihre eigenen Anzeige-Eigenheiten. Auch wird jeder Benutzer oder "Leser" des elektronischen Dokuments seine oder ihre persönlichen Betrachtungs- bzw. Ansichtspräferenzen bzw. -vorlieben besitzen, welche, falls möglich, aufgenommen werden sollten.
  • Eine Lösung für dieses Problem ist es, ein "tragbares elektronisches Dokument" zur Verfügung zu stellen, welches auf einer Vielzahl von unterschiedlichen Plattformen gesehen und manipuliert werden kann und in einem vorbestimmten Format präsentiert werden kann, wo das Aussehen des Dokuments, wie es durch einen Leser gesehen ist bzw. wird, so ist, wie es durch den Herausgeber beabsichtigt war. Ein derartiges vorbestimmtes Format ist das Portable Document FormatTM (PDFTM), das durch Adobe Systems, Inc. in Mountain View, Kalifornien entwickelt ist. Ein Beispiel von auf Seiten basierender Software zum Ausbilden bzw. Erzeugen, Lesen und Anzeigen von PDF Dokumenten ist die AcrobatTM Software, ebenfalls von Adobe Systems, Inc. Die Adobe Acrobat Software basiert auf Adobe's PostScript® Technologie, welche formatierte Seiten eines Dokuments in einer vorrichtungsunabhängigen Weise beschreibt. Ein Acrobat Programm auf einer Plattform kann ein PDF Dokument anzeigen, editieren, drucken und kommentieren, das durch ein anderes Acrobat Programm erzeugt ist, das auf einer unterschiedlichen Plattform läuft, unabhängig von der Art einer verwendeten Computerplattform. Ein Dokument in einem bestimmten Format oder einer Sprache kann in ein PDF Dokument unter Verwendung von Acrobat übersetzt bzw. übertragen werden. Ein PDF Dokument kann schnell auf irgendeiner Computerplattform angezeigt werden, das das Aussehen aufweist, das durch den Herausgeber beabsichtigt ist, was es dem Herausgeber ermöglicht, das endgültige Aussehen des Dokuments zu steuern bzw. zu regeln bzw. zu kontrollieren.
  • Eine relativ neue Anwendung für tragbare elektronische Dokumente ist die Wiedergewinnung bzw. Rückholung von derartigen Dokumenten aus dem "Internet", dem global zugreifbaren Netzwerk von Computern, welches kollektiv eine große Menge und Vielzahl von Information für Benutzer zur Verfügung stellt. Aus Diensten bzw. Services des Internet, wie dem World Wide Web, kann der Benutzer Daten von Internet Netzwerkstellen wiedergewinnen oder "herunterladen" und die Daten anzeigen, welche Information beinhalten, die als Text in verschiedenen Schriftsätzen, Graphiken, Bildern und dgl. präsentiert sind, die ein Aussehen aufweisen, das durch den Herausgeber beabsichtigt ist. Ein File- bzw. Dateiformat, wie das PDF, welches jeglicher Plattform erlaubt, ein Dokument zu betrachten, das ein Aussehen aufweist, wie es durch einen Herausgeber gedacht ist, ist somit von großem Wert, wenn Files bzw. Dateien von derartig weit verbreitet zugreifbaren und von einer Plattform unabhängigen Netzwerkquellen, wie dem Internet, heruntergeladen werden.
  • Ein Problem mit früheren auf Seiten basierenden Download- bzw. Herunterladeverfahren ist jenes, daß alle Daten eines Dokuments typischerweise heruntergeladen werden, bevor irgendein Teil bzw. Abschnitt des Dokuments dem Benutzer angezeigt wird. Somit muß der Benutzer warten, bis ein gesamtes Dokument heruntergeladen ist, bevor er eine Seite oder einen anderen Abschnitt des Dokuments auf dem Anzeigeschirm sieht. Dies kann unangenehm sein, wenn der Benutzer wünscht, lediglich einen Abschnitt des Dokuments zu sehen, beispielsweise lediglich spezifische Seiten oder eine spezifische Anzahl von aufeinanderfolgenden Seiten eines Dokuments zu sehen. Einige Suchverfahren erlauben es, ein Wort in einem Dokument zu suchen, und werden lediglich den Abschnitt des Dokuments herunterladen, welcher das gesuchte Wort beinhaltet. Jedoch ist dieser Abschnitt des Dokuments ein isolierter getrennter Abschnitt, welcher keine Verbindung mit dem Rest des Dokuments aufweist. Wenn der Benutzer wünscht, die nächste Seite nach dem heruntergeladenen Abschnitt zu sehen, muß er oder sie in unbequemer Weise entweder das gesamte Dokument herunterladen oder einen Suchbegriff auf der nächsten Seite des Dokuments spezifizieren.
  • Acrobat und ähnliche Programme zum Anzeigen von tragbaren elektronischen Dokumenten, wie PDF Dokumenten, sind häufig auf Seiten basierend, was bedeutet, daß das Programm typischerweise eine gewünschte Seite des Dokuments auf einmal bzw. zu einer Zeit organisiert und anzeigt. Typischerweise wurde das gesamte Dokument auf einmal heruntergeladen, worauf gewünschte Seiten angezeigt werden. Jedoch ist Acrobat dienlich, eine Seite des Dokuments auf einmal aus einem Dokumentenfile herunterzuladen, während es immer noch einem Benutzer erlaubt, andere Seiten des Dokuments geeignet bzw. bequem auszuwählen. Jedoch sind für derartige, auf Seiten basierende Formate die Dokumentendaten üblicherweise nicht aufeinanderfolgend in einer Seiten reihenfolge innerhalb einer Datei, Datenstruktur oder anderen Sammlung von Dokumentdaten ("Dokumentenfile", wie dies hierin bezeichnet wird) gespeichert. Beispielsweise kann ein Dokumentenfile in dem PDF Format eine Seite speichern, die Objekte, wie Seiteninhaltobjekte (beinhaltend Text, Graphik-Formen, Anzeigeinstruktionen, usw.) und Bildobjekte aufweist. Jedoch können die Objekte in dem Dokument in einer verteilten oder nicht miteinander verbundenen Weise gespeichert sein. Beispielsweise können Abschnitte bzw. Teile des Seiteninhaltobjekts in unterschiedlichen Plätzen in einem Dokumentenfile verteilt sein, und geteilte bzw. gemeinsam genutzte Objekte, wie Schriftsätze, können irgendwo in dem File gespeichert sein. Geteilte bzw. gemeinsam genutzte Objekte, wie Schriftsätze bzw. Fonts, können auch in Files bzw. Dateien, die von dem Dokumentenfile verschieden sind, und selbst auf einem gesonderten Computer gespeichert sein, oder können durch ein Ressourcenservice, wie einen Fontserver, verfügbar gemacht werden. Da die Ausgabeanzeigevorrichtung die Seiteninhalte und gemeinsam genutzte Objekte basierend auf Zeigern zu betroffenen Objekten anzeigt, müssen Objekte nicht sequentiell oder kontinuierlich bzw. aneinander anschließend in dem Dokumentenfile gespeichert werden, und sind typischerweise in einer nicht miteinander verbundenen Weise gespeichert.
  • Diese nicht miteinander verbundene Datenspeicherung für Seiten kann zu Problemen führen, wenn versucht wird, eine spezifische Seite eines Dokuments herunterzuladen, die durch den Benutzer gewünscht ist. Ein Hauptproblem sind Zeitverzögerungen, die durch eine Herstellung von mehrfachen Verbindungen (oder mehrfachen Anfrage-Antwort-Transaktionen) bewirkt werden, wenn Daten heruntergeladen werden. Beispielsweise beginnt ein Anzeige- bzw. Ansichtspro gramm zum Anzeigen von auf Seiten basierenden Daten auf einem Client- bzw. Clientcomputer, ein PDF File (oder ein analoges Format) von einem entfernten Host- bzw. Hostcomputer herunterzuladen. Das Ansichtsprogramm stellt eine Verbindung zu dem Host her (oder initiiert eine Transaktion mit diesem) und lädt Daten von dem ersten Abschnitt bzw. Teil der Seite herunter, und muß dann eine weitere Verbindung zu (oder Transaktionen mit) dem Host durchführen, um den nächsten, nicht miteinander verbundenen Abschnitt der Seite wieder zu entnehmen. Dies hat die Wirkung, daß das Herunterladen der Seite verlangsamt wird, da jede Verbindung (und jede Transaktion) eine Zeitverzögerung und einen Overhead aufweist, der damit assoziiert ist. Der Benutzer, der die Seite anfragt bzw. anfordert, muß somit mehrere Sekunden warten, bevor der Betrachter alle Daten für die Seite erhält und die Seite anzeigt. Dieses Problem ist erschwert, wenn Schriftsätze bzw. Fonts oder andere derartige referenzierte Objekte auf der Seite enthalten sind, da noch eine andere Verbindung zu (oder Transaktion mit) dem Host hergestellt werden muß, um Objekte zu erhalten bzw. zu holen, bevor die Seite angezeigt werden kann.
  • Die Zeitverzögerungen für ein Herunterladen einer Seite können noch länger werden, wenn für eine zufällig zugegriffene Seite gewünscht wird, durch einen Benutzer gesehen zu werden. In PDF Files sind bzw. werden Objekte in einem "Seitenbaum" zur Verfügung gestellt, welchen der Betrachter konsultiert, um zu bestimmen, wo in dem Dokumentenfile die Wurzel einer zufällig zugegriffenen Seite positioniert ist. Der Seitenbaum ist eine Datenstruktur, in welcher jeder Knoten besucht werden muß, um alle Kinderobjekte in dem Baum zu bestimmen. Somit müssen viele Seitenknoten besucht bzw. gesichtet werden, um zu bestimmen, wo ein Seiten wurzelobjekt in dem Dokumentenfile angeordnet ist. Der Seitenbaum kann somit sehr groß sein und ein Herunterladen desselben von dem Dokument verlangsamt das Herunterladeverfahren. Zusätzlich ist der Seitenbaum häufig so groß oder nicht verbunden, so daß zahlreiche Verbindungen zu (oder Transaktionen mit) dem Host erforderlich sind, um ihn herunterzuladen.
  • Daher besteht ein Erfordernis für ein Verfahren und eine Vorrichtung zum Bereitstellen von optimierten, auf Seiten basierenden Dokumenten und Herunterladen von gewünschten Seiten von derartigen Dokumenten, ohne daß eine übermäßige Verzögerung bewirkt wird, bevor eine Seite oder Teile bzw. Abschnitte einer Seite dem Benutzer angezeigt wird bzw. werden.
  • EP 0 631 231 A2 offenbart ein Verfahren zum Verwenden eines Rollbalkens, um exakte Seiten eines Dokuments ohne Herunterladen von unerwünschten Seiten des Dokuments auszuwählen und zu sehen.
  • US 4754326 offenbart ein Informationsentnahmesystem unter Verwendung von Datenbankmitteln, die Information speichern und sie in Seiten organisieren, die mit Schlüsselworten bzw. Keywords assoziiert sind. Ein Schlüsselcode kann mit einer Tabelle abgestimmt werden, um eine Basisseite von einem Hostcomputerspeicher zu holen, wobei diese Seite dann auf einem Fernsehempfänger angezeigt wird.
  • Adobe Systems Incorporated: "Portable document format reference manual" 1993, Addison-Wesley Publishing Company, New York, offenbart ein auf Seiten basierendes Dokumentenfile unter Verwendung von Querreferenztabellen. Eine Kreuz- bzw. Querverweistabelle kann verwendet werden, um einen zufälligen Zugriff zu einem indirekten Objekt in einem PDF File zu tätigen. Ein indirektes Objekt ist ein Objekt, welches so markiert wurde, daß auf es durch andere Objekte Bezug genommen werden kann. Jegliche Art von Objekten kann als ein indirektes Objekt markiert sein bzw. werden. Ein direktes Objekt ist andererseits eine Boolean, Zahl, String bzw. Folge, Name, Feld bzw. Array, Wörterbuch, Strom bzw. Stream oder eine Null. Ein indirektes Objekt besteht aus einem identifizierten Objekt, einem direkten Objekt und dem "endobj" Schlüsselwort bzw. Keyword. Der Objektidentifizierer besteht aus einer ganzzahligen Objektzahl, einer ganzzahligen Erzeugungszahl und dem "obj" Schlüsselwort. Jedes indirekte Objekt hat eine einzigartige Objektzahl bzw. -nummer, und indirekte Objekte sind häufig, jedoch nicht notwendigerweise sequentiell in dem PDF File mit eins beginnend numeriert. Die Kombination von Objektnummer und Erzeugungsnummern dient als ein einzigartiger Identifizierer für ein indirektes Objekt. Der Querverweistabelleneintrag für ein indirektes Objekt stellt ein Byte-Offset zur Verfügung, das die Zahl von Bytes von dem Beginn des Files bis zu dem Beginn des Objekts spezifiziert. Somit sind ein Objekt und seine Querverweistabelle eine kontinuierliche bzw. aneinander angrenzende Einheit von Information.
  • WO 95/14280 offenbart ein System, welches eine Patentwerkbank zur Verfügung stellt. Die Eingabe in das System ist ein Patenttextfile und ein Patentbildfile, die von USPTO für jedes von zahlreichen ausgegebenen bzw. erteilten Patenten erhalten wird. Die Patenttextfiles enthalten ASCII Text; das Textbildfile beinhaltet komprimierte Bilder. Das System stimmt den Text mit den Bildern überein, um ein äquivalentes File auszubilden, welches mit dem Bildfile auf einer Zeilen/Spalten/Seitenbasis synchronisiert ist.
  • Boyle C. et al.: "A survey and Classification of Hypertext Documentation Systems", IEEE Transactions an Professional Communication, IEEE Inc., New York, US, Band 35, Nr. 2, 1. Juni 1992, Seiten 98–111 offenbart eine Überwachung und Klassifikation von unterschiedlichen Näherungen bzw. Zugängen unter Verwendung einer Hypertextdokumentation.
  • Es ist ein Gegenstand bzw. Ziel der vorliegenden Erfindung, ein Verfahren zum Herunterladen einer spezifischen Seite eines aus mehreren Seiten bestehenden, auf Seiten basierenden elektronischen Dokuments, ein Computerprogrammprodukt und eine entsprechende Vorrichtung zur Verfügung zu stellen, welche ein zeitsparendes Herunterladen einer spezifischen Seite ermöglichen, die einem Benutzer anzuzeigen ist.
  • Dieses Ziel wird gemäß der vorliegenden Erfindung durch ein Verfahren, das die in Anspruch 1 geoffenbarten Merkmale aufweist, ein Computerprogrammprodukt, das die in Anspruch 10 geoffenbarten Merkmale aufweist, und eine Vorrichtung gelöst, die die in Anspruch 11 geoffenbarten Merkmale aufweist. Bevorzugte Ausbildungen sind in den abhängigen Unteransprüchen definiert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung stellt ein Verfahren und eine Vorrichtung zum Herunterladen und Anzeigen von gewünschten Seiten ohne übermäßige Zeitverzögerungen zur Verfügung.
  • Ein Verfahren der vorliegenden Erfindung lädt effizient ein auf Seiten basierendes Dokument herunter. Die Seiten-Offset- bzw. -Abstandsinformation wird früh während des Herunterladeverfahrens bzw. -Prozesses gelesen. Beginn- und End-Offsets bzw. -Abstände jeder Seite des Dokuments können von der Seiten-Offsetinformation abgeleitet werden. Unter Verwendung der Seiten-Offsetinformation wird eine spezifische Seite, die durch den Benutzer angefragt bzw. angefordert ist bzw. wird, heruntergeladen, und jegliche Seite, die durch den Benutzer gewünscht ist, kann schnell ohne die Notwendigkeit eines Herunterladens von anderen Seiten in dem Dokument heruntergeladen werden. Die Seiten-Offsetinformation wird gelesen, bevor das Herunterladen von mehr als einer Seite des Dokuments vervollständigt wurde. In einem Aspekt hat das Dokumentenfile einen Zeiger, welcher auf den Ort der Seiten-Offsetinformation hinweist bzw. zeigt, wobei der Zeiger vor oder während dem Lesen der ersten Seite des Dokuments gelesen wird.
  • In einem anderen Aspekt wird, wenn ein Benutzer eine spezifische Seite eines optimierten Dokuments anfordert, die bestimmte Seite zu einem Client-Computersystem in lediglich einer Verbindung mit einem Host heruntergeladen, welcher das optimierte Dokumentenfile speichert. In einem anderen Aspekt wird die bestimmte bzw. spezifische Seite in lediglich einer Transaktion mit dem Host heruntergeladen. Die angefragte bzw. angeforderte Seite kann, während sie heruntergeladen wird, dem Benutzer auf einer Ausgabeanzeigevorrichtung, wie einem Anzeigeschirm, Monitor oder Drucker angezeigt werden. Das Herunterladen kann durch ein Betrachterprogramm auf dem Client-Computersystem durchgeführt werden. Wenn er verbunden ist und heruntergeladen wird, kann der Betrachter einen ersten Abschnitt der angeforderten Seite herunterladen, während sämtliche verbleibende Abschnitte der angeforderten Seite durch ein Finderverfahren auf dem Clientcomputer unter Verwendung der Seiten-Offsettabelle angeordnet und angefragt bzw. angefordert werden. Diese zusätzlichen Abschnitte werden während der einen Verbindung des Clientcomputers mit dem Host heruntergeladen, wodurch Zeit und Overhead gespart werden, indem mehrere bzw. mehrfache Transaktionen oder Verbindungen vermieden werden. Die zusätzlichen Abschnitte der spezifischen Seite können geteilte bzw. gemeinsam genutzte Objekte beinhalten, auf die durch Seiteninhalte der spezifischen Seite Bezug genommen wird. Gemeinsam genutzte Objekte werden in einer überlappten bzw. verschachtelten Reihenfolge zwischen Teilen bzw. Abschnitten der Seiteninhalte heruntergeladen, welche auf die gemeinsam genutzten Objekte hinweisen. In einem anderen Aspekt wird die angeforderte bzw. nachgefragte Seite auf ein Client-Computersystem in lediglich einer einzigen Transaktion mit einem Host heruntergeladen, welcher das optimierte Dokumentenfile speichert, wobei die Transaktion durch ein Verfahren unter Verwendung einer Seiten-Offsethinweistabelle und jeglichen anderen Hinweistabellen, die in dem Dokument verfügbar sind, konstruiert ist bzw. wird.
  • Wenn geteilte bzw. gemeinsam genutzte Objekte in einer verschachtelten Reihenfolge heruntergeladen werden, beinhaltet das Verschachtelungsverfahren ein Herunterladen eines ersten Abschnitts bzw. Bereichs eines Seiteninhalts von der nachgefragten Seite, wobei der erste Abschnitt eines Seiteninhalts einen Bezug bzw. eine Referenz zu einem geteilten Objekt beinhaltet. Der erste Abschnitt kann den gesamten anschließenden bzw. aufeinanderfolgenden Seiteninhalt des Dokuments bis zu dem (ungefähren) Bezugspunkt zu dem geteilten Objekt beinhalten. Dann wird das geteilte Objekt, auf das durch den ersten Abschnitt der Seite Bezug genommen wird, heruntergeladen. Das geteilte Objekt ist beispielsweise ein Font bzw. Schriftsatz oder ein ähnliches Bezugsobjekt, welches erforderlich ist, um den ersten Abschnitt eines Seiteninhalts anzuzeigen. Ein zweiter Abschnitt eines Seiteninhalts von der nachgefragten Seite wird dann heruntergeladen, wo der zweite Abschnitt mit dem ersten Abschnitt des Seiteninhalts zusammenhängt bzw. daran anschließt. Die Orte bzw. Stellen des ersten und zweiten Abschnitts eines Seiteninhalts und die geteilten Objekte in dem auf Seiten basierenden Dokument werden unter Verwendung einer Seiten-Offsettabelle abgeleitet. Alternativ wird ein Surrogat bzw. Ersatz, wie ein Ersatzfont, verwendet, um den ersten Abschnitt des Seiteninhalts anzuzeigen, wodurch dem Verfahren erlaubt bzw. ermöglicht wird, das Herunterladen des bezuggenommenen Objekts auf später zurückzustellen bzw. zu verschieben und dadurch schneller den zweiten Abschnitt eines Seiteninhalts herunterzuladen und anzuzeigen.
  • Eine Vorrichtung der vorliegenden Erfindung stellt ein effizientes Herunterladen eines auf Seiten basierenden Dokuments zur Verfügung, das auf einem Host gespeichert ist, wie dies oben beschrieben ist. Die Vorrichtung beinhaltet einen digitalen Prozessor, eine Speichervorrichtung und einen Anzeigeschirm. Darüber hinaus ist ein Mechanismus zum Anzeigen des auf Seiten basierenden Dokuments auf dem Anzeigeschirm beinhaltet, welcher mit dem Host verbindet, um die Seiten-Offsetinformation herunterzuladen und/oder um eine spezifische Seite des Dokuments herunterzuladen, das durch den Benutzer angefordert ist, ohne daß andere Seiten in dem Dokument heruntergeladen werden. Eine heruntergeladene Seite kann auf dem Anzeigeschirm angezeigt werden.
  • Ein Finder benutzt die Seiten-Offsetinformation, um einen Ort der spezifischen Seite in dem Dokument dem Anzeigemechanismus zur Verfügung zu stellen, so daß die spezifische Seite heruntergeladen werden kann. Der Finder kann zusätzliche Teile bzw. Abschnitte der spezifischen bzw. bestimmten Seite während einer Verbindung nachfragen bzw. anfordern und kann das Herunterladen von Abschnitten von Seiteninhalten und geteilten Objekten vermischen. In einem anderen Aspekt kann der Finder alle Teile der spezifischen Seite während einer Transaktion anfragen, wobei die Transaktion durch ein Verfahren unter Verwendung einer Seiten-Offsethinweistabelle und jeglichen anderen Hinweistabellen konstruiert ist bzw. wird, die in dem Dokument verfügbar sind.
  • Allgemein stellt in einem Aspekt die Erfindung ein Verfahren zum Lesen einer durch einen Benutzer angeforderten Seite eines elektronischen Dokuments zur Verfügung, welches Seiteninhaltselemente und einen Satz von Hinweistabellen beinhaltet, wobei einer des Satzes der Hinweistabellen (eine Seiten-Offsethinweistabelle) Seiten-Offsetinformationen für Seiten des Dokuments zur Verfügung stellt. Das Verfahren beinhaltet ein Lesen der Seiten-Offsethinweistabelle früh während eines Lesens des Dokuments und ein Verwenden der Seiten-Offsethinweistabelle, um die Inhalte der durch den Benutzer angeforderten Seite zu lokalisieren. Auf diese Weise kann die durch den Benutzer angeforderte Seite leicht ohne die Notwendigkeit eines Lesens von anderen Seiten in dem Dokument gelesen werden. In einem anderen Aspekt wird die Seiten-Offsetinformation gelesen, bevor ein Lesen von mehr als einer Seite des Dokuments vervollständigt bzw. abgeschlossen wurde, und die Beginn- und End-Offsets jeder Seite des Dokuments können von der Sei ten-Offsetinformation abgeleitet werden. In einem anderen Aspekt wird die Seiten-Offsetinformation gelesen, bevor das Lesen einer zweiten Seite des Dokuments begonnen wird. In einem anderen Aspekt beinhaltet der Satz von Hinweistabellen eine Hinweistabelle eines geteilten Objekts, welche gelesen wird, bevor das Lesen einer zweiten Seite des Dokuments begonnen wird. In einem anderen Aspekt beinhaltet der Satz von Hinweistabellen eine Buchmarkierungs- bzw. Lesezeichen-Hinweistabelle, welche gelesen wird, bevor das Lesen einer zweiten Seite des Dokuments begonnen wird. In einem anderen Aspekt beinhaltet der Satz von Hinweistabellen eine Gegenstands- bzw. Artikelthread-Hinweistabelle, welche gelesen wird, bevor das Lesen einer zweiten Seite des Dokuments begonnen wird. In einem anderen Aspekt beinhaltet der Satz von Hinweistabellen eine Vorschaubild- bzw. Thumbnail-Hinweistabelle, welche gelesen wird, bevor das Lesen einer zweiten Seite des Dokuments begonnen wird. In einem anderen Aspekt wird das Dokument von einem Hostcomputer durch ein Betrachterprogramm gelesen, das auf einem Benutzercomputer läuft, und die Erfindung beinhaltet ein Anzeigen der spezifischen Seite, welche durch den Benutzer angefragt bzw. angefordert wurde, auf einer Anzeigevorrichtung, die mit dem Benutzercomputer gekoppelt ist. In einem anderen Aspekt weist jede Kategorie von Objekten, die mit dem Dokument als eine Gesamtheit assoziiert sind, eine entsprechende Hinweistabelle auf. In einem anderen Aspekt wird die durch den Benutzer angeforderte Seite in einer Transaktion mit dem Hostcomputer heruntergeladen. In einem anderen Aspekt wird das gesamte Dokument in einer anfänglichen Transaktion mit dem Hostcomputer angefordert und das Lesen des Dokuments von dem Hostcomputer wird nicht unterbrochen, bis der Benutzer eine spezifische Seite des Dokuments anfrägt bzw. anfordert. In einem anderen Aspekt werden ge teilte bzw. gemeinsam genutzte Objekte versteckt, nachdem sie gelesen wurden.
  • Allgemein stellt in einem Aspekt die vorliegende Erfindung ein Verfahren zum Lesen eines elektronischen Dokuments, enthaltend einen Satz von Objekten zur Verfügung, wobei jedes Objekt zu einem Satz von Klassen gehört, wobei das Dokument auch eine Hinweistabelle für jede Klasse in dem Satz von Klassen enthält, wobei jede Hinweistabelle Information enthält, die die Orte bzw. Stellen von Objekten in den entsprechenden Klassen identifiziert. Das Verfahren beinhaltet ein Lesen der Hinweistabellen früh während des Leseverfahrens, ein Verwenden einer Hinweistabelle, um die Orte in den Dokument von Objekten der entsprechenden Klasse zu identifizieren, und ein Verwenden der identifizierten Orte, um eine Transaktion zum Lesen aller oder eines spezifizierten Subsätze (-satzes) der Objekte der entsprechenden Klasse zu erzeugen. Auf diese Weise kann jeglicher Aspekt des Dokuments, der sich auf eine Klasse von Information bezieht, die durch den Benutzer gewünscht ist, gelesen werden, ohne die Notwendigkeit eines Lesens von Objekten, die sich auf andere Aspekte des Dokuments beziehen. In einem anderen Aspekt beinhaltet der Satz von Klassen eine Klasse für Seitenobjekte. In einem anderen Aspekt beinhaltet der Satz von Klassen eine Klasse für Thumbnail-Objekte. In einem anderen Aspekt beinhaltet der Satz von Klassen eine Klasse für Artikel- bzw. Gegenstandsobjekte. In einem anderen Aspekt beinhaltet der Satz von Klassen eine Klasse für Lesezeichenobjekte. In einem anderen Aspekt beinhaltet der Satz von Klassen eine Klasse, die durch ein Anwendungs-Plug-in definiert ist, das eine entsprechende Hinweistabelle aufweist.
  • Ein Vorteil der vorliegenden Erfindung ist, daß ein Herunterladen auf lediglich spezifische bzw. bestimmte, gewünschte Seiten eines Dokuments beschränkt werden kann, das auf einem entfernten Host angeordnet ist, was in einer schnelleren Anzeigezeit für jene Seiten resultiert, da das gesamte Dokument nicht heruntergeladen werden muß. Zusätzlich wird ein auf Seiten basierendes elektronisches Dokumentenfile optimiert, um kontinuierlich gespeicherte bzw. aneinander anschließende Seiteninhalte zu beinhalten und eine Seiten-Offsettabelle. Die Geschwindigkeit eines Herunterladens von individuellen Seiten von dem optimierten File bzw. der optimierten Datei ist bzw. wird durch ein Bestimmen von Seitenorten in der optimierten Datei von der Seiten-Offsettabelle erhöht. Alle Seiteninhalte und geteilten Objekte für eine Seite können an einer Verbindung zu dem Host heruntergeladen werden, womit die Zeitverzögerungen von mehreren bzw. mehrfachen Verbindungen vermieden werden.
  • Ein weiterer Vorteil dieser Erfindung ist, daß Teile bzw. Abschnitte von Seiteninhalten in einer verschachtelten Ordnung bzw. Reihenfolge mit geteilten bzw. gemeinsam genutzten Objekten, wie Schriftsätzen bzw. Fonts, heruntergeladen werden können, die zum Anzeigen von jenen Abschnitten von Seiteninhalten erforderlich sind. Dies ermöglicht es einem heruntergeladenen Abschnitt der Seite, daß er schneller angezeigt werden kann, ohne darauf zu warten, daß referenzierte geteilte Objekte heruntergeladen werden.
  • Ein weiterer Vorteil dieser Erfindung ist, daß unerwünschte Verzögerungen in dem Anzeigen von Text reduziert werden und daß verwendbare bzw. nützliche Aspekte einer gewünschten Seite schneller dem Benutzer verfügbar gemacht werden.
  • Diese und andere Vorteile der vorliegenden Erfindung werden Fachleuten beim Lesen der nachfolgenden Beschreibung der Erfindung und einem Studium der zahlreichen Figuren der Zeichnung ersichtlich werden.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • Die beiliegenden Zeichnungen, welche in der Beschreibung inkorporiert bzw. aufgenommen sind und ein Teil derselben ausbilden bzw. darstellen, illustrieren schematisch spezifische Ausbildungen der Erfindung und dienen gemeinsam mit der allgemeinen Beschreibung, die oben gegeben ist, und der detaillierten Beschreibung der Ausbildungen, die unten gegeben ist, dazu, die Prinzipien der Erfindung zu erklären.
  • 1 ist ein Blockdiagramm eines Computersystems zum Bereitstellen eines optimierten Dokuments und/oder zum Herunterladen von Daten von einem optimierten File bzw. einer optimierten Datei in Übereinstimmung mit der vorliegenden Erfindung.
  • 2a ist eine diagrammartige bzw. schematische Darstellung bzw. Illustration eines Anzeigeschirms eines Betrachters, der eine Seite von einem tragbaren elektronischen Dokument und einer Lesezeichenansicht anzeigt.
  • 2b ist eine diagrammartige Illustration des Anzeigeschirms des Betrachters, der eine Seite von einem tragbaren elektronischen Dokument und ein "Thumbnail"-Fenster anzeigt.
  • 3a ist eine diagrammartige Illustration eines Beispiels eines nicht optimierten Dokumentenfiles.
  • 3b ist eine diagrammartige Illustration eines optimierten Dokumentenfiles der vorliegenden Erfindung.
  • 4 ist ein Flußdiagramm, das das Verfahren der vorliegenden Erfindung zum Erzeugen eines optimierten Dokumentenfiles aus einem elektronischen Dokument illustriert.
  • 5 ist ein Flußdiagramm, das einen Schritt von 4 illustriert, in welchem eine innere bzw. interne Liste von Objekten und Listen von geteilten bzw. gemeinsam genutzten Objekten ausgebildet bzw. erzeugt werden.
  • 5a ist eine diagrammartige Illustration einer Liste von geteilten Objekten, die in dem Verfahren von 5 erzeugt ist bzw. wird.
  • 6 ist ein Flußdiagramm, das einen Schritt von 5 illustriert, in welchem geteilte Objekte be- bzw. verarbeitet werden.
  • 6a ist eine diagrammartige Illustration einer Liste von geteilten Seiten, die in dem Verfahren von 6 erzeugt wird.
  • 7 ist ein Flußdiagramm, das einen Schritt von 5 illustriert, in welchem die Liste von geteilten Seiten in fertiggestellten und geteilten Objekten in die innere Liste inkorporiert ist.
  • 8 ist ein Flußdiagramm, das einen Schritt von 4 illustriert, in welchem eine Seiten-Offsettabelle der vorliegenden Erfindung in dem optimierten File angeordnet ist.
  • 8a ist eine diagrammartige Illustration einer Seiten-Offsettabelle, die in dem Verfahren von 8 erzeugt wird.
  • 9 ist ein Flußdiagramm, das einen Schritt von 4 illustriert, in welchem eine Bereichstabelle in das optimierte File bzw. die optimierte Datei geschrieben ist bzw. wird.
  • 9a ist eine diagrammartige Illustration der Bereichstabelle, die in dem Verfahren bzw. Prozeß von 9 erzeugt ist.
  • 10 ist ein Flußdiagramm, das ein Verfahren der vorliegenden Erfindung zum Herunterladen von Seiten von einem optimierten Dokumentenfile bzw. File eines optimierten Dokuments illustriert.
  • 11 ist ein Flußdiagramm, das einen Schritt von 10 illustriert, in welchem ein Finder die Seiten-Offsettabelle von dem Dokument entnimmt und Seiteninformation bestimmt.
  • 11a ist eine diagrammartige Illustration von Seiteninformationstabellen, die in dem Verfahren von 11 entwickelt sind bzw. werden.
  • 12 ist ein Flußdiagramm, das einen Schritt von 10 illustriert, in welchem der Finder jegliche zusätzliche Bereiche von Seitendaten für eine nachgefragte bzw. angeforderte Seite während einer Betrachterverbindung mit einem Host nachfragt bzw. anfordert.
  • 13a ist ein Flußdiagramm, das ein fakultatives Verfahren der vorliegenden Erfindung in einem Schritt von 10 illustriert, in welchem Text zunehmend unter Verwendung von unterschiedlichen Fonts gerendert wird.
  • 13b ist ein Flußdiagramm, das ein fakultatives Verfahren der vorliegenden Erfindung in einem Schritt von 10 illustriert, in welchem ein aktives Element eines Dokuments früh erlaubt bzw. aktiviert wird.
  • 13c ist ein Flußdiagramm, das ein fakultatives Verfahren der vorliegenden Erfindung in einem Schritt von 10 zeigt, in welchem Text angezeigt wird, bevor ein darunter- bzw. zugrundeliegendes Objekt angezeigt ist bzw. wird.
  • 14 ist ein Blockdiagramm, das ein linearisiertes Dokumentenfile bzw. eine Datei eines linearisierten Dokuments der vorliegenden Erfindung illustriert.
  • 15a ist eine diagrammartige Illustration einer Seiten-Offsethinweistabelle.
  • 15b ist eine diagrammartige Illustration einer Hinweistabelle von geteilten Objekten.
  • 15c ist eine diagrammartige Illustration einer Thumbnail-Hinweistabelle.
  • 15d ist eine diagrammartige Illustration einer Hinweistabelle eines generischen Objekts bzw. einer generischen Objekt-Hinweistabelle.
  • DETAILLIERTE BESCHREIBUNG
  • Die vorliegende Erfindung ist gut für ein Herunterladen von Seiten von Daten eines tragbaren elektronischen Dokuments von einem Host- bzw. Wirtscomputer und für ihr optimales inkrementiertes Anzeigen geeignet. Genauer kann ein tragbares elektronisches Dokument im Portable Dokument Format (PDF) und ähnlichen Formaten durch die vorliegende Erfindung optimiert werden. Die vorliegende Erfindung ist für ein Organisieren und Herunterladen von auf Seiten basierenden Files bzw. Dateien geeignet, so daß die Zeit für ein Herunterladen und Anzeigen von Seiten des Files minimiert wird.
  • In 1 kann ein Computersystem 10 zum Herunterladen eines tragbaren elektronischen Dokuments einen digitalen Computer 11, einen Anzeigeschirm 22, einen Drucker 24, einen Floppydisktreiber 26, einen Festplattentreiber 28, ein Netzwerk-Interface 30 und eine Tastatur 34 beinhalten. Andere Arten von Peripheriegeräten können ebenfalls beinhaltet sein, wie ein CD-ROM-Treiber bzw. -Antrieb, eine Eingabetafel oder andere Interfacevorrichtungen, usw. Der digitale Computer 11 beinhaltet typischerweise einen Mikroprozessor 12, einen Speicherbus 14, einen Direktzugriffsspeicher (RAM) 16, einen Nur-Lese-Speicher (ROM) 18, einen peripheren Bus 20 und eine Tastatur-Steuer- bzw. -Regeleinrichtung 32. Der digitale Computer 11 kann ein Personal Computer (wie ein IBM-PC AT-kompatibler oder Macintosh Personal Computer) sein, eine Arbeitsstation (wie eine SUN oder Hewlett-Packard Arbeitsstation), usw.
  • Der Mikroprozessor 12 ist ein digitaler Prozessor für allgemeine Zwecke, welcher die Tätigkeit bzw. den Betrieb des Computersystems 10 steuert bzw. regelt. Der Mikroprozessor 12 kann ein Einzelchip-Prozessor sein oder kann mit mehreren Komponenten implementiert sein. Unter Verwendung von Instruktionen bzw. Anweisungen, die von einem Speicher entnommen bzw. wiedergewonnen sind, steuert bzw. regelt der Mikroprozessor 12 die Aufnahme und Handhabung bzw. Manipulation von eingegebenen bzw. Eingabedaten und die Ausgabe und Anzeige von Daten auf Ausgabevorrichtungen. In der beschriebenen Ausbildung ist eine Funktion des Mikroprozessors 12 das Lesen und Be- bzw. Verarbeiten von Daten von Seiten eines elektronischen Dokuments.
  • Der Speicherbus 14 wird durch den Mikroprozessor 12 verwendet, um zu dem RAM 16 und ROM 18 zuzugreifen. RAM 16 wird durch den Mikroprozessor 12 als ein allgemeiner Speicherbereich und als ein Scratchpad-Speicher verwendet, und kann auch verwendet werden, um heruntergeladene Daten zu speichern, welche angezeigt sind (oder nicht angezeigt sind). ROM 18 kann verwendet werden, um Instruktionen, die durch den Mikroprozessor 12 befolgt werden, und andere permanente Daten zu speichern.
  • Der Peripheriebus 20 wird verwendet, um zu der Eingabe-, Ausgabe- und Speichervorrichtung zuzugreifen, die durch den digitalen Computer 11 verwendet werden. In der beschrie benen Ausbildung beinhalten diese Vorrichtungen einen Anzeigeschirm 22, eine Druckervorrichtung 24, einen Floppydisktreiber 26, einen Festplattentreiber 28 und ein Netzwerk-Interface 30. Die Tastatur-Steuer- bzw. -Regeleinrichtung bzw. der Tastatur-Controller 32 wird verwendet, um eine Eingabe von der Tastatur 34 zu empfangen und dekodierte Symbole für jede gedruckte Taste zum Mikroprozessor 12 über einen Bus 33 zu senden.
  • Der Anzeigeschirm 22 ist eine Ausgabevorrichtung, welche Bilder von Daten anzeigt bzw. darstellt, die durch den Mikroprozessor 12 über den Peripheriebus 20 zur Verfügung gestellt sind oder die durch andere Komponenten in dem Computersystem zur Verfügung gestellt sind. In der beschriebenen Ausbildung ist der Anzeigeschirm 22 eine Rastervorrichtung, welche Bilder auf einem Schirm entsprechend Bits einer Bitmap in Reihen und Spalten von Bildpunkten bzw. Pixeln anzeigt, wie dies Fachleuten gut bekannt ist. D.h. eine Bitmap kann dem Anzeigeschirm 22 eingegeben werden, und die Bits der Bitmap können als Bildpunkte angezeigt bzw. dargestellt werden. Eine eingegebene bzw. Eingabebitmap kann direkt auf dem Anzeigeschirm angezeigt werden, oder Komponenten des Computersystems 10 können zuerst Codes oder andere Bildbeschreibungen von einem Seitenbeschreibungsfile in Bitmaps rendern und diese Bitmaps zum Anzeigen auf dem Anzeigeschirm 24 senden, wie dies auch gut bekannt ist. Rasteranzeigeschirme, wie CRT's, LCD-Anzeigen, usw., sind für die vorliegende Erfindung geeignet.
  • Die Druckervorrichtung 24 stellt ein Bild einer Bitmap auf einem Papierblatt oder einer ähnlichen Oberfläche zur Verfügung. Der Drucker 24 kann ein Laserdrucker sein, welcher ähnlich dem Anzeigeschirm 22 eine Rastervorrichtung ist, die Bildpunkte anzeigt bzw. darstellt, die von Bitmaps abgeleitet sind. Die Druckervorrichtung 24 kann Bilder drucken, die von Daten abgeleitet sind, wie sie in einem tragbaren elektronischen Dokument gefunden werden. Andere Ausgabevorrichtungen können als Druckervorrichtung 24 verwendet werden, wie ein Plotter, Typesetter, usw. Das Computersystem 10 kann Bilder auf einer Anzeigeausgabevorrichtung anzeigen, wie einem Anzeigeschirm 22 oder einem Drucker 24, unter Verwendung von Daten vom Speicher, einer Speichervorrichtung oder von einer anderen Quelle oder einem Host über einem Netzwerk, das durch das Netzwerk-Interface 30 verbunden bzw. angeschlossen ist.
  • Der Floppydisktreiber 26 und der Festplattentreiber bzw. -antrieb 28 können verwendet werden, um Daten, wie ein Dokument, zu speichern, welches heruntergeladen wurde oder in dem optimierten Format der vorliegenden Erfindung erzeugt wurde. Der Floppydisktreiber 26 erleichtert ein Transportieren von derartigen Daten zu anderen Computersystemen, und der Festplattentreiber 28 erlaubt einen schnellen Zugriff auf große Mengen von gespeicherten Daten. Andere Massenspeichereinheiten, wie nicht-flüchtige Speicher (beispielsweise ein Flash-Speicher), PC-Datenkarten oder dgl., können auch verwendet werden, um Daten zu speichern, die durch das Computersystem 10 verwendet werden. Hierin kann sich ein "durch einen Computer (oder eine Maschine) lesbares Speichermedium" sowohl auf einen Speicher, wie ein RAM 16 und ein ROM 18, ebenso wie auf Diskettentreiber 26 und 28 oder jede andere Art von Vorrichtung zum Speichern von Daten beziehen.
  • Das Netzwerk-Interface 30 wird verwendet, um Daten über ein Netzwerk zu senden und zu empfangen, das mit einem oder mehreren anderen Computersystem(en), wie die Computervorrichtung 31, verbunden ist. Eine Interfacekarte, Modem oder ähnliche Vorrichtung und geeignete bzw. entsprechende Software, die durch den Mikroprozessor 12 implementiert ist, kann verwendet werden, um das Computersystem 10 mit einem bestehenden Netzwerk zu verbinden und Daten gemäß Standardprotokollen zu übertragen bzw. zu transferieren. In der vorliegenden Erfindung kann das Netzwerk-Interface 30 verwendet werden, um tragbare elektronische Dokumente von einem Hostcomputersystem über ein Netzwerk zu entnehmen oder "herunterzuladen", oder die Dokumente zu einem Host oder Client-Computersystem zu senden ("hinaufzuladen"). Das Netzwerk kann unter Verwendung einer Vielzahl von Hardware und Software implementiert sein, wie dies Fachleuten in der Technik gut bekannt ist.
  • Die Tastatur 34 wird durch einen Benutzer verwendet, um Befehle oder andere Instruktionen bzw. Anweisungen zu dem Computersystem 10 einzugeben. Bilder, die auf dem Anzeigeschirm 22 angezeigt sind bzw. werden oder für ein Computersystem 10 zugreifbar sind, können editiert, gesucht oder anders handgehabt werden durch den Benutzer, indem Instruktionen auf der Tastatur 34 eingegeben werden. Andere Arten von Benutzereingabevorrichtungen können auch im Zusammenhang mit der vorliegenden Erfindung verwendet werden. Beispielsweise können Zeigevorrichtungen, wie eine Computermaus, ein Trackball, ein Stift und/oder ein Tablett, verwendet werden, um einen Zeiger, wie einen Cursor, auf einem Schirm eines Computers für allgemeine Zwecke handzuhaben.
  • Das Computersystem 10 kann auch als ein Host- oder Source- bzw. Quellencomputer zum Erzeugen und/oder Bereitstellen der optimierten Dokumente der vorliegenden Erfindung an "Client"-(Empfangs-) Computersysteme verwendet werden, welche die Dokumente herunterladen. Alternativ kann der Hostcomputer ein Fileserver oder eine andere Art von Massenspeichervorrichtung sein.
  • 2a ist eine diagrammartige Darstellung bzw. schematische Illustration eines Anzeigeschirms 22, der angezeigte visuelle Darstellungen von einem tragbaren elektronischen Dokument zeigt. Die vorliegende Erfindung ist in erster Linie auf ein Erzeugen und Herunterladen von Seiten von tragbaren elektronischen Dokumenten gerichtet. Ein "tragbares elektronisches Dokument" ist eine Sammlung von Daten, welche Objekte beinhaltet, die in einer Sprache eines tragbaren elektronischen Dokuments gespeichert sind. Das Dokument ist in einem "Dokumentenfile" bzw. einer "Dokumentendatei" organisiert und gespeichert, welche(s) eine Speichereinheit, wie ein File, eine Datenstruktur oder dgl. sein kann. Tragbare elektronische Dokumente können in einer Vielzahl von unterschiedlichen Sprachen und Formaten gespeichert sein bzw. werden. Hierin ist das tragbare elektronische Dokument unter Bezugnahme auf das Portable Dokument Format (PDF) von Adobe Systems, Inc. von Mountain View, Kalifornien, oder ähnliche Arten von Formaten beschrieben. PDF ist ein auf "Seiten basierendes" Format dahingehend, daß ein Dokument eine Anzahl von Seiten beinhaltet und typischerweise einem Benutzer auf einer seitenweisen bzw. Seite-für-Seite-Basis präsentiert wird, d.h. der Benutzer sieht bzw. betrachtet typischerweise eine Seite (oder einen Abschnitt einer Seite) auf einmal auf einem Anzeigeschirm. Andere, auf Seiten basierende Dokumentformate mit ähnlichen Dokumentstrukturen können auch für eine Verwendung mit der vorliegenden Erfindung adaptiert werden.
  • Sprachen für tragbare elektronische Dokumente, wie PDF, speichern typischerweise Daten als Objekte. Ein "Objekt", wie es hierin verwendet ist, ist eine logische Softwareeinheit, umfassend Daten und Verfahren, welche ihm Fähigkeiten und Attribute bzw. Eigenschaften verleihen. Beispielsweise kann ein Objekt in bezug auf seine Art abgefragt werden und kann derartige Daten, wie die Anzahl von Worten, welche es enthält, seinen Ort in Koordinaten (beispielsweise einen Ort der Begrenzungsbox bzw. Bounding Box (BBOX)) des Objekts zurücksenden. Objekte können andere Objekte derselben oder einer unterschiedlichen Art beinhalten oder sich auf diese beziehen. Objekte können auch verwendet werden, um Bilder auf einem Schirm gemäß ihrer Objektart zu projizieren. Es gibt zahlreiche gut bekannte Texte, welche ein objektorientiertes Programmieren beschreiben. Beispiele von Projektarten bzw. -typen, die in typischen PDF Files verwendet werden, beinhalten Seitenobjekte, Seiteninhaltobjekte (beinhaltend Textzeichen, Worte, usw. und/oder graphische Objekte, wie Polygonformen, Befehle, usw.), Bildobjekte (beispielsweise Bitmaps), Fontobjekte und benutzerspezifische Objekte. Einige Objekte können direkte Bezüge bzw. Bezugnahmen auf andere Objekte beinhalten und/oder Information, die verwendet wird, um das Objekt anzuzeigen. In einem PDF Dokument kann sich beispielsweise ein Seitenobjekt auf ein Seiteninhaltobjekt beziehen, welches Befehle und Textzeichen beinhaltet, wo die Textzeichen als Zeichen- bzw. Buchstabencodes zur Verfügung gestellt sind, die die Identität der Textzeichen repräsentieren. Die Seiteninhaltobjekte können den Ort zum Anzeigen des Textes beinhalten, wie Koordinaten, die verwendet werden, um eine Bounding Box um den Text anzuzeigen, oder andere Information, wie die Größe und die Ausrichtungen bzw. Orientie rungen der Zeichen bzw. Buchstaben. Die Seiteninhaltobjekte können sich auch auf "geteilte Objekte", wie Fonts (die unten beschrieben sind), beziehen. Tragbare elektronische Dokumente, wie sie hierin definiert sind, differieren von normalen ASCII Textfiles, da ASCII Textdokumente oder Files bzw. Dateien lediglich ASCII Codes von Buchstaben bzw. Zeichen und keine andere Anzeigeinformation beinhalten. Hierin können Objekte "auf" der Seite sein, die durch ein Seitenobjekt beschrieben ist, was äquivalent zu einem Objekt ist, auf das durch das Seitenobjekt "Bezug genommen wird".
  • In 2a zeigt der Anzeigeschirm 22 eine angezeigte Seitenrepräsentation 40, die von Daten abgeleitet ist, die von einem tragbaren elektronischen Dokument erhalten sind. Die Seitenrepräsentation bzw. Seitendarstellung 40 ist bzw. wird auf dem Schirm in einem Sichtfenster 39 durch ein Betrachterprogramm von Objekten angezeigt, die in dem tragbaren elektronischen Dokument gespeichert sind, und wird typischerweise von gerenderten Bitmaps abgeleitet, wie dies Fachleuten gut bekannt ist. Ein Betrachter- bzw. Seheranwendungsprogramm ("Seher"), das auf einem Computersystem 10 läuft, kann typischerweise eine gesamte Seite anzeigen, oder einen Abschnitt einer Seite eines tragbaren elektronischen Dokuments. Die Daten für die Seite sind bzw. werden durch den Seher angefragt bzw. angefordert und von einer Speichervorrichtung oder einem anderen Computer erhalten. Die Daten für die Seite 40 können von einem Hostcomputer heruntergeladen und angezeigt werden. Der Betrachter kann auch Merkmale, wie Menükopfzeilen 41, Auswahlknöpfe 43 und eine Tabelle von Inhalten oder "Lesezeichen"-Ansichten 45 anbieten. Diese Merkmale erlauben es einem Benutzer, die empfangenen Daten handzuhaben und die Seiten daten gemäß Benutzerpräferenzen bzw. -vorlieben zu sehen. Beispielsweise erlauben es Menükopfzeilen einem Benutzer, die heruntergeladene Seite zu sehen, zu kopieren, zu laden, zu sichern, zu untersuchen bzw. zu durchsuchen oder in ähnlicher Weise handzuhaben. Die Auswahlknöpfe 43 erlauben es in ähnlicher Weise einem Benutzer, das Dokument in unterschiedlichen Weisen zu sehen oder handzuhaben, indem es gezoomt wird, die nächste Seite des tragbaren elektronischen Dokuments ausgewählt wird, usw. Das Lesezeichen 45 erlaubt es einem Benutzer, einen speziellen Abschnitt des Dokuments auszuwählen oder anzuzeigen, welchen der Benutzer (oder ein unterschiedlicher Benutzer) spezifisch markiert und mit Text (oder alternativ Graphik) versehen hat. Beispielsweise können unterschiedliche Kapiteltitel bzw. -kopfzeilen als Etiketten in dem Lesezeichen 45 so angezeigt werden, daß, wenn der Benutzer ein Kapitel auswählt, die erste Seite des Kapitels in dem Sichtfenster 39 angezeigt ist bzw. wird. Ein geeignetes Seheranwendungsprogramm zur Verwendung mit der vorliegenden Erfindung ist AcrobatTM Reader oder AcrobatTM Exchange, die von Adobe Systems erhältlich sind, welche Seitendaten, die im PDF Format gespeichert sind, von einem Dokumentenfile lesen, schreiben und handhaben und die Daten in einem auf Seiten basierenden Format anzeigen können. Andere Seher- und Fileformate können in anderen Ausbildungen verwendet werden.
  • Die Seitendarstellung 40 kann mehrere unterschiedliche Arten von visuellen Darstellungen, beinhaltend Text 42, Graphiken 44, Bilder und Links bzw. Verbindungen 46 beinhalten. Der Text 42 ist von Zeichen- bzw. Buchstabencodes und Fontobjekten abgeleitet, die in dem Dokumentenfile gespeichert sind. Der Text 42 kann in einer Bitmap für eine Anzeige aus dem Schirm 22 umgeformt bzw. gerendert werden, wie dies Fachleuten gut bekannt ist. Die Graphiken 44 können auch von codierten Formprimitiven, wie Zeilen und Rechtecken, gerendert werden und angezeigt werden. Bilder (nicht gezeigt) sind typischerweise Bitmapbilder, wie ein gescanntes oder digitalisiertes Bild, und können auf dem Schirm 22 durch den Fachleuten gut bekannte Verfahren angezeigt werden. Die Verbindungen bzw. Links 46 porträtieren eine Meldung oder Idee, auf welche durch den Benutzer zugegriffen werden kann, und kann beispielsweise speziellen Text, Graphiken oder Bilder umfassen, um sie von normalen Objekten zu unterscheiden. Die Verbindungen 46 können durch den Benutzer gewählt werden, um einen unterschiedlichen Abschnitt des tragbaren elektronischen Dokuments anzuzeigen, welches sich auf die Meldung oder Idee bezieht, die durch die Verbindung porträtiert ist. Auch können die Verbindungen 46 mit anderen elektronischen Dokumenten verbunden sein, welche die Meldung bzw. den Gegenstand beinhalten, die bzw. der durch die Verbindung dargestellt ist, um einen Zugriff zu diesen anderen Dokumenten zur Verfügung zu stellen. Beispielsweise sind auf zahlreichen existierenden Netzwerken Links bzw. Verbindungen zu zahlreichen unterschiedlichen Dokumenten, die auf dem Netzwerk inkludiert sind, in elektronischen Dokumenten enthalten. Die Seitenrepräsentation 40 kann auch auf einem Blatt Papier angezeigt werden, das durch den Drucker 24 ausgegeben ist. Der Computer bestimmt die Schriftart, Größe, Farbe und andere geeignete bzw. entsprechende Information für jedes Objekt, das anzuzeigen ist, durch ein Überprüfen der assoziierten Fontobjekte, Farbmappen, Größe und anderer Information in dem PDF Dokument.
  • 2b zeigt eine diagrammartige Darstellung bzw. Illustration eines Anzeigeschirms ähnlich zu dem Schirm, der in
  • 2a gezeigt ist. In 2b wurde die Lesezeichenansicht 45 aufgrund einer Präferenz des Benutzers durch ein "Thumbnail"-Fenster 48 ersetzt. Das Vorschaubild- bzw. Thumbnail-Fenster 48 zeigt Seitenikons bzw. Seitendarstellungen 50 (oder "Thumbnails"), welche jeweils eine gesonderte Seite in dem gesehenen tragbaren elektronischen Dokument repräsentieren. Die Ikons 50 erlauben einen beliebigen bzw. zufälligen Zugriff zu irgendeiner der Seiten des Dokuments, d.h. ein Benutzer kann ein Ikon bzw. Zeichen 50 auswählen, um die entsprechende Seite 40 in dem Sichtfenster 39 anzuzeigen. Die gegenwärtig angezeigte Seite kann ein hell erleuchtetes Etikett, wie ein Ikon 51, aufweisen.
  • 3a ist eine diagrammartige Illustration eines nicht optimierten Dokumentenfiles 54. In der beschriebenen Ausbildung ist ein Dokumentenfile, das Daten in der PDF Sprache gespeichert aufweist, als das Hauptbeispiel bezeichnet. In anderen Ausbildungen kann das Dokumentenfile ein unterschiedliches, auf Seiten basierendes Format aufweisen. Ein tragbares elektronisches Dokument ist bzw. wird typischerweise als ein nicht optimiertes Dokumentenfile 54 gespeichert, wie dies in 3a gezeigt ist, wenn es in ein File oder einen Speicher unter Verwendung von normalen Verfahren bzw. Prozessen des Standes der Technik geschrieben ist bzw. wird. Ein nicht optimiertes Dokumentenfile beinhaltet Seiteninhaltsdaten 56, welche üblicherweise in einer nicht verbundenen Weise innerhalb des Files 54 gespeichert sind. Die Seiteninhaltsdaten beinhalten Daten für Text 42 und Graphiken 44 für eine einzige Seite. Zusätzlich beinhalten die Seiteninhaltsdaten auch andere zugehörige Daten, die nicht durch andere Seiten geteilt bzw. genutzt sind, wie referenzierte (nicht geteilte) Fonts, Bilder, Prospekte, usw. Beispielsweise weist eine spezielle Seite P Text/Graphikseiteninhalte 56a, die an dem Beginn des Files 54 angeordnet sind, nicht geteilte Bildseiteninhalte 56b, die an einer späteren Position des Files diskontinuierlich bzw. getrennt von den Inhalten 56a angeordnet sind, Ressourcenverzeichnisinhalte 56c diskontinuierlich von den Inhalten 56b und nicht geteilte Fontobjektinhalte 56d auf, die nahe dem Ende des Files angeordnet sind. Alle diese Inhalte müssen durch den Betrachter gelesen werden, um die gesamte Seite P anzuzeigen. Andere Seiten des Dokuments haben Seiteninhaltsdaten 56, die in dem File 54 in einer ähnlich nicht verbundenen Weise gespeichert sind.
  • Zusätzlich kann das Dokumentenfile 54 eine Querverweistabelle 58 beinhalten, welche eine Tabelle von jedem Objekt in dem Dokumentenfile 54 zur Verfügung stellt, das zu dem Ort (Offset bzw. Versetzung) in dem File indexiert ist, wo das Objekt angeordnet ist. Das Portable Document Format Reference Manual, Adobe Systems Incorporated, Addison-Wesley Publishing Company, New York, 1993, beschreibt die Querverweistabelle, den Seitenbaum und andere Merkmale des PDF Fileformats. Die Querverweistabelle 58 kann irgendwo in dem File angeordnet sein, beispielsweise am Ende des Files; oder Teile der Querverweistabelle können in unterschiedlichen Abschnitten des Files angeordnet sein. Schließlich beinhaltet typischerweise das nicht optimierte Dokumentenfile 54 geteilte bzw. gemeinsam genutzte Objekte 60 und spezielle bzw. Spezialobjekte 61 (die unten beschrieben sind), welche typischerweise im File 54 in einer nicht verbundenen Weise angeordnet sind. Auf geteilte Objekte kann durch mehrseitige Inhaltobjekte in dem File Bezug genommen werden, und können Fontobjekte, Farbmappen (oder "Farbräume") und andere Objekte beinhalten, welche notwendiger weise referenziert werden, um das Aussehen eines Objekts zu beeinflussen, wenn es angezeigt wird. Geteilte Objekte können auch jegliche Objekte beinhalten, die auf mehreren Seiten aufscheinen, und benutzerdefinierte geteilte Objekte. Die "geteilten bzw. gemeinsam genutzten Objekte", auf die hierin Bezug genommen wird, müssen nicht tatsächlich in einem speziellen Moment geteilt sein; diese Objekte können jedoch potentiell geteilt bzw. gemeinsam genutzt sein. Beispielsweise kann ein Font bzw. Schriftsatz lediglich durch eine Seite verwendet werden und kann bzw. muß nicht mit anderen Seiten in einem speziellen Dokument geteilt sein, jedoch kann er potentiell durch andere Seiten geteilt sein. Wie dies in der Technik gut bekannt ist, bezieht sich ein PDF File typischerweise auf Objekte in einer "Seitenbaum"-Struktur, wo ein Objekt sich auf ein Kind oder absteigendes Objekt beziehen kann. Beispielsweise kann sich ein Seitenobjekt auf Objekte von Seiteninhalten 56 (Kind) beziehen, während die Seiteninhaltobjekte sich weiterhin auf (Kind) geteilte Objekte 60 beziehen.
  • In einem Verfahren zum Anzeigen einer Seite eines Dokumentenfiles 54 kann das Dokumentenfile 54 auf einem gesonderten Hostcomputer angeordnet sein. Wenn ein Benutzer anfrägt, daß der Betrachter, der in 2a und 2b gezeigt ist, eine spezielle Seite P des Dokumentenfiles auf dem Anzeigeschirm 22 anzeigt, baut der Betrachter zuerst eine Verbindung zu dem Hostcomputer auf, um zu dem gewünschten Dokumentenfile zuzugreifen. Wenn die Seiteninhalte organisiert sind, wie dies in 3a gezeigt ist, lädt der Betrachter zuerst eine bezeichnete Menge an Seiteninhalten 56a herunter. Nach mehreren möglichen Verbindungen zum Herunterladen von Inhalten 56a muß eine andere Verbindung typischerweise durch den Seher bzw. Betrachter hergestellt werden, um auf Inhalte 56b und dgl. zuzugreifen. Zusätzlich kann, wenn sich die Inhalte einer Seite P auf ein Objekt, wie einen Font, beziehen, das Font nicht vor den Seiteninhalten heruntergeladen werden müssen, die erfordern, daß das Font angezeigt werden kann. Dies trägt alles zu einer langen Verzögerung für den Benutzer bei, bevor irgendein Teil bzw. Abschnitt einer Seite durch den Betrachter angezeigt ist.
  • 3b ist eine schematische Illustration eines optimierten Dokumentenfiles 62 der vorliegenden Erfindung. Das Datenfile 62 wurde organisiert, um das Zeitausmaß zum Herunterladen einer Seite von einem Hostcomputer zu minimieren und die Seite durch den Betrachter anzuzeigen, wie dies in 2a und 2b gezeigt ist. Das Dokumentenfile 62 beinhaltet eine Bereichstabelle 66, die am Beginn des Files gespeichert ist, und einen ersten Seitenabschnitt 64 der Querverweistabelle, der ebenfalls nahe dem Beginn des Files gespeichert ist. Die Seiteninhalte 56 sind aneinander anschließend gruppiert und gespeichert, so daß eine aneinander anschließende bzw. kontinuierliche Menge der Inhalte 56 der ersten Seite gespeichert ist, gefolgt durch eine kontinuierliche Menge der Inhalte 56 von Seite 2, usw., bis zum Ende der kontinuierlichen Inhalte 56 von Seite N, wo N die letzte Seitenzahl in dem Dokument ist. Alle geteilten bzw. gemeinsam genutzten Objekte 60 können nach den Seiteninhaltsdaten gespeichert sein bzw. werden. Spezielle Objekte 61, welche nicht zum Anzeigen einer Seite erforderlich sind, können nach den geteilten Objekten 60 gespeichert sein. In der beschriebenen Ausbildung beinhalten spezielle Objekte Seitenikon-(Thumbnail-) Objekte, Lesezeichenobjekte, Seitenbaumobjekte und dgl. Die Querverweistabelle 58 kann nach den speziellen Objekten gespeichert sein, und eine Seiten-Offsettabelle 68 der vorliegenden Erfindung kann am Ende des Files gespeichert sein. Die Seiten-Offsettabelle stellt die Orte von Seiten in dem Dokumentenfile 62 und Information eines geteilten Objekts zu dem Betrachter zur Verfügung, wie dies nachfolgend beschrieben werden wird. In alternativen Ausbildungen kann die Seiten-Offsettabelle in anderen Bereichen bzw. Gebieten des Files gespeichert sein. Eine derartige alternative Ausbildung ist in 14 illustriert und unter Bezugnahme darauf diskutiert. Die Funktion der Organisation von Daten, wie dies in 3b gezeigt ist, ist nachfolgend beschrieben. Ein Anwendungsprogramm, wie der Betrachter, der in 2a und 2b gezeigt ist, kann eine Option beinhalten, um ein gesehenes Dokument (oder ein Dokument auf einer spezifischen Speichervorrichtung) als ein optimiertes Dokumentenfile zu speichern bzw. zu sichern, wie dies in 3b gezeigt ist. Wenn er dies tut, könnte der Benutzer auswählen, ob ein Dokument in einem optimierten oder nicht optimierten Format zu sichern ist.
  • In alternativen Ausbildungen können die Dokumentendaten in unterschiedlichen Orten des optimierten Dokumentenfiles 62 geschrieben werden. Beispielsweise können die Bereichstabelle 66, die Querverweistabelle 58 oder 64 oder Seiten-Offsettabelle 64 an speziellen Orten in dem File 62 angeordnet werden und der Betrachter kann diese spezifischen Orte lesen, wenn spezifische Daten heruntergeladen werden müssen.
  • AUSBILDEN EINES OPTIMIERTEN DOKUMENTENFILES
  • 4 ist ein Flußdiagramm, das ein Verfahren 70 der vorliegenden Erfindung illustriert, um ein optimiertes Dokumentenfile 62 der vorliegenden Erfindung aus einem nicht optimierten Dokument zu erzeugen. Das "nicht optimierte Dokumentenfile" kann als ein File auf einer Speichervorrichtung gespeichert sein bzw. werden, oder kann teilweise oder vollständig in einem Speicher (wie dem RAM 16) eines Computersystems 10 gespeichert werden, wie während eines Betrachtungsprozesses, wie dies in 2a und 2b gezeigt ist. Das nicht optimierte Dokument in der beschriebenen Ausbildung ist im "normalen" PDF Format. Das Verfahren bzw. der Prozeß 70 kann durch einen Benutzer initiiert werden, der wünscht, das nicht optimierte Dokument als ein optimiertes Dokumentenfile der vorliegenden Erfindung zu sichern. Beispielsweise kann ein nicht optimiertes Dokument in das RAM eines Computersystems geladen werden und dann auf einer Festplatte oder einem anderen computerlesbaren Speichermedium als optimiertes Dokumentenfile 62 gesichert werden. Beispielsweise werden PDFWriter oder Acrobat Distiller von Adobe Systems verwendet, um PDF Files von Anwendungsprogrammen zu schreiben, und können verwendet werden, um das Verfahren 70 zu implementieren. Das gesicherte optimierte File 62 kann beispielsweise auf einem Hostcomputer oder einem Server ("Host" oder "Hostcomputer") für Client-Computersysteme zugänglich gemacht werden, welche das Dokument zum Herunterladen anfordern können. Das Verfahren der vorliegenden Erfindung zum Herunterladen eines optimierten Dokumentenfiles 62 ist bzw. wird in größerem Detail unter Bezugnahme auf 10 beschrieben.
  • Das Verfahren beginnt bei 72. In Schritt 74 werden eine interne Liste von Objekten und Listen von geteilten Objekten von dem nicht optimierten Dokumentenfile erzeugt. Diese Listen helfen dem Verfahren beim Organisieren der Objekte des Dokuments für ein Gruppieren der Objekte in der optimierteren Konfiguration der vorliegenden Erfindung. Die Listen von geteilten Objekten werden verwendet, um geteilte Objekte in dem Dokument nach den Seiteninhaltobjekten anzuordnen. Schritt 74 ist in größerem Detail unter Bezugnahme auf 5 beschrieben. Im nächsten Schritt 76 werden die Dokumenteninformation, beinhaltend Seiteninhaltsinformation 56, geteilte Objekte 60 und spezielle Objekte 61 in bzw. auf das optimierte Dokumentenfile gemäß der internen Liste geschrieben, die in Schritt 74 organisiert ist. Das Verfahren entnimmt im wesentlichen jeden sukzessiven bzw. aufeinanderfolgenden Objektnamen oder "ID" in der internen Liste und schreibt das Objekt zu dem optimierten File in derselben Reihenfolge. Dies hat die Wirkung eines Organisierens des Seiteninhalts 56, der geteilten Objekte 60 und der speziellen Objekte 61 für alle Seiten des Dokuments, wie dies in 3b gezeigt ist. Zusätzlich kann Raum an dem Beginn des optimierten Files zugewiesen werden, um den Querverweistabellenabschnitt 64 und die Bereichstabelle 66 zu speichern, welche unten beschrieben sind bzw. werden. Auch wird Information für die Querverweistabelle 58, die die Orte von Objekten in dem File beschreibt, im Speicher gespeichert, wenn die Objekte in diesem Schritt geschrieben werden.
  • In einer alternativen Ausbildung können die Seiteninhalte und geteilten Objekte im optimierten Dokumentenfile 62 in einer verschachtelten Reihenfolge gespeichert werden, wo Abschnitte von Seiteninhalten durch geteilte Objekte gefolgt sind, auf welche durch diese Abschnitte Bezug genommen ist. In einer Ausbildung werden die Daten in einer verschachtelten Reihenfolge gelesen oder heruntergeladen, jedoch nicht in der verschachtelten Reihenfolge gespeichert.
  • Ein Überlappen bzw. Verschachteln ist in größerem Detail unter Bezugnahme auf 9 und 12 beschrieben. In einer alternativen Ausbildung wird lediglich der Inhalt der ersten Seite physikalisch in einer verschachtelten Reihenfolge in dem optimierten File derart gespeichert, daß die Bereichstabelle 66 nicht heruntergeladen werden muß, welches eine Verbindung zu (oder eine Transaktion mit) dem Hostcomputer sparen und eine anfängliche Herunterladezeit des Files reduzieren kann.
  • Im nächsten Schritt 78 wird die Querverweistabelle 58 (oder eine äquivalente Struktur, die andere Datei- bzw. Fileformate verwendet) in das File geschrieben, und in einer Ausbildung zu dem Ende des Files nach den speziellen Objekten 61, wie dies in 3b gezeigt ist. Die Querverweistabelle 58 ist eine Auflistung von Objekten in dem Dokument und den Offsets bzw. Abständen (beispielsweise in Bytes) vom Beginn des Files für den Start jedes Objekts, und erlaubt einen beliebigen bzw. zufälligen Zugriff zu den Objekten in dem Dokument (die Gehäusetabelle stellt jedoch nicht die Arten von Objekten oder Seiten zur Verfügung, wo die Objekte angeordnet sind). Ein "Trailer" für ein PDF File kann auch in diesem Schritt geschrieben werden. Die Information für die Querverweistabelle wird bestimmt, wenn jedes Objekt zu dem optimierten File in Schritt 76 geschrieben wird, wie dies oben erklärt ist. Die Ausbildung von Querverweistabellen in PDF Files ist Fachleuten gut bekannt.
  • In Schritt 80 wird der Abschnitt 64 von Seite eins der Querverweistabelle 58 zu dem optimierten Dokumentenfile 62 geschrieben, und ist bzw. wird in einer Ausbildung nahe dem Beginn des Files geschrieben (wobei Raum zum Speichern der Bereichstabelle 66 freigelassen wird). Dieser Abschnitt 64 der Querverweistabelle 58 bezieht sich auf Objekte auf der ersten Seite des elektronischen Dokuments und ist nahe dem Beginn des Files angeordnet, so daß die Information von Seite eins sobald wie möglich in einem Herunterladeverfahren entnommen bzw. gewonnen werden kann. Die Inhalte der ersten Seite können somit unmittelbar nach Empfangen dieser Inhalte angezeigt werden, wenn der Dokumentenfile 62 (wie in 10) heruntergeladen wird.
  • In Schritt 82 wird die Seiten-Offsettabelle 68 der vorliegenden Erfindung erzeugt und in dem optimierten File angeordnet. In einer Ausbildung wird sie nahe dem Ende des optimierten Files 62 nach der Querverweistabelle 58 angeordnet. Die Information in der Seiten-Offsettabelle erlaubt, daß auf jede Seite des elektronischen Dokuments schnell zugegriffen und diese schnell heruntergeladen wird. Die Seiten-Offsettabelle kann in dem optimierten File 62 derart beinhaltet sein, daß ein gesondertes Offset-Tabellenfile nicht heruntergeladen, bearbeitet, aktualisiert oder mit einem Seiteninhaltsfile assoziiert werden muß. Jedoch können in alternativen Ausbildungen die Seiten-Offsettabelle und gegebenenfalls andere Indextabellen in einem oder mehreren Sekundärfile(s) gespeichert werden, das bzw. die fakultativ auf gesonderten Hostcomputern vorliegt bzw. vorliegen. In einer Ausbildung ist ein Zeiger zur Seiten-Offsettabelle in der Bereichstabelle 66 (unten beschrieben) nahe dem Beginn des Files 62 so angeordnet, daß auf die Seiten-Offsettabelle zugegriffen werden kann, nachdem die Information von Seite eins in einem Herunterladeverfahren heruntergeladen wurde. Da die Seiten-Offsettabelle nicht erforderlich ist, um Seite eins des Dokuments anzuzeigen, ist sie nicht am Beginn des Files angeordnet. Alternativ kann die Seiten-Offsettabelle an anderen Orten in dem optimierten File 62 zur Verfügung gestellt werden, beinhaltend am Beginn. Die Seiten-Offsettabelle wird in größerem Detail in bezug auf 8 beschrieben.
  • In Schritt 84 wird die Bereichstabelle 66 (und fakultativ eine Kopfzeile bzw. ein Header) am unmittelbaren Beginn des optimierten Files 62 geschrieben. Die Bereichstabelle stellt die Offsets bzw. Abstände und Längen für die Seiteninhalte und geteilten Objekte der ersten Seite des Dokuments zur Verfügung und funktioniert bzw. fungiert somit etwa ähnlich wie die Seiten-Offsettabelle 68. Das Verfahren eines Schreibens der Bereichstabelle ist bzw. wird in größerem Detail unter Bezugnahme auf 9 beschrieben. Andere notwendige Information kann in diesem Schritt ebenfalls geschrieben werden; beispielsweise speichern PDF Files einen Zeiger zu den Inhalten des Dokumentenfiles an dem Ende des Files nach dem "Trailer". Das Verfahren 70 ist dann bei 86 vollständig.
  • 5 ist ein Flußdiagramm, das Schritt 74 von 4 illustriert, in welchem eine innere bzw. interne Liste von Objekten und Listen von geteilten Objekten aus dem nicht optimierten tragbaren elektronischen Dokument erzeugt werden. Das Verfahren beginnt bei 88. In Schritt 89 werden jegliche Erbdaten von Elternobjekten in Kinderobjekte von dem Seitenbaum herunterkopiert, wie dies geeignet bzw. angemessen ist. Dieser Schritt wird implementiert, wenn, wie in PDF Files, einige Kinderobjekte nicht bestimmte erforderliche Daten beinhalten und stattdessen sich auf diese erforderlichen Daten von einem Eltern- bzw. Hauptobjekt beziehen und diese "erben", beispielsweise Anzeigebefehle, Orientierungsbefehle, usw. Da die vorliegende Erfindung Objektdaten aufzeichnet und nicht fähig sein kann bzw. muß, sich leicht auf ein Elternobjekt zu beziehen, werden lediglich Erbdaten von Elternobjekten in Kinderobjekte, welche derartige Daten erfordern, in Schritt 89 kopiert.
  • In Schritt 91 werden die Seitenbaumobjekte zu einer gesonderten internen Liste des Seitenbaums hinzugefügt, mit Ausnahme der Seitenbaumobjekte für die erste Seite. Lediglich die Seitenbaumobjekte der ersten Seite müssen zu Beginn in einem Herunterladeverfahren heruntergeladen werden, so daß andere Seitenbaumobjekte in einer gesonderten Liste in Schritt 91 organisiert werden können und später nahe dem Ende des Files (unten beschrieben) geschrieben werden können. In Schritt 92 wird eine Variable P auf 1 initialisiert und überprüft, ob sie kleiner als oder gleich der Anzahl von Seiten in dem Dokument ist. Wenn dies der Fall ist, wird in Schritt 94 das Seitenobjekt für Seite P von dem nicht optimierten Dokumentenfile (oder dem nicht optimierten Dokument, das in dem Speicher gespeichert ist) entnommen und in eine innere bzw. interne Liste geschrieben. Ein Seitenobjekt, wie es typischerweise in einem PDF File oder ähnlichem Format definiert ist, ist ein Objekt, welches sich auf andere Objekte bezieht, welche in der Seite inkludiert und kollektiv angezeigt sind. Somit entnimmt, indem das Seitenobjekt für die Seite P entnommen wird, das Verfahren auch indirekt Referenzen bzw. Bezugnahmen (Zeiger) zu den Seiteninhaltobjekten der Seite P und jeglichen anderen referenzierten Objekten. Schritt 94 findet das Seitenobjekt für Seite P in dem nicht optimierten File durch eine Verwendung der Querverweistabelle von dem nicht optimierten File (welches durch den Betrachter verwendet werden kann). Die Objektidentifikation (ID) von Seite P wird zu einer internen Liste geschrieben und in dem RAM 16 oder einem anderen Speicher gespeichert. In PDF oder anderen Arten von Files beinhaltet ein Objekt typischerweise eine Objekt ID, welche eine Zahl oder andere Identifikation ist, welche einzigartig das Objekt innerhalb des Dokumentenfiles identifiziert. Eine Zahlidentifikation für das Objekt der Seite P wird zu der inneren Liste in dieser beschriebenen Ausbildung geschrieben.
  • In Schritt 96 wird, wenn die Seitenikons 50 ("Thumbnails") in der Betrachterausbildung implementiert sind, wie dies in 2b gezeigt ist, ein Seitenikonobjekt für die gegenwärtige Seite P typischerweise zu einer gesonderten Seitenikonliste hinzugefügt, wenn die anfängliche angezeigte bzw. dargestellte Ansicht nicht Seitenikons beinhaltet. In Betrachtern, wie Acrobat, kann der Benutzer ein File sichern, das das Dokument bezeichnet, das mit einem Seitenikon anzuzeigen ist, wie dies in 2b gezeigt ist, wenn es anfänglich heruntergeladen und angezeigt wird. Wenn das gegenwärtige, nicht optimierte Dokument so bezeichnet wurde, werden Seitenikonobjekte erforderlich, um die erste Seite anzuzeigen. Daher kann in einer Ausbildung Schritt 96 ausgelassen werden, und die Seitenikonobjekte können zu der internen Liste hinzugefügt werden, nachdem alle Objekte der ersten Seite hinzugefügt wurden, d.h. eine negative Bestimmung von Schritt 108 für die erste Seite (beispielsweise P = 1)). Alternativ kann ein Seitenikon für eine spezifische Seite nach seinen Seiteninhalten gespeichert werden. Andere spezielle Objekte, welche nicht für ein Anzeigen des Dokuments notwendig sind, können auch zu einer spezialisierten inneren Liste in Schritt 96 hinzugefügt werden, so daß diese Objekte an das Ende des Dokumentenfiles geschrieben werden können. Hier beziehen sich "spezielle Objekte" auf Seitenikonobjekte, Lesezeichenobjekte, Seitenbaumobjekte und jegliche ähnliche Arten von Objekten, welche üblicherweise nicht notwendig sind, um eine Seite anzuzeigen, und nahe dem Ende des optimierten Dokumentenfiles zur Verfügung gestellt werden können.
  • Im nächsten Schritt 98 wird das nächste Objekt "auf" Seite P in einer bezeichneten Reihenfolge entnommen, d.h. das nächste Objekt, auf das durch das Objekt von Seite P in der bezeichneten Reihenfolge von Objekten Bezug genommen wird. Die "bezeichnete bzw. bestimmte Reihenfolge" von Objekten ist die Reihenfolge von Objekten, in welcher der Provider des optimierten Files (oder der Implementierer des Verfahrens 74) wünscht, heruntergeladen und angezeigt zu werden, wenn auf eine Seite von dem File zugegriffen wird. Somit. können, wenn das optimierte File 62 heruntergeladen wird, bestimmte Arten von Objekten zuerst angezeigt werden, während andere Arten von Objekten immer noch heruntergeladen werden. Beispielsweise ist es typischerweise wünschenswert, den Text (d.h. Seiteninhaltobjekte) auf einer Seite vor den Bildern auf der Seite anzuzeigen, wenn die Seite heruntergeladen wird, da der Benutzer, welcher die Seite herunterlädt, den Text lesen kann, während die Bilder immer noch heruntergeladen werden. Aus dem Textinhalt kann der Benutzer schnell bestimmen, ob es seine oder ihre Zeit wert ist, das Herunterladen und Anzeigen eines Bilds abzuwarten, oder ob das Seitenherunterladen unterbrochen und eine neue Seite heruntergeladen werden sollte.
  • In einer Ausbildung ist die bezeichnete Reihenfolge von Objekten Links bzw. Verbindungen, Nicht-Bild-"Ressourcenobjekte" (d.h. Nicht-Bildobjekte in einem Ressourcenwörterbuch), Seiteninhaltobjekte, Bildobjekte, Lesezeichenobjekte, benutzerdefinierte Objekte oder andere Objekte.
  • Diese Reihenfolge erlaubt es, daß Verbindungen zuerst heruntergeladen werden und aktiv sind. Da Verbindungen typischerweise als rechteckige (oder anders geformte) "Begrenzungsboxen" bzw. "Bounding boxes" implementiert sind, welche Text, Graphiken, Bilder oder andere Objekte beinhalten, sind die Verbindungen in vorteilhafter Weise zuerst in der bezeichneten Reihenfolge, so daß, wenn ein eingeschlossenes Objekt einer Verbindung später angezeigt wird, die Verbindung bereits für Benutzereingaben bereit bzw. empfänglich sein wird. Andere Arten von Objekten, welche zu einem Dokument durch einen Betrachter hinzugefügt werden können, sind mit Verbindungen in der bezeichneten Reihenfolge geordnet. Nicht-Bild-"Ressourcenobjekte" werden als nächstes angefordert, welche geteilte Objekte, wie Fontobjekte, Farbmappenobjekte und dgl. beinhalten. Fontobjekte stellen die Daten zur Verfügung, um zu bestimmen, wie Text erscheinen wird, und Farbmappenobjekte zeichnen Farben zu unterschiedlichen Anzeigeausgabevorrichtungen auf, wie dies Fachleuten gut bekannt ist. Die Font- und Farbmappenobjekte sind erforderlich, um Text und Graphiken anzuzeigen, und sollten somit eng in der Zeit zu den Seiteninhaltobjekten, welche sich auf diese beziehen, heruntergeladen werden. In PDF Files sind diese Arten von Objekten typischerweise in einem "Ressourcenverzeichnis" angeordnet, welches in dem Seiteninhaltobjekt 56 eines Dokumentenfiles (oder als ein gesondertes Objekt) angeordnet ist und für ein Dekodieren von Seiteninhalten verwendet wird, um Objekte mit Objektbezügen bzw. -referenzen aufzuzeichnen. Bildobjekte können ebenfalls in dem Ressourcenverzeichnis in typischen PDF Files bezogen sein; jedoch werden sie später in der bezeichneten Reihenfolge angefordert. Die Seiteninhaltobjekte (Text und Graphiken) werden als nächstes in der bezeichneten Reihenfolge angefordert, welche es einem Benutzer er möglicht bzw. erlaubt, schnell Text/Graphiken herunterzuladen und zu sehen und den Gegenstandsinhalt der Seite zu bestimmen. Die Bildobjekte werden als nächstes nahe dem Ende der bezeichneten Reihenfolge angefordert, da sie üblicherweise Objekte größter Größe sind und die meiste Herunterladezeit erfordern. Objekte, auf die durch ein Lesezeichenobjekt Bezug genommen wird, wie dies in 2a gezeigt ist, sind die nächsten in der Reihenfolge. Diese Objekte sollten so heruntergeladen werden, daß auf sie durch das Lesezeichen zugegriffen werden kann, und sind ein spezieller Fall, wie dies unten erklärt ist. Benutzerdefinierte Objekte und jegliche andere Arten von Objekten werden als Letztes angefordert.
  • Andere bezeichnete Reihenfolgen von Objekten können in andere Ausbildungen implementiert werden. Beispielsweise können Verbindungen bzw. Links nach Text- und Graphikobjekten heruntergeladen werden. Alternativ kann dem Benutzer, der das optimierte File 62 erzeugt, eine Option eines Eingebens einer gewünschten bezeichneten Reihenfolge von Objekten angeboten werden.
  • Das nächste Objekt in der bezeichneten Reihenfolge von Objekten wird somit in Schritt 98 entnommen. D.h. wenn dies das erste Mal ist, wenn Schritt 98 implementiert ist, wird ein Link- bzw. Verbindungsobjekt entnommen. Sobald alle Verbindungsobjekte entnommen wurden und den Listen in Schritt 102 des gegenwärtigen Verfahrens hinzugefügt wurden, wird ein Objekt, das als nächstes in der bezeichneten Reihenfolge ist (beispielsweise Ressourcenobjekte), dann in Schritt 98 entnommen usw.
  • In Schritt 100 bestimmt das Verfahren, ob das entnommene Objekt bereits in bezug auf eine unterschiedliche Seite überprüft wurde oder ob das entnommene Objekt ein erzwungenes bzw. zwangsweises geteiltes Objekt ist. Wenn das entnommene Objekt bereits auf eine unterschiedliche Seite überprüft wurde, dann wird dieses Objekt als ein geteiltes bzw. gemeinsam genutztes Objekt bezeichnet, d.h. das Objekt wurde durch eine frühere überprüfte Seite/Seiteninhaltobjekt oder die gegenwärtige Seite/Seiteninhaltobjekt referenziert und wurde bereits entnommen und bearbeitet. Andere Objekte können potentiell ein geteiltes Objekt sein; beispielsweise kann auf ein Seiteninhaltobjekt oder ein Bildobjekt in dem Dokumentenfile durch zwei oder mehrere Seiten Bezug genommen werden. Dieses Verfahren kann überprüfen, ob ein Objekt geteilt ist, indem die innere bzw. interne Liste überprüft wird, welche bisher in dem gegenwärtigen Verfahren erzeugt wurde. Wenn eine Objekt ID gefunden wird, die identisch mit der des gegenwärtigen Objekts ist, dann wird von dem Objekt angenommen, daß es ein geteiltes Objekt ist.
  • Auch in einer Ausbildung wird in Schritt 100, wenn das entnommene Objekt ein zwangsweise geteiltes Objekt ist, dann das Objekt automatisch gezwungen (bezeichnet), daß es ein geteiltes Objekt ist, unabhängig davon, ob auf das Objekt tatsächlich durch mehrere Seiten Bezug genommen wird oder nicht. Hierin beinhalten "erzwungene" bzw. "zwangsweise" geteilte Objekte derartige Ressourcenobjekte, wie Fontobjekte und Farbmappenobjekte, beinhalten jedoch nicht Ressourcenobjekte, wie Bildobjekte oder Procset-Objekte. Font- und Farbmappenobjekte werden gezwungen, geteilte Objekte zu sein, da sie in dem Dekodieren von Seiteninhalten erforderlich sind und in speziellen Ausbildungen vorteilhafterweise in dem Herunterladeverfahren, wie dies unten beschrieben ist, verschachtelt sein können. "Procsets" werden für Druckzwecke verwendet, wie dies Fachleuten gut bekannt ist und müssen nicht notwendigerweise gezwungen sein, geteilte Objekte zu sein (Bilder und Procsets können geteilte Objekte sein, wenn auf sie durch mehrere Seiten Bezug genommen wird).
  • Zusätzlich kann der Benutzer seine oder ihre eigenen nicht standardisierten, geteilten Objekte zur Verfügung stellen, auf die auf mehreren Seiten Bezug genommen werden kann. Beispielsweise könnte ein Benutzer ein Verzeichnistabellenobjekt in dem Dokument zur Verfügung stellen, auf welches durch mehrere Seiten Bezug genommen wird. Auf derartige benutzerdefinierte geteilte Objekte wird nicht notwendigerweise Bezug genommen und müssen nicht Seiteninhalte, wie Text anzeigen, und werden daher als "nicht-inhaltsgeteilte Objekte" bezeichnet.
  • Wenn das entnommene Objekt nicht ein geteiltes Objekt ist, dann wird Schritt 102 ausgeführt, in welchem die Objekt ID des entnommenen Objekts an das Ende der internen Liste hinzugefügt wird. Die interne Liste hat somit eine Reihenfolge von Objekten, beinhaltend ein Seitenobjekt, gefolgt durch alle die Objekte (in der bezeichneten Reihenfolge), auf die durch diese Seite Bezug genommen ist.
  • In Schritt 103 werden spezielle Objekte verarbeitet, wenn vorbestimmte Bedingungen erfüllt werden. Beispielsweise sind bzw. werden in der beschriebenen Ausbildung Objekte von Lesezeichen 45 eine spezielle Art von Objekt, welche in Schritt 103 verarbeitet werden, wenn die gegenwärtige Seite die erste Seite ist (P = 1), und wenn Bildobjekte auf der gegenwärtigen Seite alle bearbeitet wurden, (d.h. Bookmark- bzw. Lesezeichenobjekte sind nach Bildobjekten in der bezeichneten Reihenfolge). Wenn diese Bedingungen erfüllt sind, dann überprüft das Verfahren auch, ob die Lesezeichenansicht 45 anzuzeigen ist, wenn das Dokument anfänglich geöffnet wird, d.h. wenn die Lesezeichenansicht in 2a die Default-Anfangsansicht ist. Wenn ja, werden die ID's einer vorbestimmten Anzahl von Lesezeichenobjekten (beispielsweise 60) zu der internen Liste hinzugefügt. Diese Anzahl ist die Anzahl von Lesezeichenobjekten, welche anfänglich in der Lesezeichenansicht 45 gezeigt würden, wie dies in 2a gezeigt ist. Der Rest der Lesezeichenobjekte wird dann zu einer gesonderten internen Lesezeichenliste hinzugefügt, analog zur Ikonliste der gesonderten Seite, die oben beschrieben ist. Wenn die Lesezeichenansicht von 2a nicht die Default-Anfangsansicht ist, dann werden alle der Lesezeichenobjekte der gesonderten Lesezeichenliste in Schritt 103 hinzugefügt. Dieser Schritt erlaubt es Objekten, die in der Lesezeichenansicht angezeigt sind, mit den Inhaltsdaten der ersten Seite so gruppiert zu werden, daß die Lesezeichenobjekte schnell mit den Daten der ersten Seite in einem Herunterladeverfahren heruntergeladen und angezeigt werden können (wenn die anfängliche Dokumentenanzeige die Lesezeichenansicht beinhaltet). Das Verfahren setzt dann bei Schritt 108 fort, wie dies unten detailliert ist.
  • Wenn das entnommene Objekt ein geteiltes Objekt in Schritt 100 ist, dann wird Schritt 104 implementiert, in welchem das geteilte Objekt be- bzw. verarbeitet wird und eine Liste von teilenden bzw. Teilungsseiten erzeugt wird. Dieser Schritt wird in größerem Detail in bezug auf 6 beschrieben. Im nächsten Schritt 106 wird die Objekt ID des geteilten Objekts zu der Liste von geteilten Objekten hinzugefügt, welche ähnlich zur internen Liste ist mit der Ausnahme, daß sie lediglich ID's eines geteilten Objekts von Objekten beinhaltet, welche durch das Verfahren 74 überprüft wurden.
  • 5a ist eine diagrammartige Illustration einer Liste 148 von geteilten Objekten, wie sie in Schritt 106 von 5 bearbeitet wird. Die Liste 148 von geteilten Objekten beinhaltet einen Knoten 150 für jedes geteilte Objekt, das in dem Verfahren von 5 gefunden wird. Jeder Knoten 150 beinhaltet ein Objekt ID Feld 152 für ein Speichern einer Objekt ID eines Objekts und eines Inhaltsflagfelds 154 für ein Speichern eines Inhaltsflags, wie dies nachfolgend detailliert wird.
  • Nach Schritt 102 oder Schritt 106 wird Schritt 108 implementiert, wo das Verfahren überprüft, ob es irgendwelche zusätzlichen Objekte auf Seite P gibt, welche noch nicht überprüft bzw. untersucht wurden. Wenn ja, kehrt das Verfahren zu Schritt 98 zurück, um das nächste Objekt in der bezeichneten Reihenfolge von Objekten zu entnehmen. Wenn es keine zusätzlichen Objekte gibt, wird Schritt 110 implementiert, in welchem die Anzahl von Objekten auf Seite P im Speicher gespeichert wird. Diese Zahl kann durch ein Zählen aller neu hinzugefügten Objekt ID's in der internen Liste bestimmt werden. Das Verfahren kehrt dann zu Schritt 92 zurück, um die Variable P zu inkrementieren bzw. zu erhöhen und neuerlich zu überprüfen, ob P kleiner oder gleich der Anzahl von Seiten in dem Dokument ist.
  • Sobald alle Seiten des nicht optimierten Dokuments durch die zuvor erwähnten Schritte bearbeitet wurden, setzt das Verfahren bei Schritt 112 fort, in welchem eine Liste von geteilten Seiten vervollständigt ist und alle geteilten bzw. teilenden Objekte und andere Objekte in die innere Liste inkorporiert bzw. aufgenommen werden. Die Liste von teilenden Seiten wird in der Verarbeitung von geteilten Objekten in Schritt 104 ausgebildet. Nachdem die geteilten und andere Objekte in die interne Liste inkorporiert wurden, dann ist die interne Liste bereit verwendet zu werden, um alle Objekte in der optimierten Reihenfolge in Schritt 76 von 4 zu schreiben. Schritt 112 wird in größerem Detail unter Bezugnahme auf 7 beschrieben. Das Verfahren ist dann bei 114 vollständig.
  • 6 ist ein Flußdiagramm, das den Schritt 104 von 5 illustriert, wobei das entnommene geteilte bzw. gemeinsam genutzte Objekt bearbeitet wird. Das Verfahren 104 beginnt bei 116 und in Schritt 118 überprüft das Verfahren, ob das entnommene Objekt das erste geteilte Objekt auf Seite P ist. Dies wird durch Überprüfen bestimmt, ob Seite P bereits in der Liste von teilenden Seiten ist. Wenn Seite P bereits in der Liste von teilenden Seiten ist, dann wurde gefunden, daß auf ein geteiltes Objekt bereits durch Seite P Bezug genommen wurde, und Schritt 122 wird implementiert. Wenn Seite P nicht in der Liste von teilenden Seiten gefunden wird, dann wird in Schritt 120 Seite P zu der Liste von teilenden Seiten hinzugefügt.
  • 6a ist eine schematische Illustration einer Liste 136 von teilenden Seiten der beschriebenen Ausbildung. Diese Liste wird erzeugt und auf sie während des Verfahrens 104 von 6 Bezug genommen. Wie dies beschrieben ist, wird die Liste als eine verbundene Liste zur Verfügung gestellt, deren Implementierung Fachleuten gut bekannt ist. Andere Implementierungen der Liste können ebenfalls zur Verfügung gestellt werden. Eine Seite wird durch einen Seitenknoten 138 dargestellt bzw. repräsentiert, wobei jeder Seitenknoten mit einem anderen Seitenknoten beispielsweise in einer sortierten numerischen Ordnung bzw. Reihenfolge der Seiten verbunden ist. Wenn ein Seitenknoten in der Liste 136 existiert, dann beinhaltet diese Seite geteilte Objekte, wie dies durch Schritte 118 und 120 von 6 bestimmt ist.
  • Zurückkommend auf 6 wird, wenn das Objekt nicht das erste geteilte Objekt ist, durch das auf Seite P Bezug genommen wird, oder nach Schritt 120, dann Schritt 122 implementiert. In Schritt 122 überprüft das Verfahren, ob das entnommene Objekt in der Objektliste von Seite P vorliegt. Wie dies in 6a gezeigt ist, wird auf eine Objektliste 140 durch einen Seitenknoten 138 Bezug genommen, wenn diese Seite sich auf geteilte Objekte bezieht. Eine Objektliste 140 beinhaltet eine Anzahl von Objektknoten 142, welche jeweils ein geteiltes Objekt repräsentieren, auf das durch die Seite des entsprechenden Seitenknotens Bezug genommen wird. In Schritt 122 überprüft das Verfahren, ob das entnommene geteilte Objekt bereits in der Objektliste 140 von Seite P vorliegt. Wenn eine derartige Bedingung existiert, zeigt sie an, daß zahlreiche Bezüge bzw. Bezugnahmen auf das geteilte Objekt auf Seite P vorhanden sind. Da lediglich das erste Aufscheinen des geteilten Objekts auf einer Seite für die vorliegende Erfindung erforderlich ist, wird Schritt 126 dann implementiert, wie dies unten detailliert ist. Wenn jedoch das entnommene Objekt nicht in der Objektliste 140 von Seite P ist, dann wird in Schritt 124 ein Objektknoten 142 zu der Objektliste 140 hinzugefügt und eine teilende bzw. Teilungs ID wird zu einem ID Feld 144 des Objektknotens hinzugefügt (der Objektknoten 142 beinhaltet auch ein Fraktionsfeld 146, wie dies unten detailliert ist). Die "Teilungs ID" ist eine Identifikation für das Objekt, welche einzigartig das Objekt in der Liste von teilenden Seiten identifiziert. Die Teilungs ID kann eine Zahl n sein, welche anzeigt, daß ein geteiltes Objekt das n-te geteilte Objekt ist, welches in dem Dokument gefunden wurde. Beispielsweise zeigt eine Teilungs ID "0" an, daß ein Objekt das erste geteilte Objekt ist, das in dem Dokument gefunden ist, eine "1" ist das zweite geteilte Objekt, das gefunden wurde, usw. Die Teilungs ID ist nicht dieselbe wie die Objekt ID, da eine sequentielle Objekt ID m anzeigen würde, daß das Objekt das m-te (geteilte oder nicht geteilte) Objekt in dem Dokument ist. Der Objektknoten 142 und die Teilungs ID würden natürlicherweise zur Objektliste 140 in einer sortierten numerischen Ordnung gemäß der Teilungs ID hinzugefügt werden.
  • Schritt 126 wird dann implementiert, in welchem das Verfahren überprüft, ob das entnommene Objekt das erste geteilte Objekt auf der ursprünglichen bzw. Originalseite ist, d.h. ob die Originalseite bereits in der Liste 136 von teilenden Seiten vorkommt. Die "Originalseite" ist irgendeine andere vorherige Seite, welche sich auch auf das geteilte Objekt bezieht. Es kann bzw. muß nicht eine Originalseite sein bzw. vorliegen, wenn beispielsweise das entnommene geteilte Objekt ein zwangsweises bzw. erzwungenes geteiltes Objekt ist (beispielsweise ein Font). Das Verfahren bestimmt die Originalseite durch beispielsweise Überprüfen einer Tabelle, welche jedes Objekt einloggt, und der Seite, auf welcher jedes Objekt angeordnet ist. Wenn das entnommene Objekt nicht das erste geteilte Objekt auf der Originalseite ist, dann wird Schritt 130 ausgeführt, der unten detailliert ist. Wenn das entnommene Objekt das erste geteilte Objekt auf der ursprünglichen bzw. Originalseite ist, dann wird in Schritt 128 ein Seitenknoten 138 entsprechend der Originalseite zu der Liste von teilenden Seiten hinzugefügt. Neue Knoten können zu der Liste 136 in einer numerischen sortierten Reihenfolge durch Seitennummern hinzugefügt werden. Beispielsweise ist bzw. wird ein geteiltes Objekt, das durch einen Knoten 142a bezeichnet ist, auf Seite 9 gefunden und es wird ihm eine Teilungs ID von "1" zugewiesen. Seite 1 beinhaltet auch dasselbe Objekt, so daß der Knoten 142b zu der Objektliste 140 des Seitenknotens für Seite 1 hinzugefügt wird. Das Verfahren geht dann zu Schritt 130.
  • Nach einer negativen Bestimmung von Schritt 126 oder nach Schritt 128 wird Schritt 130 ausgeführt, in welchem das Verfahren überprüft, ob das entnommene Objekt in der (den) Objektliste(n) 140 der Originalseite(n) vorhanden ist. Dieser Schritt ist im wesentlichen ähnlich zu Schritt 122 oben. Wenn das Objekt bereits in der Liste 140 der ursprünglichen Seite vorliegt, dann setzt das Verfahren bei Schritt 133 fort, der unten beschrieben ist. Wenn das Objekt nicht in der Liste 140 der ursprünglichen Seite ist, dann werden in Schritt 132 ein Objektknoten und eine Teilungs ID für das entnommene Objekt zu der Objektliste 140 der ursprünglichen Seite hinzugefügt. Das Verfahren setzt dann bei Schritt 133 fort.
  • In Schritt 133 überprüft das Verfahren, ob das entnommene Objekt ein zwangsweises geteiltes Objekt ist oder ob das Objekt nicht in der Objektliste von Seite P ist. Wenn irgendeine Bedingung wahr ist, wird Schritt 131 ausgeführt, in welchem Schritte 104 und 106 von 5 rekursiv für alle der Kinderobjekte ausgeführt werden, auf die durch das entnommene Objekt (falls überhaupt) Bezug genommen wird, beinhaltend Kinderobjekte von anderen Kindern, usw. Dieser Schritt zwingt, daß Kinderobjekte eines geteilten Elternobjekts ebenfalls geteilt werden. Derartige Kinderobjekte können beispielsweise Breiten von Buchstaben bzw. Zeichen für einen üblichen Font usw. beinhalten. Nach Schritt 131, oder wenn keine der Bedingungen von Schritt 133 wahr ist, dann ist das Verfahren bei Schritt 134 vervollständigt.
  • Schritte 118124 können als eine Funktion implementiert sein bzw. werden, welche ein Objekt überprüft, das zu der Funktion durch einen Funktionsanruf zugeleitet wurde. Dieselbe Funktion kann dann Schritte 126, 128, 130 und 132 ausführen, indem die ursprüngliche Seite zu der Funktion durch einen zweiten Anruf weitergeleitet wird. 7 ist ein Flußdiagramm, das Schritt 112 von 5 illustriert, in welchem die Liste von teilenden Seiten komplettiert ist und geteilt wird und andere Objekte zu der internen Liste hinzugefügt werden. Das Verfahren 112 beginnt bei 156. In Schritt 158 wird der nächste Seitenknoten 138 in der Liste 136 von teilenden Seiten entnommen. Wenn dies der das erste Mal ausführende Schritt 158 ist, dann wird der erste Seitenknoten in der Liste 136 entnommen. Im nächsten Schritt 160 bestimmt das Verfahren, ob es irgendwelche weiteren Seitenknoten in der zu überprüfenden Liste 136 gibt, d.h. ob eine Null oder ein Symbol eines Endes der Lise in Schritt 158 entnommen wurde, um anzuzeigen, daß alle Seitenknoten überprüft wurden. Wenn es keine weiteren Seitenknoten zu überprüfen gibt, wird Schritt 170 durchgeführt, der unten detailliert ist. Wenn ein neuer, nicht überprüfter Seitenknoten in Schritt 158 entnommen wurde, dann werden in Schritt 162 die Namen der Ressourcenobjekte, wel che ebenfalls geteilte Objekte für die gewählte Seite sind, von dem Ressourcenverzeichnis unter Verwendung der Liste 148 von geteilten Objekten entnommen (ein Ressourcenverzeichnis ist typischerweise mit jedem Seitenobjekt assoziiert). Lediglich bestimmte Arten von Ressourcenobjekten werden entnommen, von welchen gewünscht wird, daß sie in dem Herunterladeverfahren verschachtelt werden. In der beschriebenen Ausbildung beinhalten diese gewünschten Ressourcenobjekte Fontobjekte, Farbmappenobjekte und (geteilte) Bildobjekte. Jedes Ressourcenobjekt hat typischerweise einen "Namen", welcher eine Identifikation für das Objekt ist, so daß es auf die aktuellen Objektdaten bezogen werden kann. Beispielsweise können Fontobjekte einen Namen, wie "f1" oder "f2", besitzen, welche sich auf ein besonderes Fontobjekt für den Font von "Helvetica", "Times" usw. beziehen.
  • Im nächsten Schritt 164 sucht das Verfahren nach entnommenen geteilten Ressourcenobjektnamen in den Seiteninhaltsabschnitten der gewählten Seite. Beispielsweise greift, wenn Seite 9 die gewählte Seite ist, das Verfahren auf die Seiteninhalte von Seite 9 zu und sucht nach Namen (wie "f1") aus dem Ressourcenverzeichnis, das in Schritt 162 gefunden wurde. In Schritt 166 wird für jedes gefundene Ressourcenobjekt die Bruchteils- bzw. Fraktionszahl der Seiteninhalte, welche das gefundene Ressourcenobjekt beinhalten, in die Objektliste geschrieben, wenn dies das erste gefundene Auftreten des Ressourcenobjekts auf der Seite ist. Beispielsweise können Fraktionen bzw. Brüche bzw. Bruchteile als eine Größe von Achteln bezeichnet werden, so daß ein Bruch 1/8 der Größe der Seiteninhalte ist, und die Bruchzahl für die erste Fraktion ist 0 (null), was 0/8 bis 1/8 der Seiteninhaltsdaten der Seite repräsentiert. Größere oder kleinere Brüche bzw. Anteile können in anderen Ausbildungen bezeichnet sein. Die Bruchgröße wird verwendet, wenn sie überlappen bzw. verschachteln, und kann von der gewünschten Größe von Seiteninhaltsdaten abhängen, die herunterzuladen sind, bevor die geteilten Objekte, auf die durch jene Inhaltsdaten Bezug genommen wird, heruntergeladen werden, wie dies nachfolgend erklärt wird. Wenn ein Ressourcenobjektname in den Seiteninhalten gefunden wird, hat das Verfahren einen Bezug oder eine Referenz oder einen Zeiger zu dem Ressourcenobjekt gefunden. Beispielsweise kann Text in den Seiteninhalten eine Identifikation beinhalten, die sich auf ein Fontobjekt bezieht. Der spezielle Bruch bzw. Anteil der Seiteninhalte, in welchen das Ressourcenobjekt genannt wurde, wird dann in die Objektliste 140 des gegenwärtigen Seitenknotens eingeschrieben. Die Fraktionszahl wird in das Bruch- bzw. Fraktionsfeld 146 eines Objektknotens 142 geschrieben und ist der Dividend des Bruchs, wobei der Divisor eine vorbestimmte Zahl ist, welche in dem Dokumentenfilekopf gefunden werden kann. Beispielsweise für den Objektknoten 142c der Liste 136 in 6a zeigt eine Bruchzahl (Dividend) von "7" an, daß dieses geteilte Objekt in dem Abschnitt von 7/8 bis 8/8 der Seiteninhaltsdaten von Seite 22 auftrat, d.h., wenn die Seiteninhalte in Achtel unterteilt wurden, würde das Objekt in dem letzten Achtel auftreten, wo "8" der vorbestimmte Divisor ist. Eine Bruchzahl ist in ähnlicher Weise für jeden Ressourcennamen geschrieben, der gesucht und auf der Seite gefunden wurde. Auch werden die Bruchzahlen, die in geteilte Elternobjekte geschrieben sind, ebenfalls in jegliche Kinderobjekte von jenen geteilten Elternobjekten geschrieben (Kinder- bzw. Subobjekte sind bzw. werden in Schritt 131 von 6 beschrieben), so daß diese Kinder mit den Elternobjekten überlappt bzw. verschachtelt werden können. In einer Ausbildung wird Bildressourcenobjekten automatisch eine hohe Bruchzahl zugewiesen, so daß Bilder spät in dem verschachtelten Herunterladeverfahren heruntergeladen wurden, wie dies unten beschrieben wird. In einer Ausbildung, die ein Verfahren eines progressiven Renderns von Fonts verwendet, welches unter Bezugnahme auf 13a beschrieben ist, werden Fontbeschreibungsobjekten korrekte Bruchzahlen gegeben, so daß sie nahe zu der Fontbezugnahme in dem verschachtelten Herunterladeverfahren heruntergeladen werden, während Fontdatenobjekte eine hohe Bruchzahl gegeben ist, so daß sie zum Ende der Seite heruntergeladen werden.
  • Auch können in Schritt 166 die Knoten von jeder Objektliste 140 so neu geordnet werden, daß die geteilten Objekte in einer Reihenfolge von dem ersten bis zum letzten Auftreten auf der Seite zur Verfügung gestellt werden. In einer Ausbildung, wo Bildobjekte vom ersten bis zum letzten Auftreten gesondert von anderen geteilten Objekten auf der gewählten Seite geordnet sind, können diese zu dem Ende der Objektliste für die Seite hinzugefügt werden.
  • In Schritt 168 ist das Inhaltsflag, das mit jedem gefundenen Ressourcenobjekt assoziiert ist, in der Liste 148 von gesetzt geteilten Objekten. Wie dies in 5a gezeigt ist, hält das Flagfeld 154 das Inhaltsflag für jedes geteilte Objekt. Dieses Flag wird auf "1" gesetzt, wenn das geteilte Objekt in Schritt 166 gefunden wurde. Das Inhaltsflag zeigt an, welche geteilten Objekte mit Seiteninhalten verschachtelt werden sollten, wenn das optimierte File heruntergeladen wird, wie dies nachfolgend erklärt wird. Geteilte Objekte, welche nicht das Inhaltsflag gesetzt aufweisen, werden nicht in dem Herunterladeverfahren von 10 verschachtelt. (Nicht-Inhaltobjekte, wie benutzerdefinierte Objekte, Procsets und Ressourcenwörterbücher, selbst wenn sie geteilt sind, haben das Inhaltsflag nicht gesetzt).
  • Nach Schritt 168 kehrt das Verfahren zu Schritt 158 zurück, um einen weiteren Seitenknoten 138 von der Liste 136 von teilenden Seiten zu entnehmen. Sobald alle Seitenknoten überprüft wurden, setzt das Verfahren von Schritt 160 zu Schritt 170, wo die ID's von geteilten Objekten von der Liste 148 von geteilten Objekten an das Ende der internen Liste angehängt sind. In Schritt 171 werden die Lesezeichenobjekte auf der internen Lesezeichenliste, Seitenikons auf der internen Seitenikonliste, Seitenbaumobjekte auf der internen Seitenbaumliste und jegliche anderen erforderlichen Objekte an das Ende der internen Hauptliste angehängt. Im nächsten Schritt 172 werden jegliche doppelt geteilten Objekt ID's in dem vorderen Abschnitt (d.h. Abschnitt vor dem Abschnitt der geteilten Objekte) der internen Liste von der internen Liste entfernt. Die geteilten Objekt ID's in der Liste 148 von geteilten Objekten werden mit den Objekt ID's in dem vorderen Abschnitt der internen Liste verglichen und jegliche Übereinstimmungen von der internen Liste werden entfernt. Zusätzlich wird in Schritt 172 die Gesamtzahl von Objekten für eine Seite um das Ausmaß bzw. die Menge der so entfernten abgestimmten Objekte abgesenkt. In Schritt 174 können die geteilten Objekt ID's unter Verwendung der Inhaltsflags neu geordnet werden, die in Schritt 168 gesetzt wurden, so daß geteilte Objekte, auf die durch Seiteninhalte Bezug genommen wird, zuerst geordnet werden. Diese Anforderung bzw. Ordnung ermöglicht, daß die im Inhalt geteilten Objekte gruppiert werden und daß die Seiten-Offsettabelle weniger Speicherplatz er fordert, als wenn die geteilten Objekte nicht neu geordnet wurden. Das Verfahren ist dann bei 176 vollständig.
  • 8 ist ein Flußdiagramm, das Schritt 82 von 4 illustriert, in welchem die Seiten-Offsettabelle der vorliegenden Erfindung entwickelt und in dem optimierten Dokumentenfile gespeichert ist bzw. wird. Das Verfahren von 8 generiert ein Beispiel einer Seiten-Offsettabelle, welche andere Formate und Formen in alternativen bzw. abgewandelten Ausbildungen aufweisen kann. Das Verfahren beginnt bei 180 und in Schritt 182 bestimmt das Verfahren die Länge jeder Seite, in Bytes oder ähnlichen Messungen bzw. Maßen des Inhalts. Dies kann durch ein Überprüfen der Anzahl von Objekten auf einer Seite und ein Bestimmen der Byte-Offsetgröße bzw. -menge zwischen dem ersten Objekt auf der Seite und dem ersten Objekt auf der nächsten Seite bestimmt werden. In Schritt 184 wird Verwaltungs- bzw. Haushaltsinformation in die Seiten-Offsettabelle 68 geschrieben. Ein Beispiel einer Seiten-Offsettabelle 68, auf welche durch das Verfahren 82 Bezug genommen wird, ist in 8a gezeigt. Die Verwaltungsinformation kann die Anzahl von Seiten in dem elektronischen Dokument, die kleinste Anzahl von Objekten auf einer einzigen Seite, den Ort der Querverweistabelle (beispielsweise den Offset bzw. Abstand bzw. Versatz in Bytes von dem Beginn des Files), und die Anzahl von geteilten Objekten in dem Dokument beinhalten. Diese Verwaltungsinformation wird verwendet, um Seiteninformation zu erzeugen, um zu helfen, Abschnitte bzw. Teile des Dokuments herunterzuladen, wie dies in dem Herunterladeverfahren von 10 detailliert ist.
  • Wenn es geteilte Objekte in dem File gibt, dann wird die Verwaltungsinformation von geteilten Objekten zur Seiten- Offsettabelle in Schritt 184 geschrieben. Die Verwaltungsinformation von geteilten Objekten beinhaltet die Anzahl von nicht-inhaltsgeteilten Objekten in dem Dokument, die kleinste Größe eines geteilten Objekts und die Größe des Dividenden für die Bruchgröße (beispielsweise 3 Bits).
  • In Schritt 188 werden die Anzahl von Objekten auf jeder Seite, wie sie in Schritt 110 von 5 und Schritt 170 von 7 bestimmt sind, und die Seitenlängeninformation, wie sie in Schritt 180 bestimmt wird, komprimiert und zu der Seiten-Offsettabelle geschrieben, welche als Information 189 in 8a gezeigt ist. In Schritt 190 werden für jedes geteilte Objekt im Dokument die Länge des geteilten Objekts (beispielsweise in Bytes, bestimmt durch Offsetvergleich) und die Signatur bzw. Unterschrift für das geteilte Objekt (falls anwendbar) in der Seiten-Offsettabelle gespeichert. Eine Signatur ist eine Identifikation, welche ein Speichern von geteilten Objekten ermöglicht, um sicher in dem Herunterladeverfahren bzw. -prozeß verwendet zu werden. Signaturen werden verwendet, um ein Fehlanwenden von Ressourcen (wie Fonts) zu vermeiden, welche unterschiedlich sein können, jedoch trotzdem mit bzw. unter demselben Namen laufen können. Eine Signatur kann aus der Ressource selbst durch irgendein Verfahren mit einer ausreichend hohen Wahrscheinlichkeit berechnet werden, daß es unterschiedliche Werte für unterschiedliche Ressourcen gibt. Somit kann ein geteiltes Objekt in einem Diskettenschnellspeicher bzw. -cache gespeichert werden, nachdem es zuerst für eine Benutzung heruntergeladen wurde, wann immer auf das geteilte Objekt zugegriffen oder durch Seiteninhalte in demselben oder sogar in einem unterschiedlichen Dokumentenfile Bezug genommen wird.
  • Als nächstes wird in Schritt 192 für jede Seite P des Dokuments zusätzliche Information bestimmt und für eine Kompression von Seite P gesammelt, beinhaltend ein Flag eines geteilten Objekts, die Anzahl von geteilten Objekten auf Seite P, Teilungs ID's, ungefähre Seiteninhalts-Bruchinformation und den Divisorwert, der für die Bruchgröße verwendet wird. Das Flag des geteilten Objekts zeigt an, daß sich eine Seite P auf geteilte Objekte bezieht. ID's des geteilten Objekts werden für die geteilten Objekte gespeichert, die durch diese Seite verwendet werden. Die ungefähre Inhaltsbruchinformation wird von den Größen von Seiteninhaltobjekten als ein Bruch bzw. Anteil einer Seitenlänge abgeschätzt; beispielsweise kann diese abgeschätzte Fraktion bzw. dieser abgeschätzte Bruch als "1/8" bezeichnet werden. Der Divisorwert ist beispielsweise "8", wenn die Fraktionslänge als Achtel bestimmt ist. Nachdem die Information in Schritt 192 für jede Seite des Dokuments bestimmt wurde, geht das Verfahren zu Schritt 194, wo die Information für alle Seiten durch gut bekannte Techniken komprimiert und zu der Seiten-Offsettabelle in dem File 62 des optimierten Dokuments geschrieben werden kann. Das Verfahren ist dann bei 196 vollständig.
  • Die Seiten-Offsettabelle 68 wird absichtlich bzw. bewußt klein und kompakt in der Größe gemacht, wo Daten komprimiert werden, wenn dies möglich ist. Da die Seiten-Offsettabelle zusätzliche Daten sind, die normalerweise nicht in nicht optimierten Dokumenten heruntergeladen werden, ist es wünschenswert, daß die zusätzlichen Daten so klein wie möglich sind, so daß ein Benutzer nicht eine zusätzliche Zeitdauer zu warten hat. Zusätzlich ist es, da die Seiten-Offsettabelle kompakt ist, weniger "bemerkbar" (durch Zeitverzögerungen) in einem Herunterladeverfahren als andere be deutend größere Strukturen, wie der "Seitenbaum", die normalerweise in einem PDF Dokument enthalten sind.
  • In alternativen Ausbildungen kann die Seiten-Offsettabelle unterschiedliche oder zusätzliche Daten beinhalten oder die Daten können in unterschiedlichen Formaten gespeichert werden. Beispielsweise können die Liste 136 von geteilten bzw. gemeinsam genutzten Seiten, die interne Liste oder andere Listen, die generiert sind, direkt (und ineffizient) in der Seiten-Offsettabelle in einigen Ausbildungen gespeichert werden.
  • 9 ist ein Flußdiagramm, das Schritt 84 von 4 illustriert, in welchem eine Bereichstabelle 66 für Seite eins des elektronischen Dokuments an dem Beginn des optimierten Dokumentenfiles bzw. Files des optimierten Dokuments geschrieben ist. Die Bereichstabelle stellt Information derart zur Verfügung, daß die Daten von Seite eins des elektronischen Dokuments in dem optimierten File angeordnet und schnell heruntergeladen und angezeigt werden können. Es wird angenommen, daß Seite eins die "erste Seite" ist, d.h., daß gewünscht ist, daß diese zuerst als Default bzw. Vorgabe angezeigt wird, wenn ein Herunterladen eines auf Seiten basierenden elektronischen Dokuments begonnen wird. In anderen Ausbildungen kann eine unterschiedliche Seite defaultmäßig die erste Seite sein, die angezeigt wird.
  • Das Verfahren beginnt bei 200. In Schritt 202 wird Verwaltungsinformation in die Bereichstabelle geschrieben. Diese Verwaltungsinformation ist ähnlich zur Verwaltungsinformation, die unter Bezugnahme auf die obige Seiten-Offsettabelle beschrieben ist. 9a zeigt eine diagrammartige Darstellung bzw. Illustration einer Bereichstabelle der vorliegenden Erfindung. Die Verwaltungsinformation beinhaltet die Anzahl von Bereichen von Daten, welche für die erste Seite heruntergeladen werden. Diese Bereiche können verschachtelte bzw. überlappende Abschnitte von Seiteninhalt und geteilten bzw. gemeinsam genutzten Objekten (unten beschrieben) beinhalten. Die Liste 136 von geteilten Seiten kann herangezogen werden, um zu bestimmen, wie geteilte Objekte mit Seiteninhalt zu verschachteln sind, durch Überprüfen der Anteils- bzw. Bruchzahlen in den Objektknoten 142 und geeignetes Verschachteln der geteilten Objekte mit dem Seiteninhalt. Alternativ wird kein Verschachteln angewandt, und der erste Bereich ist ein Inhaltobjekt 56 einer vollständigen Seite, während jegliche zusätzliche Bereiche geteilte Objekte sind, auf die durch Seiteninhalte Bezug genommen ist. Eine Versionsnummer für die Bereichstabelle/Seiten-Offsettabelle in dem gegenwärtigen File kann auch als Verwaltungsinformation gespeichert werden. Auch kann ein Signaturflag für jeden Bereich anzeigen, ob der Bereich (Objekt) eine Signatur aufweist; die Signatur kann auch in der Bereichstabelle gelistet sein bzw. werden. Signaturen können für ein Speichern von geteilten Objekten verwendet werden, wie dies oben beschrieben ist.
  • In Schritt 204 wird ein Zeiger zu der Seiten-Offsettabelle 68 in die Bereichstabelle geschrieben. Dieser Zeiger erlaubt der Seiten-Offsettabelle, daß sie in dem optimierten File angeordnet und heruntergeladen wird, nachdem die Bereichstabelle und die erste Seite heruntergeladen wurden. Im nächsten Schritt 206 überprüft das Verfahren, ob die gesamte Größe der ersten Seite kleiner als eine vorbestimmte minimale Größe ist. Wenn die Seite kleiner als die minimale Größe ist, ist kein Verschachteln von Seitenin halten und geteilten Objekten gewünscht, da die Seiteninhalte so klein sind, daß kein Vorteil in einer Herunterladegeschwindigkeit durch das Verschachteln gewonnen werden kann; tatsächlich kann die Herunterladegeschwindigkeit langsamer sein, wenn die Seite unter der minimalen Größe ist und ein Verschachteln zur Verfügung gestellt wird, was eine längere Wartezeit für den Benutzer erzeugt, um die Seite auf dem Anzeigeschirm zu sehen. Ein Verschachteln von Seiteninhalten und geteilten Objekten wird in größerem Detail unter Bezugnahme auf 12 beschrieben. Beispielsweise kann eine minimale Größe von 4 Kilobytes spezifiziert werden.
  • Wenn die Seite größer als die minimale Größe ist, dann werden in Schritt 208 die Offsets und Längen der Seiteninhalte in die Bereichstabelle geschrieben, die mit den Offsets und Längen der geteilten Objekte verschachtelt ist. D.h. wenn ein Bruch bzw. Anteil der Seiteninhalte eine Bezugnahme auf ein geteiltes Objekt beinhaltet, wird das bezuggenommene bzw. referenzierte geteilte Objekt nach dem Anteil der Seiteninhalte in der Bereichstabelle angeordnet bzw. gereiht. Die verschachtelten Bereiche, die in der Verwaltungsinformation in Schritt 202 bestimmt sind bzw. werden, können verwendet werden. Das Verfahren ist dann bei 210 vollständig.
  • Wenn die Seite kleiner als die minimale Größe in Schritt 206 ist (oder wenn kein Verschachteln aus einem unterschiedlichen Grund gewünscht ist), dann werden in Schritt 212 die Offsets und Längen für die Inhalte der gesamten Seite in die Bereichstabelle so eingeschrieben, daß ein Offset und ein Bereich die Seiteninhalte beschreiben. In Schritt 214 werden die Offsets und Längen für die geteilten Objekte und in einer Ausbildung die Offsets/Längen für die Querverweistabelleneinträge, die für jene geteilten Objekte erforderlich sind, in die Bereichstabelle geschrieben. Sie können beispielsweise in der Reihenfolge geschrieben werden, in welcher sie in der Objektliste 140 gespeichert wurden. Das Verfahren ist dann bei 210 vollständig.
  • Alternativ können andere Bedingungen auch überprüft werden, um die Anordnung von Offsets von Seiteninhalt und geteilten Objekten in der Bereichstabelle einzustellen. Beispielsweise können, wenn die Seiteninhaltobjekte kleiner als 3 Kilobytes in der Größe sind, dann die Offsets der geteilten Objekte nach den Seiteninhaltsdaten ohne Verschachteln angeordnet werden.
  • HERUNTERLADEN EINES OPTIMIERTEN DOKUMENTENFILES
  • 10 ist ein Flußdiagramm, das ein Verfahren 220 zum Herunterladen eines optimierten, auf Seiten basierenden Dokuments der vorliegenden Erfindung von einem Hostcomputer zu einem Client-Computersystem 10 illustriert. Es wird angenommen, daß der Benutzer wünscht, das Dokument in einem Betrachter zu sehen, welcher eine Seite oder einen Abschnitt einer Seite des Dokuments anzeigen kann. Der "Finder", der in dem gegenwärtigen Verfahren beschrieben ist, kann in dem Betrachter bzw. in dem Sichtgerät implementiert sein, oder als eine gesonderte Prozedur oder Programminstruktionen, die gleichzeitig mit dem Sichtgerät auf dem Computersystem 10 läuft bzw. laufen.
  • Das Verfahren beginnt bei 222. In Schritt 224 überprüft das Verfahren, ob der Benutzer angefordert hat, ein Dokument zu betrachten, welches entsprechend der vorliegenden Erfindung auf einem Host- (Quellen-) Server oder Computer angeordnet ist. Wenn keine Anforderung für ein Dokument getätigt wird, wartet das Verfahren auf eine derartige Anfrage bzw. Anforderung (das Computersystem 10 oder der Betrachter kann andere Aufgaben für den Benutzer in der Zwischenzeit, wie ein Betrachten von lokalen Dokumenten, ausführen). Wenn der Benutzer ein Sehen bzw. Betrachten eines heruntergeladenen Dokuments wünscht, verbindet der Betrachter mit dem Hostcomputer in Schritt 226, um die Kopfzeile bzw. den Header und die Bereichstabelle 66 für das optimierte Dokumentenfile herunterzuladen. Die Kopfzeile beinhaltet Information, die das File in einem spezifischen Format, beispielsweise PDF definiert, und die Anwesenheit der Bereichstabelle kann verwendet werden, um anzuzeigen, daß das File ein optimiertes File ist. Die Kopfzeile und die Bereichstabelle können am Beginn des Files derart angeordnet sein, daß sie zuerst heruntergeladen werden können. Andere erforderliche Information wird auch zu dieser Zeit heruntergeladen; beispielsweise können PDF Betrachter einen Zeiger auf die Inhalte des Files erfordern, welcher am Ende des Files angeordnet ist. In der alternativen Ausbildung, in welcher die Inhalte der ersten Seite in einer verschachtelten Reihenfolge bzw. Ordnung in dem optimierten File gespeichert sind, muß die Bereichstabelle nicht heruntergeladen werden, und Schritt 226 kann weggelassen werden.
  • In Schritt 227 überprüft das Verfahren, ob die erste Seite des Dokuments durch den Benutzer in Schritt 224 angefordert wurde, um betrachtet zu werden. In einer Ausbildung der Erfindung wird, wenn ein Benutzer das erste Mal ein Dokument zu betrachten fordert, die erste Seite automatisch heruntergeladen und als ein Default bzw. Standard angezeigt. Der Benutzer fordert dann eine gewünschte Seite an, nachdem die erste Seite heruntergeladen wurde, wie dies unten detailliert ist. Jedoch kann in anderen Betrachterausbildungen der Benutzer fähig sein, zu Beginn zu fordern, eine spezielle Seite eines neuen Dokuments zu sehen, bevor irgendein Teil des Dokuments heruntergeladen ist. In einer derartigen alternativen Ausbildung wird Schritt 231 implementiert, der nachfolgend beschrieben ist. Wenn die erste Seite immer zu Beginn angezeigt wird oder der Benutzer die erste Seite anfordert, wird Schritt 228 implementiert.
  • In Schritt 228 werden die Daten der ersten Seite und die Seiten-Offsettabelle von dem Quellenfile durch den Betrachter in einer anderen Verbindung (oder anderen Transaktion) unter Verwendung der Bereichstabelle heruntergeladen, und die erste Seite wird angezeigt. Diese Daten der ersten Seite beinhalten Seiteninhalte und geteilte Objekte der ersten Seite. Der Abschnitt der Querverweistabelle für die erste Seite wird auch zu dieser Zeit heruntergeladen. Die geteilten Objekte und die Seiteninhalte der ersten Seite können bereits unter Verwendung von Offsets in der Bereichstabelle verschachtelt sein, wie dies unter Bezugnahme auf 9 beschrieben ist. Somit wird in einer Ausbildung ein Abschnitt bzw. Anteil der Seiteninhalte heruntergeladen, gefolgt durch irgendwelche geteilten Objekte, auf welche durch diesen Abschnitt Bezug genommen wird (und Querverweisdaten für jene geteilten Objekte), was es ermöglicht bzw. erlaubt, daß ein Teil bzw. Abschnitt unmittelbar dem Benutzer angezeigt wird. Der Benutzer bemerkt bzw. erfährt somit eine sehr kurze Wartezeit, um wenigstens einige der Inhalte der ersten Seite zu sehen. Die Seiten-Offsettabelle 68 kann während dieser Verbindung (oder Transaktion) unter Verwendung des Zeigers in der Bereichstabelle 66 heruntergeladen werden, nachdem die erste Seite herun tergeladen ist. Somit kann die Seiten-Offsettabelle früher in dem Herunterladeverfahren heruntergeladen werden, beispielsweise unmittelbar nach (oder alternativ vor) dem Herunterladen der ersten Seite, so daß auf andere Seiten in dem Dokument beliebig zugegriffen werden kann und diese betrachtet werden können. In einigen Ausbildungen kann der Betrachter ausgewählt werden, nicht die erste Seite anzuzeigen, wenn ein Dokument heruntergeladen wird.
  • Im nächsten Schritt 230 wird die Seiten-Offsettabelle überprüft, um Seiteninformation zu bestimmen. Der Finder kann für ein Überprüfen und Ver- bzw. Bearbeiten der Seiten-Offsettabelle verantwortlich gemacht werden, in welchem Fall der Finder Seiteninformation unter Verwendung von Information in der Seiten-Offsettabelle bestimmt. Das Verfahren eines Bestimmens dieser Seiteninformation ist in größerem Detail unter Bezugnahme auf 11 beschrieben. Das Verfahren fährt dann mit Schritt 234 fort.
  • In Schritt 234 überprüft das Verfahren, ob der Benutzer ein Sehen bzw. Betrachten einer speziellen Seite eines Dokuments in dem Betrachter anfragt bzw. anfordert. Der Benutzer kann eine Seite des gegenwärtigen Dokuments anfragen, welche teilweise in Schritten 226, 228 und 230 (oder Schritt 226, 231 und 232) heruntergeladen wurde, oder ein unterschiedliches Dokument (unten beschrieben). Beispielsweise kann, um eine Seite des gegenwärtigen Dokuments anzufragen, der Benutzer ein Seitenikon 51 auswählen, wie dies in 2b gezeigt ist, um eine unterschiedliche Seite des gegenwärtigen Dokuments anzuzeigen. Oder der Benutzer kann eine Verbindung bzw. einen Link zu einer unterschiedlichen Seite in dem gegenwärtigen Dokument oder ein Bookmark- bzw. Lesezeichenobjekt auswählen, das in der Lese zeichenansicht 45 gelistet ist, wie dies in 2a gezeigt ist. Wenn keine Anfrage zum Anzeigen einer unterschiedlichen Seite eines Dokuments gemacht wird, dann fährt das Verfahren mit einem Warten auf eine derartige Anfrage in Schritt 234 fort (andere Betrachter- oder Computerfunktionen können während Schritt 234 ausgeführt werden). Wenn eine Anfrage des gegenwärtigen Dokuments getätigt wird, setzt das Verfahren bei Schritt 236 fort, der unten beschrieben ist.
  • In Schritt 234 kann der Benutzer auch fähig sein, eine Seite eines unterschiedlichen Dokuments anzufragen bzw. anzufordern, welche noch nicht heruntergeladen wurde. Beispielsweise kann eine Verbindung oder eine andere Steuerung bzw. Regelung in dem Betrachter ausgewählt werden, um einen Zugriff zu einem unterschiedlichen Dokumentenfile zur Verfügung zu stellen, das auf demselben oder einem unterschiedlichen Hostcomputersystem verfügbar ist. Wenn der Benutzer eine Seite eines unterschiedlichen Dokuments in Schritt 234 anfordert, dann kehrt das Verfahren zu Schritt 226 zurück, um anfängliche Abschnitte des unterschiedlichen Dokuments herunterzuladen.
  • Schritt 231 wird nach Schritt 227 implementiert, wenn eine spezielle Ausbildung des Verfahrens 220 einem Benutzer ermöglicht auszuwählen, eine spezielle Seite eines neuen Dokuments herunterzuladen und zu betrachten, wo kein Abschnitt dieses Dokuments zuvor heruntergeladen wurde. Die Kopfzeile bzw. der Header und die Bereichstabelle des Dokuments wurden in Schritt 226 heruntergeladen. In Schritt 231 verbindet der Betrachter mit dem Hostcomputer (wenn eine neue Verbindung erforderlich ist) und lädt die Seiten-Offsettabelle von dem optimierten Dokumentenfile herunter. Die Seiten-Offsettabelle ist erforderlich, um den Ort der angeforderten Seite in dem Dokumentenfile zu bestimmen. In Schritt 232 wird Seiteninformation für das Dokument bestimmt, ähnlich zu Schritt 230, der oben beschrieben ist (und unter Bezugnahme auf 11 beschrieben ist). Das Verfahren geht dann zu Schritt 236, wie dies unten beschrieben ist.
  • In Schritt 236 fordert der Betrachter einen Seitenoffset von dem Finder an, so daß der Betrachter die geeigneten bzw. entsprechenden Daten herunterladen kann. In Schritt 238 konsultiert der Finder eine Seitenstart-Offsettabelle der Seiteninformation, welche in Schritt 230 oder Schritt 232 erzeugt wurde (wie dies in 11 gezeigt ist), um den ersten Offset für die Seite zu bestimmen, die durch den Benutzer angefragt bzw. angefordert ist. Alternativ kann der Betrachter ein spezifisches Objekt statt einer Seite anfragen, und der Finder kann die Tabelle von ersten Objekten auf einer Seite konsultieren (auch in Schritt 230 oder 232 erzeugt), um zu bestimmen, an welchem Offset das Objekt in dem Dokumentenfile angeordnet ist. Der gefundene erste Offset für die Seite wird zu dem Betrachter in diesem Schritt zurückgegeben.
  • In Schritt 240 bestimmt der Finder jegliche zusätzliche Bereiche von Daten, welche erforderlich sind, um ein Herunterladen und Anzeigen der angefragten Seite zu vervollständigen, wie zusätzliche Seiteninhalte und jegliche geteilte Objekte für die Seiteninhalte. Der Finder bestimmt diese zusätzlichen Bereiche von der Seiteninformation, die in Schritt 230 oder 232 erzeugt bzw. generiert ist. Wenn zusätzliche Bereiche von Daten erforderlich sind (wie dies typischerweise der Fall ist), zeigt die Seiteninformation an, wo die geeigneten Bereiche in dem optimierten Dokumentenfile angeordnet sind. In Schritt 242 verbindet der Betrachter mit dem Hostcomputer (wenn eine neue Verbindung erforderlich ist), um die Daten der angefragten Seite herunterzuladen, die an dem ersten Offset angeordnet sind, der durch den Finder retourniert ist. In einer Ausbildung lädt der Betrachter eine vorbestimmte Menge an Daten, wie ein Kilobyte (1K), bei einer Verbindung herunter.
  • In Schritt 244 fordert der Finder jegliche zusätzliche Datenbereiche für die nachgefragte Seite während der Betrachterverbindung an. Der Finder kann spezielle geteilte Objekte in Abschnitten der Seiteninhaltsdaten in dieser Anfrage verschachteln, um eine schnellere Anzeige der Seitendaten für den Benutzer zur Verfügung zu stellen. Schritt 244 wird in größerem Detail unter Bezugnahme auf 12 beschrieben. Zusätzlich und gegebenenfalls kann der Finder ein Anfordern von bestimmten großen Objekten, wie Fonts und Bildern, verzögern, wie dies in größerem Detail unter Bezugnahme auf 13a, 13b und 13c beschrieben ist.
  • In Schritt 246 setzt sich das Herunterladen der zusätzlichen Bereiche, die durch den Finder angefordert sind, als ein "Hintergrund"-Verfahren bzw. -Prozeß fort, während der Betrachter die bereits erhaltenen Daten bearbeitet. Sobald genügend Daten durch den Betrachter erhalten sind, um wenigstens einige Seitendaten anzuzeigen, werden diese Daten angezeigt. Die zusätzlichen Offsetbereiche können in einem lokalen Puffer, bevor sie durch den Betrachter angefragt bzw. angefordert sind, wie in dem RAM und/oder auf einer Diskette gespeichert werden. Wenn der Betrachter Daten nach dem ersten Block anfordert, erhält er die Daten von dem lokalen Cache bzw. Speicher statt von dem Quellenfile.
  • Andere Objekte in dem Dokumentenfile können zu späteren Zeiten bzw. Zeitpunkten heruntergeladen werden, wenn dies geeignet ist. Beispielsweise können spezielle Objekte, wie Seitenikons oder Lesezeichenobjekte, heruntergeladen werden, wenn der Benutzer zu einer geeigneten Ansicht in dem Betrachter ändert, scrollt bzw. abrollt, um mehrere Lesezeichenobjekte in einer Lesezeichenansicht zu sehen, usw. Seitenbaumobjekte können heruntergeladen werden, wenn der Betrachter auf derartige Objekte zuzugreifen wünscht.
  • In Schritt 247 ordnet das Verfahren die angeforderte Seite in einem Seitencache an, der beispielsweise in dem lokalen Speicher, wie dem RAM 16, oder auf einer Festplatte oder einer anderen Speichervorrichtung implementiert ist. Dies erlaubt es einer zuvor heruntergeladenen Seite, daß sie schnell entnommen wird und von dem Cache angezeigt wird, wenn der Benutzer diese Seite zu einem späteren Zeitpunkt zu sehen wünschen sollte. Auch in Schritt 247 kann das Verfahren jegliche geeigneten geteilten bzw. gemeinsam genutzten Objekte, welche heruntergeladen wurden (gemeinsam mit ihren Signaturen, falls vorhanden), in einem "Cache für geteilte Objekte" anordnen, das beispielsweise in einem lokalen Speicher, wie dem RAM 16 oder einer Festplatte implementiert ist. Diese gespeicherten geteilten Objekte können verwendet werden, wenn ein Seiteninhalt von anderen Dokumenten ebenso wie andere Seiten des gegenwärtigen Dokuments heruntergeladen und angezeigt wird bzw. werden, welche sich auf diese geteilten Objekte beziehen. Das Herunterladen von redundanten Kopien der gespeicherten geteilten Objekte von einem Dokumentenfile kann somit vermieden werden, um das Herunterladeverfahren zu beschleunigen. In einer Ausbildung können die geteilten Objekte in dem Cache bzw. Hilfsspeicher über mehrere Herunterladevorgänge gespeichert werden oder selbst wenn das Computersystem 10 heruntergefahren wird (unter Verwendung von mit einer Batterie unterstütztem RAM oder anderen nicht-flüchtigen Speichervorrichtungen). Das Verfahren ist dann bei 248 vollständig.
  • Das Herunterladeverfahren der vorliegenden Erfindung erlaubt es einer speziellen Seite, die durch den Benutzer gewünscht ist, ohne Herunterladen von anderen Seiten in dem Dokument heruntergeladen zu werden. Dies erlaubt ein schnelleres Herunterladen, da lediglich die Daten für die Seite heruntergeladen werden und nicht das vollständige Dokumentenfile. Zusätzlich können neue gewünschte beliebig zugreifbare Seiten des Dokuments einfach bzw. schnell unter Verwendung der Seiten-Offsettabelle heruntergeladen werden, was dem Benutzer die Illusion gibt, daß das vollständige Dokument leicht verfügbar ist und durch einfache Befehle, wie "Anzeigen nächste Seite" ("display next Page") oder "Anzeigen Seite Nr. X" ("display Page number X"), verfügbar ist.
  • In Verfahren gemäß dem Stand der Technik muß, wenn zusätzliche Daten für die Seite nach dem ersten 1K Abschnitt (oder dem Abschnitt einer Größe, welche auch immer verwendet wird) herunterzuladen sind, eine zusätzliche Verbindung für jeden zusätzlichen 1K Abschnitt hergestellt werden, was Verzögerungen in einem Anzeigen der Seitendaten bewirken kann. Ein Verbinden mit einem Hostcomputer über ein Netzwerk kann ein lange dauerndes bzw. langwieriges Verfahren sein, da der Host über das Netzwerk ausfindig gemacht werden muß und geeignete Handshake-Signale typischer weise gesandt und empfangen werden müssen und der Hostcomputer/Server bereit sein muß. In der vorliegenden Erfindung fordert jedoch der Finder die zusätzlichen Bereiche während derselben Verbindung an, in welcher der Betrachter den ersten Bereich nachfragt bzw. anfordert, lädt die zusätzlichen Bereiche als ein Hintergrundverfahren herunter und speichert die zusätzlichen Bereiche in einem lokalen Puffer. Diese zusätzlichen Bereiche können direkt von dem Puffer dem Betrachter zur Verfügung gestellt werden, wenn der Betrachter zusätzliche 1K Bereiche anfordert. Somit sind keine zusätzlichen Verbindungen zu dem Host zu einer späteren Zeit zum Herunterladen von mehr Daten für die Seite erforderlich. Indem mehrfache Verbindungen zu dem Host in der vorliegenden Erfindung vermieden werden, werden die Seitendaten schneller für den Benutzer heruntergeladen und angezeigt. Als eine Analogie kann dieses eine Verbindungsherunterladeverfahren mit einem Gehen zu einem Lebensmittelgeschäft verglichen werden, um Waren bzw. Lebensmittel einzukaufen, und einem Kaufen von allen erforderlichen Gegenständen auf einmal, anstelle mehrere Gänge zum Kaufen von Gegenständen durchzuführen, welche nicht beim ersten Gang bzw. Mal gekauft wurden. Die mehrfachen Gänge sind viel ineffizienter in der Zeit, die in einem einzigen Gang involviert ist. In einer alternativen Ausbildung, die unter Bezugnahme auf 14 beschrieben ist, können mehrere Bereiche von Daten durch den Finder in einer Transaktion für die Seite angefragt sein bzw. angefordert werden, wobei der Overhead von mehreren Transaktionen vermieden wird.
  • 11 ist ein Flußdiagramm, das Schritt 230 von 10 illustriert, wo der Finder Seiteninformation von der Seiten-Offsettabelle generiert. Die Seiteninformation ist durch den Finder zu verwenden, um zusätzliche Bereiche von Seitendaten anzufragen bzw. anzufordern, wenn der Betrachter Seitendaten herunterlädt. Das Verfahren beginnt bei 250 und in Schritt 252 wird eine Seitenstart-Offsettabelle von den Daten in der Seiten-Offsettabelle generiert. Die Seitenstart-Offsettabelle beinhaltet die Startoffsets, beispielsweise in Bytes, für die Seiteninhalte jeder Seite in dem elektronischen Dokument. Spezifischer werden Informationen in der Seiten-Offsettabelle, wie die Anzahl von Seiten in dem Dokument, Anzahl von Objekten auf einer Seite, Länge einer Seite usw., verwendet, um die Seitenstart-Offsettabelle zu erzeugen. Bezugnehmend auf 11a ist eine Seitenstart-Offsettabelle 264 gezeigt, wo jeder Eintrag 266 der Startoffset für die Inhalte jeder Seite ist. Die Länge von Inhalten einer Seite (und geteilten Objekten) kann bestimmt werden, indem der Unterschied zwischen dem Startoffset der Seite und dem Startoffset der nächsten Seite genommen wird, da alle Inhalte der Seite kontinuierlich bzw. aneinander anschließend in dem Erzeugungsverfahren des optimierten Files von 4 angeordnet wurden.
  • In dem nächsten Schritt 254 wird eine Tabelle, welche die Objekt ID des ersten Objekts auf jeder Seite beinhaltet, von der Information in der Seiten-Offsettabelle generiert. Diese Tabelle wird von der Anzahl von Objekten auf jeder Seite in der Seiten-Offsettabelle generiert. Diese Information kann von der Seiten-Offsettabelle unter Verwendung der Größe in Bits dekomprimiert werden, um die Anzahl von Objekten auf einer Seite – vierter Eintrag in der Seiten-Offsettabelle – darzustellen, wie dies Fachleuten gut bekannt ist. Andere Information in der Seiten-Offsettabelle kann in. gleicher Weise dekomprimiert werden. Wie dies in 11a gezeigt ist, beinhaltet die Tabelle 268 des ersten Objekts auf jeder Seite einen Eintrag 270 für jede Seite, wo die Objekt ID des ersten Objekts auf der Seite gespeichert ist. Die Einträge 270 der Tabelle 268 entsprechen der Reihenfolge und Anzahl von Start-Offseteinträgen 266 in der Tabelle 264, so daß eine Seite in ähnlicher Weise in jeder Tabelle 264 oder 268 indexiert werden kann. Tabelle 268 kann verwendet werden, um sich auf Objekte zu beziehen, wenn der Betrachter nach einem Seitenstartoffset basierend auf einer Objekt ID fragt, statt nach einer Seitenzahl. Die Seitenzahl für ein Objekt kann in Tabelle 268 gefunden werden, und auf den Startoffset der Seite kann dann in Tabelle 264 Bezug genommen werden.
  • In Schritt 256 wird eine Offsettabelle von geteilten Objekten von der Seiten-Offsettabelle generiert. Die Offsettabelle von geteilten Objekten beinhaltet einen Startoffset, beispielsweise in Bytes, für jedes geteilte Objekt in dem Dokument. Die Offsets der geteilten Objekte können in dieser Tabelle in der Reihenfolge von geteilten Objekten gespeichert sein, wie sie in dem Dokumentenfile gespeichert sind. Wie dies in 11a gezeigt ist, beinhaltet die Offsettabelle 272 der geteilten Objekte Einträge 274 zum Speichern der Startoffsets der geteilten Objekte in dem Dokumentenfile. Die Offsettabelle der geteilten Objekte kann von der Information in der Seiten-Offsettabelle generiert werden, wie den Längen von geteilten Objekten, der Anzahl von geteilten Objekten, der kleinsten Größe eines geteilten Objekts und dem Ort, wo das geteilte Objekt startet (welches aus dem letzten Seitenoffset (von Tabelle 270) + letzter Seitenlänge der Seiten-Offsettabelle berechnet werden kann).
  • In dem nächsten Schritt 258 wird die Liste 136 der teilenden Seiten von der Seiten-Offsettabelleninformation generiert. Diese Liste 136 ist im Speicher, wie RAM 16 des Clientcomputersystems 10 gespeichert, und beinhaltet im wesentlichen dieselben Knoten, wie dies in 6a gezeigt ist. Von der Liste 136 kann der Finder bestimmen, welche Seiten sich auf welche geteilten Objekte beziehen, den Bruch bzw. Anteil des Seiteninhalts, in welchem auf die geteilten Objekte Bezug genommen wird, und die teilenden ID's der geteilten bzw. gemeinsam genutzten Objekte, so daß auf die Startoffsets für die geteilten Objekte in der Offsettabelle 272 der geteilten Objekte Bezug genommen werden kann. Die Liste 136 kann aus dem Flag des geteilten Objekts, Fraktionen bzw. Anteilen und teilenden ID's in der Seiten-Offsettabelle generiert werden. Das Verfahren ist dann vollständig bzw. abgeschlossen, wie dies bei 260 gezeigt ist. In anderen Ausbildungen kann Seiteninformation auf unterschiedliche Wege organisiert werden oder kann direkt von einer Seiten-Offsettabelle verwendet werden.
  • 12 ist ein Flußdiagramm, das Schritt 244 von 10 illustriert, in welchem der Finder jegliche zusätzliche Bereiche von Seitendaten für die nachgefragte Seite während der Verbindung des Betrachters mit dem Hostcomputer nachfragt bzw. anfordert. Das Verfahren beginnt bei 280. In Schritt 282 fordert der Finder Querverweistabellendaten für das Seiteninhaltobjekt von dem Dokumentenfile an dem Hostcomputer für die nachgefragte Seite an. Die Querverweisdaten erlauben dem Betrachter, die Offsets für Objekte verschieden von dem ersten Objekt auf der nachgefragten Seite zu bestimmen. Im nächsten Schritt 284 überprüft das Verfahren, ob ein Verschachteln an den heruntergeladenen Seitendaten ausgeführt werden sollte. Ein Verschachteln, wie es oben beschrieben ist, ist das Einsetzen von bestimmten geteilten Objekten nach Teilen bzw. Abschnitten (oder "Brüchen" bzw. "Anteilen") von Seiteninhaltsdaten, welche sich auf jene geteilten Objekte beziehen. Dies beschleunigt die Anzeige von Abschnitten einer Seite, da die geteilten Objekte, die für ein Anzeigen eines Abschnitts von Seiteninhalten erforderlich sind, direkt heruntergeladen werden, nachdem dieser Abschnitt heruntergeladen ist. Alternativ, wie dies in größerem Detail in bezug auf 13a, 13b und 13c beschrieben ist, kann ein Anfordern von bestimmten großen Objekten, wie eingebetteten Fonts und Bildern, verzögert werden, bis Anfragen für andere kleinere Seiteninhaltsdaten durchgeführt werden.
  • Wenn kein Verschachteln von Seitendaten gewünscht ist, geht das Verfahren zu Schritt 300, der unten beschrieben ist. Wenn ein Verschachteln von Seitendaten gewünscht ist, geht das Verfahren zu Schritt 286, wo der Finder überprüft, ob mehrere geteilte Objekte vorliegen, auf die durch irgendwelche verbleibenden Anteile der Seiteninhaltobjekte in dem Dokumentenfile Bezug genommen ist, indem die Liste 136 der teilenden Seiten überprüft wird. Wenn ja, dann setzt das Verfahren bei Schritt 288 fort, wo das nächste geteilte Objekt von der geeigneten bzw. entsprechenden Objektliste 140 in der Liste 136 von teilenden Seiten überprüft wird. Wenn ein Cache implementiert ist, wird Schritt 290 durchgeführt, in welchem das Verfahren bzw. der Prozeß überprüft, ob das überprüfte geteilte Objekt in dem Cache bzw. Hilfsspeicher vorliegt. Beispielsweise kann, wenn Signaturen verwendet werden, der Finder die Signaturen von Objekten in dem Cache mit der Signatur des überprüften geteilten Objekts vergleichen. Wenn das überprüfte geteilte Objekt bereits in dem Cache ist, dann muß dieses Objekt nicht wäh rend des gegenwärtigen Verfahrens heruntergeladen werden. Somit geht das Verfahren zurück zu den Schritten 286 und 288, um das nächste geteilte Objekt in der Objektliste 140 zu überprüfen.
  • Wenn das überprüfte geteilte Objekt nicht in dem Cache vorliegt, wird Schritt 292 durchgeführt, wo der Finder einen Bereich von Seiteninhaltsdaten von dem Start des verbleibenden Abschnitts von Seiteninhalten zu dem Ende des Anteils der Seiteninhalte anfordert, auf welche sich die überprüften geteilten Objekte beziehen. Das Verfahren bestimmt diesen Anteil durch ein Überprüfen des Anteils- bzw. Fraktionsfelds 146 des überprüften geteilten Objekts in der Objektliste 140 (welches der Dividend des Bruchs ist). Der Divisor des Bruchs ist aus der Seiten-Offsettabelle 68 bekannt. Eine aktuelle bzw. tatsächliche Bruchgröße von Seiteninhalten (in Bytes) kann durch ein Ableiten einer ungefähren Seiteninhaltsgröße von der Seitenlänge und eines ungefähren Seiteninhaltsanteils (in der Seiten-Offsettabelle) und Dividieren der ungefähren Seiteninhaltsgröße durch den Divisor berechnet werden. Beispielsweise wird, wenn ein Bruchdivisor von 8 verwendet wird, das nächste Achtel der Seiteninhalte durch den Finder in Schritt 292 angefordert, wenn auf das überprüfte geteilte Objekt durch dieses Achtel Bezug genommen ist. Wenn das überprüfte geteilte Objekt durch das sechste Achtel der Seiteninhalte Bezug genommen ist, dann werden alle Seiteninhaltsdaten (in dem Seiteninhaltobjekt) bis zu und beinhaltend das sechste Achtel durch den Finder nachgefragt. Somit werden alle Fraktionen bzw. Anteile von Seiteninhalten, welche sich nicht auf ein geteiltes Objekt in der Objektliste beziehen, kombiniert, bis ein geteiltes Objekt in der Objektliste gefunden ist bzw. wird, zu welcher Zeit die Nachfrage nach dem gesamten Bereich von kombinierten Fraktionen bzw. Anteilen an den Hostcomputer gesandt wird.
  • Die geteilten Objekte in einer Objektliste 140 werden zur Verfügung gestellt (in dem Verfahren von 5), so daß kein geteiltes Objekt in der Objektliste aus dem Grund dupliziert wird, daß auf es auf einer einzigen Seite mehrmals Bezug genommen wird. Somit wird ein geteiltes Objekt lediglich einmal für eine Seite heruntergeladen.
  • In einer alternativen Ausbildung kann Schritt 290 weggelassen werden und lediglich der nächste Anteil bzw. Bruch von Seiteninhalten kann in Schritt 292 nachgefragt werden, unabhängig davon, ob sich der nächste Anteil auf ein geteiltes Objekt in der Objektliste 140 bezieht. Wenn der nächste nachgefragte Anteil nicht eine Bezugnahme bzw. Referenz auf ein "neues" geteiltes Objekt (d.h. ein geteiltes Objekt, welches nicht zuvor heruntergeladen wurde) beinhaltet, dann kann Schritt 294 (unten detailliert) weggelassen werden. Im Effekt erlaubt dies, daß Schritt 292 aufeinanderfolgend mehrere Male implementiert wird, bis ein neues geteiltes Objekt gefunden ist und Schritt 294 implementiert wird.
  • Im nächsten Schritt 294 fragt der Finder Bereiche des Dokumentenfiles von dem Hostcomputer für irgendwelche nicht gespeicherten geteilten bzw. gemeinsam genutzten Objekte ab, auf die durch den Bereich von Seiteninhaltsdaten Bezug genommen wurde, die in Schritt 292 nachgefragt bzw. angefordert wurden (der Finder fordert auch geeignete Querverweistabelleninformation für diese geteilten Objekte an). Der Finder fragt den Bereich von Daten für das geteilte Objekt an, das in Schritt 290 überprüft wurde, und fragt auch Bereiche für jegliche zusätzlichen geteilten Objekte an, auf welche durch die angeforderten Seiteninhalte Bezug genommen ist und welche nicht in dem Cache der geteilten Objekte sind (der Finder kann Objekte in dem Cache für jedes derartige zusätzliche geteilte Objekt vergleichen). Der Finder kann bestimmen, auf welche geteilten Objekte in welchem Teil durch Überprüfen der Liste 136 von geteilten Seiten Bezug genommen ist, und die Offsets für die geteilten Objekte sind von der Offsettabelle 272 der geteilten Objekte bekannt. Beispielsweise kann in der beschriebenen Ausbildung der Finder das Anteils- bzw. Fraktionsfeld 146 von Knoten in der Objektliste 140 überprüfen und Bereiche für alle geteilten Objekte anfordern, die dieselbe Anteils- bzw. Fraktionsnummer wie das überprüfte geteilte Objekt aufweisen. Der Finder fragt auch jegliche Querverweistabelleninformation von der Querverweistabelle 58 nach, welche auf diese geteilten Objekte verweist. Das Verfahren geht dann zu Schritt 286 zurück.
  • Es sollte festgehalten werden, daß, wenn bzw. da geteilte Bildobjekte am Ende jeder Objektliste 140 in der Liste 136 von teilenden Seiten angeordnet sind und gezwungen sind, in der letzten Fraktion von Seiteninhalten zu sein, die Bildobjekte gezwungen sind, nach allen Seiteninhalten und anderen verschachtelten geteilten Objekten heruntergeladen zu werden. Alternative Ausbildungen für die Anzeige von Bildobjekten sind in größerem Detail unter Bezugnahme auf 13c beschrieben.
  • Wenn auf keine geteilten Objekte durch verbleibende Fraktionen bzw. Anteile des Seiteninhaltobjekts in Schritt 286 Bezug genommen wird, dann geht das Verfahren zu Schritt 296 weiter, wo der Finder einen Bereich abfragt bzw. anfordert, beinhaltend alle der verbleibenden Seiteninhaltsdaten (wenn irgendwelche nicht abgefragten Seiteninhalte immer noch in dem Dokumentenfile verbleiben). Im nächsten Schritt 298 fordert der Finder dann jegliche nicht inhaltsgeteilten Objekte für die Seite und die geeignete Querverweistabelleninformation für diese geteilten Objekte an. Wie dies oben erklärt ist, können nicht inhaltsgeteilte Objekte Objekte beinhalten, wie benutzerspezifizierte Objekte, Ressourcenobjekte, welche nicht geteilt werden müssen (wie Procsets), usw. und welche geteilt bzw. gemeinsam genutzt sind. Diese nicht inhaltsgeteilten Objekte können in der Objektliste 140 der Liste 136 von teilenden Seiten gefunden werden. Das Verfahren ist dann vollständig, wie dies bei 302 angezeigt ist.
  • Unter bestimmten Bedingungen kann bzw. muß ein Verschachteln nicht wünschenswert sein. Beispielsweise kann, wenn die Seiteninhalte sehr klein, wie unter 4 Kilobytes sind, ein Verschachteln keine signifikante Anzeigegeschwindigkeitserhöhung zur Verfügung stellen, wie dies oben unter Bezugnahme auf 9 beschrieben ist. Wenn kein Verschachteln gewünscht ist, dann setzt das Verfahren von Schritt 284 zu Schritt 300 fort, wobei der Finder den Rest der anschließenden Seiteninhaltsdaten ohne Verschachteln anfordert, und auch die anderen Objekte anfordert, die nach dem Seiteninhaltobjekt gespeichert sind, welche für die Anzeige des Seiteninhaltobjekts erforderlich sind. Die "anderen Objekte" beinhalten geteilte Objekte, jegliche geeigneten speziellen Objekte und jegliche zusätzliche Querverweisinformation, die für die Objekte erforderlich ist. Beispielsweise können die geteilten Objekte in der Reihenfolge angefragt werden, in welcher auf sie auf der Seite Bezug genommen wird. In alternativen Ausbildungen können die geteilten Objekte zuerst angefragt bzw. angefordert werden, gefolgt durch die Seiteninhalte. Das Verfahren ist dann bei 302 vollständig.
  • Indem zu 13a gegangen wird, kann ein Betrachterprogramm fakultativ ein Verfahren zum progressiven Rendern von Fonts zum Anzeigen von Text unter Verwendung eines Ersatzfonts anwenden, wenn der gewünschte Font (beispielsweise ein eingebetteter Font, der in einem elektronischen Dokument spezifiziert ist) nicht unmittelbar verfügbar ist. Das Verfahren zum progressiven Rendern von Fonts könnte beispielsweise in Verbindung mit den Schritten 242, 244 und 246 aufgerufen werden, die in 10 illustriert sind. Eine Verwendung dieses Verfahrens ist vorteilhaft beispielsweise im Zusammenhang bzw. in Verbindung mit eingebetteten Fonts in elektronischen Dokumenten, die über ein Netzwerk heruntergeladen werden. Ein eingebetteter Font muß jedoch nicht in demselben File wie das Hauptteil des Dokuments sein; ein Dokument kann sich auf eingebettete Fonts indirekt derart beziehen, daß sie von einem anderen File oder von einer geteilten Fontressource oder einem Server erhalten werden können. Wenn eine Fontreferenz bzw. -bezugnahme angetroffen wird, Schritt 400, muß die Software bestimmen, ob der gewünschte Font bereits für sie verfügbar ist, Schritt 402. Dies würde beispielsweise der Fall sein, wenn der Font bereits in einem Cache bzw. Zwischenspeicher gespeichert wurde (beispielsweise in Schritt 247, der in 10 illustriert ist) oder auf einem lokalen Datenspeicher gespeichert ist, wie einem Festplattentreiber 28 (illustriert in 1). Wenn der Font verfügbar ist, Schritt 404, würde natürlich die Software ihn verwenden.
  • Andererseits erhält, Schritt 406, wenn der gewünschte Font nicht verfügbar ist, die Software einen Ersatz- bzw. Substitutionsfont. Ein Substitutionsfont ist in dem Ausmaß geeignet, daß er Metriken aufweist, welche nahe zu jenen des gewünschten Fonts sind, so daß der Text, der unter Verwendung des Substitutionsfonts gezeichnet wird, im wesentlichen auf demselben Platz und in der Form wie der Text erscheinen wird, der unter Verwendung des gewünschten Fonts gezeichnet ist, was in Schritten 420 bis 428 durchgeführt wird. In einer Ausbildung wird ein Substitutionsfont basierend auf einem kompletten Satz von Fontmaßen bzw. -metriken erzeugt, welche für den gewünschten Font spezifisch sind. In PDF Format-Dokumenten stellt beispielsweise ein Fontbeschreibungsobjekt Maße bzw. Metriken zur Verfügung, beinhaltend Dimensionsinformation, wie aufsteigend bzw. Anstieg, absteigend bzw. Abstieg bzw. Abfall, Grenzblock, Höhe von Blockbuchstaben, Schrägstellungswinkel und Breite von vertikalen Stielen, und auch beinhaltend andere beschreibende Information, ob dies ein Serife- oder Nicht-Serife-Font ist, ob er ein Font mit festgelegter Breite ist, ob er ein Font nur mit Blockbuchstaben ist oder ein Font mit Blockbuchstaben gemischter Höhe ist. Ein zweites PDF Objekt, das Breitenfeld- bzw. -arrayobjekt, vervollständigt die Beschreibung von Fontmaßen: es stellt Breiteninformation für jeden Buchstaben in dem Font zur Verfügung. Unter Verwendung von derartigen Maßen bzw. Metriken, die in dem Dokument enthalten sind, oder Maßen, die von einer Datenbank oder einem Datenfile auf einem Computersystem oder einem Server auf einem Netzwerk erhalten werden, oder in der Abwesenheit von besseren Informationen, Default-Metriken, kann ein geeigneter Substitutionsfont erzeugt werden, indem ein Fontmanagersoftwaremodul verwendet wird, wie das Font Chameleon Produkt, das von Ares Software Corporation von Foster City, Kalifornien, erhältlich ist oder das Infinifont Produkt, das von ElseWare Corporation von Seattle, Washington, erhältlich ist. Das Acrobat Reader Produkt verwendet die Adobe Multiple Master Fonttechnologie, um Substitutionsfonts zu erzeugen. Alternativ können die verfügbaren Fontmaße, falls es irgendwelche gibt, für den gewünschten Font verwendet werden, um einen Font aus den verfügbaren Fontressourcen anzunehmen, die leicht auf dem Computersystem 10 verfügbar sind oder für dieses verfügbar sind. Wenn ein Substitutionsfont erhalten wurde, egal ob durch Erzeugung oder Annahme, wird er in Schritt 408 verwendet, um den entsprechenden Text zu rendern bzw. wiederzugeben; und die Software setzt mit einem Verarbeiten des Dokuments fort, Schritt 410.
  • Für Situationen, in welchen der gewünschte Font Zeichen bzw. Buchstaben aufweist, die nicht allgemein in Fonts verfügbar sind – wie beispielsweise ein Ligatur fi Zeichen – oder der gewünschte Font ein Satz von Graphiken ist – wie beispielsweise Schachstücke oder -ikons – kann der Substitutionsfont Platzhaltersymbole aufweisen oder selbst vollständig aus gerade einem Platzhaltersymbol bestehen (wie einer leeren Schachtel bzw. Box), d.h. es bzw. sie wird bzw. werden in Übereinstimmung mit den verfügbaren Fontmaßen angezeigt.
  • Wenn der verfügbare Font verfügbar wird, Schritt 420, da er beispielsweise als eingebetteter Font in dem elektronischen Dokument heruntergeladen wurde, werden die betroffenen Abschnitte der Anzeige neu gezeichnet, Schritte 422 bis 428. (Wenn mehr als ein gewünschter Font durch einen Substitutionsfont ersetzt wurde, könnten alle gewünschten Fonts gemeinsam in diesen Schritten bearbeitet werden).
  • Zuerst wird bzw. werden das umgrenzende Rechteck oder die Rechtecke von irgendeinem Text, der unter Verwendung des Substitutionsfonts gerendert wurde, bestimmt, Schritt 422. Diese Rechtecke umgeben die Bereiche die beim Zeichnen mit dem Substitutionsfont verwendeten Bereiche und die Bereiche, die beim Zeichnen mit dem gewünschten Font zu verwenden sind. Als nächstes, Schritt 424, wird ein Off-Screen-Bitmap-Puffer mit den Grenzen entsprechend der Verschneidung des umgebenden Rechtecks oder der Rechtecke erzeugt, das bzw. die auf den sichtbaren Abschnitt der Seite begrenzt ist bzw. sind. Der Off-Screen-Puffer wird erzeugt, um dieselbe Pixel- bzw. Bildpunkttiefe und dieselben Farbcharakteristika wie die Anzeige zu besitzen. Dann werden in Schritt 426 die verfügbaren Teile der Seite, welche mit dem Off-Screen-Bitmap-Puffer überschneiden, in jenen Puffer neu unter Verwendung des gewünschten Fonts oder der Fonts gezeichnet, welche nun verfügbar sind. (Einige Teile der Seite, wie beispielsweise ein großes Bild, können nicht verfügbar sein und das Verfahren sollte ohne sie ausgeführt werden, wie dies unter Bezugnahme auf 13c beschrieben werden wird). Wenn der Off-Screen-Bitmap-Puffer vollständig ist, wird er auf die Anzeige gezeichnet, Schritt 428. Wenn die Anzeige, wie dies üblich ist, von einem Anzeigepuffer generiert bzw. erzeugt wird, wird dies durch ein Kopieren des Off-Screen-Bitmap-Puffers in den entsprechenden Bereich des Anzeigepuffers durchgeführt. In einer alternativen Ausbildung ist die Einheit einer Anzeige ein gewisses Vielfaches (oder ein Bruchteil) einer Seite, und die Verarbeitung von eingebetteten Fonts wird verzögert, bis die gesamte Einheit der Anzeige gezeichnet wurde, was es dem Benutzer (Leser) eines elektronischen Dokuments ermöglicht, Text und Graphiken auf dem gesamten sichtbaren Bereich so schnell wie möglich zu sehen. In einer weiteren alterna tiven Ausbildung wird ein Zeichnen in einen Off-Screen-Bitmap-Puffer verzögert, bis alle gewünschten Fonts verfügbar sind, was die Zeit reduzieren kann, die zum Rendern eines Off-Screens verbraucht wird. In einer weiteren alternativen Ausbildung werden zahlreiche kleine Rechtecke verbunden, um ein oder mehrere größere(s) Rechteck(e) auszubilden, wenn Off-Screen-Bitmap-Puffer erzeugt werden, was auch das Ver- bzw. Bearbeiten des Off-Screen-Bitmap-Puffers erleichtern kann. In einer weiteren alternativen Ausbildung wird das Verfahren lediglich auf einige der Gesamtheit von möglichen gewünschten Fonts angewandt, so daß Fremdsprachenfonts beispielsweise ausgeschlossen sind bzw. werden. Das Acrobat Leseprodukt beispielsweise wendet kein progressives Rendern an, wenn der gewünschte Font Zeichen bzw. Buchstaben aufweist, die nicht in dem Adobe Standard-Zeichen- bzw. -Buchstabensatz gefunden werden; oder wendet keinerlei progressives Rendern in der Abwesenheit von fontspezifischen Fontmaßen bzw. -metriken an.
  • Es sollte festgehalten bzw. erkannt werden, daß, um einen maximalen Vorteil aus den Verfahren für ein progressives Rendern von Fonts zu ziehen, man den Ort von eingebetteten Fonts in dem Verfahren eines Lesens oder Herunterladens eines Dokuments steuern bzw. regeln sollte, so daß eingebettete Fonts, welche einer Substitution unterworfen sind bzw. werden, nach dem Haupttext und Graphiken gelesen und heruntergeladen werden. Jedoch kann es, wenn eine Extraktion bzw. Entnahme von eingebetteten Fonts zeitaufwendig ist, vorteilhaft werden, das Verfahren zu verwenden, selbst wenn die eingebetteten Fonts vor dem Text und Graphiken angeordnet sind oder mit diesen vermischt sind. Es ist auch vorteilhaft im Zusammenhang mit diesem Verfahren fähig zu sein, eingebettete Fonts mit einem Hintergrundverfahren bzw. -prozeß herunterzuladen, während ein Benutzerinterface während der anfänglichen Anzeige des Dokuments beibehalten wird. Schließlich wird es verstanden werden, daß, wenn detaillierte oder vollständige Fontmaße verfügbar sind, der gewünschte Font sehr nahe bzw. genau durch den Substitutionsfont emuliert werden kann und das Layout von Text auf der Anzeige beibehalten werden kann und eine Benutzerablenkung minimiert werden kann, wenn die Anzeige aktualisiert wird. Eine Benutzerablenkung bzw. -verwirrung bzw. -störung ist bzw. wird minimiert, da die Aktualisierung der Anzeige eine Welle von kleinen bzw. feinen Buchstabenformänderungen statt signifikanteren Änderungen an dem Textfluß in dem Dokument sein wird. Wenn die beschreibende Information weniger vollständig oder spezifisch ist, oder wenn Default- bzw. Standard-Fontmaße zu verwenden sind, wird ein signifikanteres Neuformatieren des Dokuments auftreten, beinhaltend möglicherweise ein signifikantes Neupositionen des Textes in der abschließenden bzw. Endanzeige. Weitere Information von Techniken einer Fontsubstitution können in dem allgemein übertragenen U.S. Patent Nr. 5,185,818 von Warnock für "Method of Substituting Fonts and Displaying Characters" gefunden werden, dessen Offenbarung hierin durch diese Bezugnahme mitumfaßt bzw. aufgenommen ist.
  • Indem zu 13b gegangen wird, ist ein anderer Aspekt eines Optimierens einer Benutzerwechselwirkung bzw. -interaktion mit elektronischen Dokumenten in Online-Umgebungen, es sicherzustellen, daß interaktive Dokumentenelemente, wie Hypertext-Verbindungen bzw. -Links, in dem Benutzerinterface so schnell wie möglich aktiv sind. Der Ausdruck "Anmerkung" wird hierin in dem Sinn verwendet, den er in dem Kontext von PDF Dokumenten besitzt: der Ausdruck "Anmerkung" bzw. "annotation" beinhaltet interaktive Elemente, welche mit einer Seite assoziiert sind, jedoch nicht eigentlich Teil der gedruckten Seite selbst sind, wie Hypertext Links, Ikons bzw. Bildzeichen, die wählbar sind, um eine Multimediadarstellung aufzurufen und dgl., welche auf eine Benutzereingabe von Vorrichtungen, wie einer Tastatur und Maus, antworten. Indem Anmerkungen gemacht werden, die auf eine Benutzereingabe ansprechen, bevor sie gerendert sind, ist für Verwender verwendbar bzw. nützlich, die häufig dasselbe Dokument online betrachten. Ein derartiger Benutzer kann wissen, daß ein spezieller Bereich der Anzeige eine Anmerkung aufweist, und wählen, hier zu klicken, bevor irgendwelche Graphiken für die Anmerkung gezeichnet sind. Somit identifiziert in einem fakultativen Verfahren zur frühen Aktivierung von aktiven Elementen, wenn ein aktives Element, das anzuzeigen ist, angetroffen wird, während das Dokument zur Anzeige verarbeitet wird, Schritt 440, die Software zuerst (oder in dem Vordergrund) die wählbare Grenze des aktiven Elements, Schritt 442; instruiert das Zeiger- bzw. Cursoranzeigeverfahren, das Aussehen des Cursors geeignet zu verändern, wenn der Cursor innerhalb der gewählten Grenze bzw. Begrenzung angezeigt ist bzw. wird, Schritt 444; und erlaubt bzw. ermöglicht eine Antwort auf eine Auswahlaktivität durch den Benutzer, wie ein Klicken oder eine Eingabe von Tastaturbefehlen, Schritt 446. Zweitens (oder in einem Hintergrundverfahren oder ansonsten in dem normalen Verlauf eines Anzeigens des Dokuments) wird die Anzeige, die mit dem aktiven Element assoziiert ist, gerendert, Schritt 448.
  • Indem zu 13c übergegangen wird, kann ein Betrachterprogramm fakultativ ein Verfahren zum Hinausschieben (Verzögern des Herunterladens und/oder einer Anzeige) von großen Objekten anwenden. Dieses Verfahren stellt eine nützliche Optimierung der Anzeige von elektronischen Dokumenten zur Verfügung, insbesondere in Online-Umgebungen, indem Information und Text, Graphiken, Anmerkungen und andere schnell angezeigte Elemente angezeigt werden, bevor große und/oder komplexe Objekte, wie Bitmapbilder, heruntergeladen und gerendert werden. Elektronische Dokumente in Formaten, wie PDF, sind fähig, komplexe Beziehungen zwischen Text, Graphiken und Bildern und Anmerkungen darzustellen. Seiteninhalte können überlappend sein und können in dem elektronischen Dokument spezifiziert werden, damit sie eine spezifische Anzeigereihenfolge aufweisen. In dem Verfahren zum Verschieben bzw. Verzögern von großen Objekten wird, wenn das elektronische Dokument spezifiziert, daß ein Textsegment beispielsweise auf der Oberseite eines Bilds aufscheinen sollte, beispielsweise der Text zuerst gezeichnet, was die Verwendung ermöglicht, mit den Abschnitten des elektronischen Dokuments zu interagieren, sobald sie verfügbar werden. Somit wird, wenn ein großes Objekt angetroffen wird, Schritt 460, das Rendern des Objekts verschoben, Schritt 462, und die schnell angezeigten Elemente, wie Text und Graphiken, werden gezeichnet, sobald sie verfügbar werden, Schritt 464. In Formaten von elektronischen Dokumenten, wie PDF, die präzise den exakten Ort von jedem Objekt auf einer Seite beschreiben, bewirkt das verzögerte Rendern von bestimmten Objekten nicht, daß andere Objekte ihre Orten verschieben, was eine Benutzerstörung bzw. -beeinträchtigung minimiert, wenn Seitenelemente progressiv angezeigt werden.
  • Wo Text, welcher bereits gezeichnet bzw. geschrieben wurde, spezifiziert ist, daß er auf der Oberseite eines Bilds erscheinen soll, welches noch nicht gezeichnet wurde, wird, um das Beispiel fortzusetzen, ein Off-Screen-Puffer er zeugt, Schritt 466, in welchem das verschobene bzw. verzögerte Objekt und alle anderen Zeichnungselemente in ihrer ordnungsgemäßen bzw. geeigneten Reihenfolge bis zu dem Ausmaß gerendert werden, wo sie innerhalb der Grenzen des Off-Screen-Puffers erscheinen, Schritt 468, jedoch ohne auf irgendwelche Objekte (wie Bilder, die noch herunterzuladen sind) zu warten, welche dann noch nicht verfügbar sind. Das Grenz- bzw. Randviereck des Off-Screen-Bitmap-Puffers entspricht der Grenze des großen Objekts, beschränkt auf den sichtbaren Teil der Seite. Der Off-Screen-Bitmap-Puffer wird erzeugt, daß er dieselbe Bildpunkttiefe und Farbcharakteristika wie die Anzeige aufweist. Wenn der Off-Screen-Puffer vervollständigt ist, wird er auf die Anzeige gezeichnet, Schritt 470. In einer alternativen Ausbildung wird für einen seitenorientierten Betrachter, wenn mehr als eine Seite auf einmal sichtbar ist, das Rendern von großen Objekten hinausgeschoben bzw. verzögert, bis alle sichtbaren Seiten gezeichnet wurden, um es dem Leser des Dokuments zu ermöglichen, den schnell angezeigten Inhalt auf allen sichtbaren Seiten so schnell wie möglich zu sehen. In einer weiteren alternativen Ausbildung werden Teile eines Bilds in einem Off-Screen-Puffer des Bilds gerendert, sobald die Teile verfügbar werden, und dann angezeigt, statt daß auf ein Herunterladen des gesamten Bilds gewartet wird. Dies kann leicht beispielsweise in Bildobjektformaten durchgeführt werden, welche Bildinformation in Bändern organisieren. In einer weiteren alternativen Ausbildung wird das Verarbeiten von mehreren großen Objekten in einem Off-Screen-Puffer kombiniert, der durch die Vereinigung ihrer Grenzen definiert ist, weiches die Zeit reduzieren kann, die beim Rendern außerhalb des Schirms bzw. Off-Screen verbraucht wird.
  • LINEARISIERTES OPTIMIERTES DOKUMENTENLAYOUT
  • Indem zu 14 übergegangen wird, ist ein linearisiertes Dokumentenlayout eine Verfeinerung des optimalen Formats, welches bereits beschrieben wurde. Das linearisierte Layout (oder Format) ermöglicht, daß eine Ansicht einen effizienten inkrementellen Zugriff in einer Umgebung erzielt, die die Charakteristika bzw. Merkmale einer Verbindung niedriger Geschwindigkeit zu einer Stelle bzw. Site im World Wide Web aufweist. Unter den Vorteilen des linearisierten Formats sind jene, daß, wenn ein elektronisches Dokument geöffnet wird, eine Anzeige bzw. Darstellung einer ersten Seite schnell stattfindet. Die erste Seite, die zu sehen ist, kann eine beliebige Seite des Dokuments sein; es ist nicht notwendigerweise die Seite null, obwohl es häufigst die üblichste Wahl sein würde. Andere Vorteile sind mit anderen alternativen Ausbildungen des optimierten elektronischen Dokumentenformats geteilt bzw. gemeinsam genutzt, welche bereits beschrieben wurden, beinhaltend die schnelle Anzeige von Seiten, nachdem sie angefordert wurden, die inkrementelle Anzeige von Seiteninhalten (insbesondere für Seiten, die über einen langsamen Kanal geliefert bzw. zur Verfügung gestellt sind), wobei die am meisten verwendbaren bzw. nützlichsten Daten zuerst angezeigt sind bzw. werden, und die Ermöglichung einer Benutzerwechselwirkung bzw. -interaktion, wie ein Folgen einer Hypertext-Verbindung, bevor eine gesamte Seite empfangen und angezeigt wurde. Die optimierten Formate, beinhaltend das lineare Format erzielen diese Vorteile für elektronische Dokumente von beliebiger Größe, wobei die Gesamtzahl von Seiten in dem Dokument einen geringen oder keinen Einfluß auf die von einem Benutzer wahrgenommene Leistung beim Betrachten irgendeiner beliebigen Seite hat.
  • Die Umgebung des World Wide Web hat Charakteristika, welche die Leistung von Clients, die elektronische Dokumente lesen, als auch Servern beeinflussen, die diese zur Verfügung stellen. Das Zugriffsprotokoll (HTTP) ist eine Transaktion, bestehend aus einer Anfrage und einer Antwort. Nachdem eine Transaktion vervollständigt bzw. abgeschlossen wurde, erfordert ein Erhalten von mehr Daten eine neue Anfrage-Antwort-Transaktion und die Verbindung zwischen Client (Betrachter) und Server besteht nicht üblicherweise über das Ende einer Transaktion hinaus, obwohl einige Implementierungen versuchen können, eine offene Verbindung zu speichern, um nachfolgende Transaktionen mit demselben Server zu beschleunigen. Eine Round-Trip-Verzögerung kann signifikant sein: eine Transaktion kann bis zu mehreren Sekunden dauern bzw. erfordern, unabhängig von der angeforderten Datenmenge. Und schließlich kann die Datenrate beschränkt sein: ein typischer Flaschenhals ist eine 14,4 Kilobaud oder 28,8 Kilobaud Modemverbindung zwischen dem Client und einem Internet Service Provider. Andere Wide Area Netzwerk Architekturen teilen allgemein diese Charakteristika. Selbst CD-ROMs teilen einige dieser Charakteristika, da sie relativ langsame Suchzeiten und beschränkte Datenraten verglichen mit magnetischen Medien aufweisen.
  • In einer bald zu unterstützenden Erweiterung zu dem HTTP Protokoll kann ein Client eine Entnahme von Teilen bzw. Abschnitten eines Dokuments anfordern, indem ein oder mehrere Offsetlängen-Bytebereich(e) als Teil der Transaktionsanfrage spezifiziert wird bzw. werden (d.h. als Teil der URL). Jeder Bereich kann relativ entweder zu dem Beginn oder dem Ende des Files sein. Der Client kann irgendeine Zahl bzw. Anzahl von Bereichen in der Anfrage spezifizieren und die Antwort wird aus mehreren Blöcken bestehen, die jeweils geeignet bezeichnet bzw. mit einem Tag versehen sind. In einigen Umgebungen, beinhaltend einige Umgebungen im World Wide Web kann der Client mehrere gleichzeitige Transaktionen in einem Versuch initiieren, mehrere Antworten parallel zu erhalten. Dies wird üblicherweise beispielsweise gemacht, um online Bilder zu entnehmen, auf die in einem HTML Dokument Bezug genommen wird. Jedoch ist bzw. wird, da mehrere gleichzeitige Transaktionen weniger als optimal für Dokumente im PDF Format in einigen wichtigen Umgebungen erscheinen, das linearisierte Format so ausgebildet, daß eine gute Leistung unter der Beschränkung erzielt wird, daß lediglich eine Transaktion zu einer Zeit aktiv ist. Aus diesem Grund stellt das linearisierte Format dem Client ausreichende Information zum Bestimmen des Byte-Bereichs für jedes Objekt zur Verfügung, der erforderlich ist, um eine gegebene Seite anzuzeigen, so daß der Client die geeigneten Byte-Bereiche in einer einzigen Anfrage spezifizieren kann.
  • Indem nun zu ihrer Implementierung in einem PDF Format gegangen wird, beginnt das linearisierte Layout mit einem konventionellen PDF Kopf bzw. Header 480 und einem Trailer 504. Der Kopf wird gefolgt durch ein Objekt 482, enthaltend Linearisierungsparameter, welche die Formatversions-Identifizierung; die Länge des gesamten Files; einen Offsetlängen-Zeiger zu dem primären Hinweistabellen-Stream- bzw. -Stromobjekt 486 (das unten beschrieben wird); einen fakultativen Offsetlängen-Zeiger zu einem fakultativen Overflowhinweistabellen-Streamobjekt 500, falls vorhanden; eine Objektzahl des Objekts der ersten Seite; und gegebenenfalls die Seitenzahl der ersten anzuzeigenden Seite beinhalten, welche als Standard bzw. Vorgabe bzw. Default Seite null ist.
  • Die Querverweistabelle 484 der ersten Seite ist eine Querverweistabelle (wie sie unter Bezugnahme auf Tabellen 58 in 3a und 3b beschrieben wurde) für alle Objekte der ersten Seite und alle Objekte auf Dokumentenniveau, die vor der ersten Seite aufscheinen. Dies ist eine Querverweistabelle für alle die Objekte, die erforderlich sind, um die erste Seite des Dokuments anzuzeigen, beinhaltend das Elternseitenobjekt für die erste Seite, welches keine Attribute von irgendeinem Seitenobjekt einer anderen Seite geerbt hat. Die Objekte, die in Tabelle 484 tabelliert sind, beinhalten alle Objekte, auf welche sich das Elternseitenobjekt bezieht, bis zu jeglicher beliebigen Tiefe, wenn sie die Anzeige der Seite beeinflussen. Sie beinhaltet auch Einträge für das Verzeichnis von Hinweistabellen an dem Beginn des ersten bzw. primären Hinweistabellen-Streamobjekts 486. Die Querverweistabelle 484 der ersten Seite ist eine gültige Querverweistabelle gemäß der PDF Spezifikation, obwohl ihre Position in dem Dokumentenfile unüblich ist. Ihr Nachlauf- bzw. Trailerabschnitt gibt den Offset zu der Hauptquerverweis- bzw. -referenztabelle 502 nahe dem Ende des Files an, ebenso wie jegliche Querverweistabellenattribute, die für ein Anzeigen des Dokuments erforderlich sind.
  • Das primäre Hinweistabellen-Streamobjekt 486 kann entweder den Objekten 492 der ersten Seite vorausgehen oder diesen nachfolgen. In einer alternativen Ausbildung sind bzw. werden die Dateninhalte des primären Hinweistabellen-Streamobjekts 486 in einem oder mehreren sekundären File(s) gespeichert, das bzw. die gegebenenfalls auf gesonderten Hostcomputern liegt bzw. liegen. Ein Streamobjekt ist eine Art von Objekt, das durch das PDF Format definiert ist: es ist eine Sequenz von binären Bits, welche eine Kompression damit assoziiert aufweisen können. Jede Hinweistabelle besteht aus einem Abschnitt des Streamobjekts 486, beginnend an der Position in dem Stream, der durch das Verzeichnis angedeutet ist. Es wird erwartet, daß jede Tabelle die erforderliche Information so kompakt wie möglich codieren wird, da Tabellen in dem Dokument nicht für einen zufälligen Zugriff ausgebildet sein müssen, und daß der Client einmal die Tabellen lesen und dekodieren wird und die Information so lange behalten bzw. zurückhalten wird, solange das Dokument offen bleibt. Das Hinweistabellen-Streamobjekt 486 beinhaltet ein Verzeichnis, das die Positionen der Hinweistabellen in dem Objekt zeigt. Diese Positionen sind relativ zu dem bzw. beziehen sich auf den Beginn der Streamdaten.
  • Eine Hinweistabelle codiert die Position einer Gruppe oder Klasse von Objekten in dem Dokumentenfile. Die Repräsentation bzw. Darstellung ist entweder explizit, ein Abstand bzw. Offset vom Beginn des Files oder implizit, von den kumulativen bzw. gesammelten Längen von vorhergehenden Objekten. In jedem Fall werden die resultierenden Positionen interpretiert, als wäre das Hinweistabellen-Streamobjekt selbst nicht vorhanden. Dies ist deshalb, da die Länge eines Hinweistabellen-Streamobjekts im allgemeinen nicht bekannt ist, bis es generiert bzw. erzeugt wurde, und Information in der Hinweistabelle nicht von der Kenntnis dieser Länge im voraus abhängen sollte. Wenn ein Overflow-Hinweistabellen-Streamobjekt 500 existiert, hängt ein Erhalt desselben von einer Ausgabe einer zusätzlichen Transaktion ab. Jedoch erlaubt ein Bereitstellen eines Overflow objekts es einem Linearisierungsprogramm, ein linearisiertes File zu schreiben, wobei ein Raum für das primäre Hinweistabellen-Streamobjekt 486 einer abgeschätzten Größe reserviert ist, und dann zurückzugehen, um die Hinweistabellen auszufüllen. Wenn die Abschätzung zu klein ist, kann das Linearisierungsprogramm ein Overflowobjekt, enthaltend die verbleibenden Hinweistabellendaten anhängen, was ein Schreiben des Files in einem Schritt bzw. Durchgang ermöglicht, was in bestimmten Umständen vorteilhaft sein kann. Wenn es ein fakultatives Overflow-Hinweistabellen-Streamobjekt gibt, sind die Inhalte der zwei Streamobjekte zu verketten bzw. zu verknüpfen und zu behandeln, als wären sie ein einziges nicht unterbrochenes Streamobjekt.
  • Hinweistabellen werden nicht bei einem Be- bzw. Verarbeiten der Objekte der ersten Seite verwendet, so daß ihre Position relativ zur ersten Seite eine Sache der Wahl ist. Wenn die Hinweistabellen vor den Objekten der ersten Seiten kommen, kann der Client die anfängliche Transaktion schnell in dem Fall abbrechen, daß die Dokumentenauswahl der ersten Seite, die anzuzeigen ist, nicht dieselbe wie die Auswahl des Client ist. Andererseits wird, wenn die Hinweistabellen den Objekten der ersten Seite folgen, ein Anzeigen der Dokumentenauswahl der ersten Seite schneller erzielt bzw. durchgeführt, während ein Öffnen einer beliebigen Seite durch die Zeit verzögert wird, die für ein Empfangen der ersten Seite des Dokuments erforderlich ist. Wenn ein elektronisches Dokumentenfile linearisiert ist bzw. wird, kann das Linearisierungsverfahren als eine Benutzeroption eine Entscheidung akzeptieren, ob ein Öffnen an einer ersten Seite oder ein Öffnen an einer beliebigen Seite zu begünstigen bzw. zu favorisieren ist.
  • Indem zu 15a und 15b übergegangen wird, beinhalten die Hinweistabellen von Objekt 486 eine Seitenhinweis-Offsettabelle 488 und eine Tabelle 490 von geteilten Objekten, wobei diese zwei Tabellen dieselbe Funktion wie die Bereichstabelle 64 ausführen, die in 3b gezeigt und in dem Kontext davon beschrieben ist. Die Seiten-Offsettabelle 488 gibt für jede Seite die Information, die erforderlich ist, um diese Seite zu lokalisieren. Zusätzlich zählt sie für jede Seite mit Ausnahme der ersten alle geteilten bzw. gemeinsam genutzten Objekte auf, auf welche sich diese Seite direkt oder indirekt bezieht. Die Tabelle 490 der geteilten Objekte gibt die Information, die erforderlich ist, um geteilte Objekte zu lokalisieren. In dem linearisierten Format können geteilte Objekte physikalisch bzw. physisch in irgendeinem von zwei Orten angeordnet sein. Objekte, auf welche von der ersten Seite Bezug genommen wird, werden mit den Objekten der ersten Seite gemeinsam angeordnet. Alle anderen geteilten Objekte werden in dem Abschnitt 498 der geteilten Objekte angeordnet. Ein einziger Eintrag in der Tabelle 490 von geteilten Objekten kann die Gruppe von benachbarten Objekten beschreiben, wenn lediglich auf das erste Objekt in der Gruppe von außerhalb der Gruppe Bezug genommen wird. Die Seiten-Offsettabelle 488 bezieht sich auf einen Eintrag in die Tabelle 490 von geteilten Objekten durch einen einfachen Index, welcher seine sequentielle Position in der Tabelle ist.
  • Andere Hinweistabellen stellen Information für Dokumentenelemente zur Verfügung, welche sich auf das Dokument als ein Gesamtes beziehen. Beispielsweise erlaubt es die Lesezeichen-Hinweistabelle dem Client Bookmarks bzw. Lesezeichen zu finden; und die Thread-Hinweistabelle erlaubt es dem Client, alle die Beads in dem Faden bzw. Thread von Beads zu finden, welche einen Artikel definieren. Wie in einer Zeitung, wo sich ein Artikel über mehrere Seiten erstrecken kann, ist ein "Artikel" hier eine Liste von "Beads", wo jeder Bead ein Rechteck auf einer spezifischen Seite ist, in welchem Rechteck ein Abschnitt des Textes oder von Illustrationen des Artikels gefunden werden kann. Mit der Thread-Hinweistabelle kann der Client (Betrachter) alle die Objekte anfordern, welche erforderlich sind, um den gesamten Artikel in einer Transaktion anzuzeigen.
  • Somit stellen Hinweistabellen eine Indexierinformation zur Verfügung, welche es dem Client ermöglicht, eine einzige Anfrage für alle die Objekte zu konstruieren, die erforderlich sind, um irgendeine Seite des Dokuments anzuzeigen oder um bestimmte andere Information effektiv zu entnehmen. Hinweistabellen können auch Information beinhalten, um einen Zugriff zu anwendungsspezifischer Information durch Plug-ins zu optimieren.
  • Hinweistabellen sind nicht logischerweise Teil des Informationsinhalts des Dokuments; sie können von dem Dokument abgeleitet werden. Wenn das Dokument wiederhergestellt wird, würden die Hinweistabellen-Streamobjekte 486 und 500 nicht Teil des Dokuments sein, außer sie wurden spezifisch generiert. Jegliche Tätigkeit, welche das Dokument verändert – beispielsweise Anhängen eines inkrementellen Updates bzw. einer Aktualisierung – kann einige oder alle der Hinweistabellen ungültig machen. Das resultierende Dokumentenfile würde immer noch als PDF File gültig sein, jedoch nicht notwendigerweise als ein linearisiertes File.
  • Indem zu 15a übergegangen wird, müssen einige der Elemente der Seiten-Offsethinweistabelle 488 noch beschrieben werden. Die "Anzahl von Objekten in einer Seite" ist ein Wert, welcher, wenn er "der kleinsten Zahl von Objekten in einer Seite" hinzugefügt wird, die in der Kopfzeile bzw. dem Header angegeben ist, die aktuelle bzw. tatsächliche Zahl bzw. Anzahl von Objekten in der Seite angibt. Das erste Objekt der ersten Seite hat eine Objektnummer, die in dem Linearisierungsparameterobjekt 482 gegeben ist. Das erste Objekt der zweiten Seite hat eine Objektzahl bzw. -nummer 1. Objektzahlen bzw. -nummern für nachfolgende Seiten können bestimmt werden, indem die Anzahl von Objekten in allen vorhergehenden Seiten angesammelt bzw. aufsummiert wird.
  • Die "Seitenlänge in Bytes" ist ein Wert, welcher, wenn er zu der "kleinsten Länge einer Seite in Bytes" hinzugefügt wird, die in der Kopfzeile angegeben ist, die Gesamtlänge der Seite in Bytes angibt. Der Ort des ersten Objekts der ersten Seite kann von dem Querverweistabelleneintrag für dieses Objekt bestimmt werden. Der Ort von aufeinanderfolgenden Seiten kann durch ein Ansammeln der Länge von allen vorhergehenden Seiten bestimmt werden. Die "Anzahl von Bytes vom Start einer Seite bis zum Start eines Inhalts-Streams" ist ein Wert, welcher, wenn er zu dem "kleinsten Start eines Inhalts-Offsets" addiert wird, der in der Kopfzeile angegeben ist, die Versetzung bzw. den Offset und die Bytes des Inhalts-Streamobjekts relativ zu dem Beginn der Seite angibt. Die "Länge von Inhalten in Bytes" ist ein Wert, welcher, wenn er zu der "kleinsten Inhaltslänge" hinzugezählt wird, die in der Kopfzeile angegeben ist, die Länge des Inhalts-Streamobjekts in Bytes ist, beinhaltend einen Objekt-Overhead.
  • Die Seiten-Offsethinweistabelle 488 beinhaltet für jedes geteilte Objekt, auf das von jeder Seite Bezug genommen wird, eine "Identifikation eines geteilten Objekts" und "einen Bruch bzw. Anteil, der die Position in Inhalten des ersten Bezugs angibt". Die Erstere ist ein Index in der Hinweistabelle 490 des geteilten Objekts. Die Letztere zeigt an, wo in den Seiteninhaltsdaten auf das geteilte Objekt zuerst Bezug genommen ist. Wie dies beschrieben wurde, wird dies als der Zähler eines Bruchs interpretiert, dessen Nenner in der Seiten-Offsethinweistabelle-Kopfzeile spezifiziert ist. Der Zähler kann zusätzliche Werte annehmen, die nominell Fraktionen bzw. Anteile über das Ende der Inhaltsdaten hinaus anzeigen, um anzuzeigen, daß auf das geteilte Objekt nicht von den Inhalten Bezug genommen ist, es jedoch durch Anmerkungen oder andere Objekte erforderlich ist, welche nach den Inhalten gezeichnet sind bzw. werden. Unterschiedliche Werte können verwendet werden, um anzuzeigen, wenn das geteilte Objekt in bezug auf die Arten von nicht geteilten Objekten erforderlich ist, welche am Ende der Seite sind.
  • Die Hinweistabelle 490 des geteilten Objekts ist in 15b illustriert. Die Seiten-Offsethinweistabelle 488 bezieht sich auf einen Eintrag in der Hinweistabelle 490 des geteilten Objekts durch einen einfachen Index, welcher die Eintragssequenz in der Tabelle ist. Nachfolgend auf die Kopfzeilen- bzw. Headerinformation, welche selbsterläuternd ist, gibt es zwei Sequenzen von Einträgen von Gruppen von geteilten Objekten: die einen für Objekte 492, die in der ersten Seite angeordnet sind, werden durch die einen für Objekte gefolgt, die in dem Abschnitt 498 der geteilten Objekte angeordnet sind. Die Einträge haben in beiden Fällen dasselbe Format. Zur Einfachheit einer Darstellung kann die erste Seite (492 Objekte) behandelt werden, als würde sie vollständig aus geteilten Objekten bestehen. D.h. der erste Eintrag der Tabelle der geteilten Objekte bezieht sich auf den Beginn der ersten Seite und hat eine Objektzählung und Länge, welche alle der anfänglichen, nicht geteilten Objekte umspannt. Der nächste Eintrag bezieht sich auf eine Gruppe von geteilten Objekten in den Objekten 492 der ersten Seite. Nachfolgende Einträge überspannen zusätzliche Gruppen von entweder geteilten oder nicht geteilten Objekten aufeinanderfolgend, bis alle geteilten Objekte in der ersten Seite aufgezählt wurden.
  • In der Information, welche für jede Gruppe von geteilten Objekten aufscheint, ist die "Anzahl von Objekten in der Gruppe" ein Wert, welcher eins kleiner als die tatsächliche Anzahl von Objekten in der Gruppe ist. Die Objektnummer bzw. -zahl des ersten Objekts der ersten Seite ist in dem Linearisierungsparameterobjekt 482 am Beginn des Dokuments gegeben. Objektnummern für nachfolgende Einträge können durch ein Akkumulieren der Anzahl von Objekten in allen vorhergehenden Einträgen bestimmt werden, bis alle geteilten Objekte in der ersten Seite aufgezählt wurden. Nachfolgend darauf weist das erste Objekt in dem Abschnitt 498 der geteilten Objekte eine Nummer auf, welche von der Tabellenkopfzeile der geteilten Objekte, "Objektzahl von ersten Objekten, im Abschnitt von geteilten Objekten" erhalten werden kann. Die "Gesamtlänge von Objekten in Bytes" ist ein Wert, welcher, wenn er zu "der Mindestlänge einer Gruppe von geteilten Objekten in Bytes" addiert wird, die in der Kopfzeile gegeben ist, die Gesamtlänge der Objektgruppe in Bytes ergibt. Der Ort des ersten Objekts der ersten Seite ist in der Seiten-Offsettabellen-Kopfzeileninformation gegeben. Die Orte von aufeinanderfolgenden Objektgruppen können durch Ansammeln der Längen von allen vorhergehenden Objektgruppen bestimmt werden, bis alle geteilten Objekte in der ersten Seite aufgezählt wurden. Nachfolgend darauf kann der Ort des ersten Objekts in dem Abschnitt 498 der geteilten Objekte von der Kopfzeile erhalten werden. Das "Signaturvorhanden-Flag" zeigt die Anwesenheit oder Abwesenheit einer Unterschrift bzw. Signatur an. Die "fakultative Signatur", wenn vorhanden, ist in einer Ausbildung ein 16 Byte MD5 Hash, das zum einzigartigen Identifizieren der Ressource gedacht ist, welche diese Gruppe von Objekten darstellt. Dies erlaubt es dem Client, eine lokal gespeicherte Kopie der Ressource anstatt eines Lesens derselben aus dem Dokument zu substituieren.
  • Indem zu 15c übergegangen wird, beschreibt jeder Eintrag in der Thumbnail-Hinweistabelle 506 den Thumbnail für eine einzige Seite. Die Seiten werden in einer Seitennummernreihenfolge betrachtet, beginnend bei null, selbst wenn eine Seite null nicht die erste anzuzeigende Seite ist. Thumbnails bzw. Vorschaubilder können für einige, jedoch nicht alle Seiten existieren. Der Header für diese Tabelle ist selbst erläuternd. In den Einträgen zeigt "die Zählung von vorhergehenden Seiten, denen Thumbnails fehlen", wie viele Seiten ohne Thumbnails zwischen der Seite des vorhergehenden Eintrags in dieser einen liegen. Wenn alle Seiten Thumbnails aufweisen, ist der Wert dieses Felds immer null und der Wert von "Bits, die erforderlich sind, um eine Zählung von Seiten ohne Thumbnails anzuzeigen", in der Kopfzeile kann null sein. Die "Länge von Thumbnail-Objekten in Bytes" ist ein Wert, welcher, wenn er zu der "kleinsten Länge von Thumbnail-Objekten in Bytes" hinzugezählt wird, die in der Kopfzeile gegeben ist, eine Gesamtlänge des Thumbnail-Objekts ergibt. Die "für jedes geteilte Objekt: Identifikation für geteiltes Objekt" ist ein Index in der Hinweistabelle 490 der geteilten Objekte.
  • Indem zu 15d übergegangen wird, wird ein Format für generische Hinweistabellen 508 illustriert. Bestimmte Kategorien von Objekten sind mit dem Dokument als ein Gesamtes assoziiert statt mit individuellen Seiten. Es ist manchmal nützlich, Hinweise für ein Zugreifen auf derartige Objekte effizient zur Verfügung zu stellen. Für jede Kategorie von Hinweisen, welche mit einer Hinweistabelle unterstützt ist, gibt es einen Eintrag in das Hinweistabellen-Streamobjekt 486, welches die Startposition der entsprechenden Hinweistabelle in dem Stream angibt. Das illustrierte Format einer generischen Hinweistabelle 508 stellt eine generische bzw. grundlegende Darstellung für derartige Hinweise dar. Diese Darstellung ist für Standardkategorien von Objekten, wie Grenzlinien, Threads bzw. Zusammenhänge und bezeichnende Destinationen bzw. Bestimmungen verwendbar bzw. nützlich. Sie kann auch für anwendungsspezifische Objekte nützlich sein, auf die durch Plug-ins zugegriffen wird. Die allgemeine bzw. generische Hinweistabelle 508 beschreibt eine oder mehrere Gruppe(n) von Objekten, welche gemeinsam in dem Dokument angeordnet sind. Für jede Gruppe beinhalten die Hinweise ausreichend Information, um es dem Client (Dokumentenleserverfahren) zu ermöglichen, eine Anfrage für alle Objekte in der Gruppe zu konstruieren, beinhaltend jegliche geteilte Objekte, auf welche die Objekte in der Gruppe Bezug nehmen können. Wenn es hier eine einzige Gruppe gibt, bezieht sich die Hinweistabelle auf alle die Objekte in der Kategorie, auf welche zur selben Zeit zugegriffen werden soll. Wenn mehrere Gruppen vorliegen, ist bzw. wird jede Gruppe durch einen einfachen Index identifiziert, welcher seine sequentielle Position in der Tabelle, gezählt von null ist. Was die Objektgruppierungen bezeichnen, hängt von der Objektkategorie ab.
  • Die Kopfzeileninformation für eine generische Hinweistabelle 508 ist selbst erläuternd. In Einträgen für jede Objektgruppe ist die "Gesamtlänge von Objekten in Bytes" ein Wert, welcher, wenn er zu der "kleinsten Menge einer Objektgruppe in Bytes" hinzugezählt ist bzw. wird, die in der Kopfzeile angegeben ist, die Gesamtlänge der Objektgruppe gibt. Die "für jedes geteilte Objekt, auf das von der Gruppe Bezug genommen wird: Identifikation des geteilten Objekts" ist ein Index in der Hinweistabelle 490 der geteilten Objekte. Die Anzahl von Bits, die erforderlich sind, um diese Identifikation bzw. diesen Identifier darzustellen, ist in der Kopfzeile der Seiten-Offsethinweistabelle 488 angegeben.
  • In dem Objektabschnitt 492 der ersten Seite sind alle Objekte, beinhaltend geteilte Objekte, die erforderlich sind, um die erste Seite des Dokuments anzuzeigen. Das folgende Anfordern von Objekten ist verwendbar bzw. nützlich, um einer früheren Benutzerinteraktion eine zunehmende Darstellung von Daten der ersten Seite zur Verfügung zu stellen, wie sie ankommen. Zuerst Anmerkungs- bzw. Ankündigungsobjekte zu einer Tiefe, die ausreichend ist, um es den Ankündigungen zu ermöglichen aktiviert zu werden; Information, die erforderlich ist, um die Ankündigungen zu zeichnen, kann verschoben bzw. aufgeschoben werden, da Ankündigungen immer an der Oberseite von (somit nach) anderen Inhalten gezeichnet werden.
  • Nach dem Objektabschnitt 492 der ersten Seite sind Abschnitte, enthaltend aufeinanderfolgend die nicht geteilten Objekte 494 für die nächste Seite bis zu den nicht geteilten Objekten 496 für die letzte Seite. Für jede Seite verschieden von der ersten Seite, die anzuzeigen ist, sind bzw. werden die Objekte, die erforderlich sind, um die Seite anzuzeigen, miteinander gruppiert, mit der Ausnahme von Ressourcen und anderen Objekten, welche mit anderen Seiten geteilt sind bzw. werden. Geteilte Objekte sind in dem Abschnitt 498 von geteilten Objekten angeordnet. Der Startfile-Offset und die Länge von jeder Seite können aus den Hinweistabellen bestimmt werden. Die Reihenfolge von Objekten in nicht ersten Seiten ähnlich der Reihenfolge in der ersten Seite sollte eine frühe Benutzerinteraktion und eine inkrementelle Anzeige von Seitendaten erleichtern, wenn bzw. wie sie ankommen. Allgemein wird es in dem linearisierten Format kaum einen Vorteil von einem Verschachteln von Inhalten mit Ressourcen geben, weil die meisten Ressourcen verschieden von Bildern – in Fonts insbesondere – unter allen Seiten geteilt sind und daher in dem Abschnitt 498 der geteilten Objekte angeordnet sind bzw. liegen. Bilderobjekte sind üblicherweise nicht geteilt, jedoch sollten sie nach anderen Seitenobjekten aufscheinen, da ein Rendern von Bildern verzögert sein kann, wie dies unter Bezugnahme auf 13c beschrieben ist.
  • Der Abschnitt 498 der geteilten Objekte enthält Objekte, auf welche von mehr als einer Seite Bezug genommen ist und auf welche nicht (direkt oder indirekt) von der ersten Seite Bezug genommen ist. Die Tabelle 490 von geteilten Objekten enthält einen Index von diesen Objekten. Die Reihenfolge der Objekte in dem Abschnitt 498 der geteilten Objekte ist im wesentlichen beliebig. Jedoch ist es wünschenswert, daß, wo eine Ressource aus einer Struktur mit mehreren Niveaus besteht, alle Komponenten der Struktur miteinander gruppiert sind. Somit kann, wenn lediglich auf das Objekt höchsten Niveaus von außerhalb der Gruppe Bezug genommen ist, die Gruppe durch einen einzigen Eintrag in die Tabelle 490 von geteilten Objekten beschrieben werden, was die Größe dieser Tabelle minimiert.
  • Die Hauptquerverweistabelle 502 ist die Querverweistabelle für alle Objekte in dem File verschieden von jenen, die in der Querverweistabelle 484 der ersten Seite gelistet sind.
  • Ein elektronisches Dokument kann auch andere Objekte (nicht gezeigt) aufweisen, welche Teil des Dokuments sind, jedoch nicht für ein Anzeigen von Seiten erforderlich sind. Derartige Objekte sollten in funktionelle Kategorien unterteilt werden und Objekte innerhalb von jeder Kategorie miteinander gruppiert werden, so daß sie jeweils eine entsprechende Hinweistabelle besitzen können, um die Information zur Verfügung zu stellen, die für einen effizienten Zugriff durch einen Client erforderlich ist. Das linearisierte Format erlaubt, daß auf zusätzliche Hinweistabellen für anwendungsspezifische Daten durch Plug-ins zugegriffen wird. Derartige zusätzliche Hinweistabellen können ein generisches Format aufweisen oder das Format der Hinweistabelle kann für die Anwendung privat sein.
  • Aus dem Vorhergehenden wird verstanden werden, daß das linearisierte Format die effiziente Entnahme und Anzeige von elektronischen Dokumenten ermöglicht bzw. erlaubt. Somit kann, wenn auf ein Dokument anfänglich zugegriffen wird, der Client eine Anfrage ausgeben, um das vollständige File vom Beginn an startend zu entnehmen. Die Daten für die erste Seite, die anzuzeigen ist, werden somit schnell aufscheinen und verfügbar sein. Ähnlich den Objekten für die erste Seite wird das primäre Hinweistabellen-Streamobjekt entnommen und Teil des anfänglichen sequentiellen Lesens des Files sein. Es wird erwartet, daß der Client alle Information in Hinweistabellen interpretieren und entnehmen wird. Wenn Hinweistabellen und Objekte der ersten Seiten gelesen wurden, kann der Client entscheiden, ein Lesen des Rests des Dokuments sequentiell fortzusetzen, oder der Client kann entscheiden, die anfängliche Transaktion zu beenden und auf nachfolgende Seiten unter Verwendung von gesonderten Transaktionen zuzugreifen, die Byte-Bereiche anfordern. Sobald die Hinweistabellen empfangen wurden, hat der Client ausreichend Information, um eine Entnahme von irgendeiner Seite des Dokuments anzufordern, von welchem seine Seitenzahl angegeben ist.
  • Das Ordern bzw. Anfordern von Objekten und Seiten und die Verwendung von Hinweistabellen in dem linearisierten Format erlauben eine progressive Aktualisierung der Anzeige und frühe Gelegenheiten für eine Benutzerwechselwirkung bzw. -interaktion, wenn Daten langsam eintreffen. Zu diesem Zweck sollte der Client (Betrachter) erkennen, ob Objekte, auf die auf einer Seite Bezug genommen wird, angekommen sind, wo möglich, die Reihenfolge adaptieren, in welcher er auf Objekte aufgrund der Objektart und Verfügbarkeit wirkt. Eine derartige Reihenfolge von Tätigkeiten ist die Folgende, deren Elemente unter Bezugnahme auf 13a, 13b und 13c beschrieben wurden: erstens, Aktivieren von Anmerkungen, ohne diese zu zeichnen; dann Zeichnen von Inhalten, jedoch Verzögern von nicht verfügbaren Bildern und Verwenden von Substitutionsfonts für nicht verfügbare Fonts; Zeichnen von Anmerkungen; dann Zeichnen von Bildern gemeinsam mit jeglichem, das diese überlappt; und dann Neu-Zeichnen von Text unter Verwendung von gewünschten Fonts gemeinsam mit jeglichem, was den Text überlappt. Wie dies beschrieben wurde, kann das späte Zeichnen von Bildern und das Neu-Zeichnen von Text durchgeführt werden, indem ein Off-Screen-Puffer verwendet wird; jedoch können diese auch direkt in dem Puffer gezeichnet werden, von welchem die Anzeige generiert ist.
  • BEISPIEL EINES HERUNTERLADENS EINER NACHGEFRAGTEN SEITE
  • In einem Beispiel der Verfahren von 10 und 12 ist bzw. wird die erste Seite eines elektronischen Dokuments von einem optimierten Dokumentenfile der vorliegenden Erfindung heruntergeladen und in Schritten 224, 226, 228 und 230 von 10 angezeigt. Der Benutzer fordert dann, Seite 9 in der Sichteinheit bzw. dem Betrachter bei Schritt 234 von 10 anzuzeigen. In diesem Beispiel treten die Daten, die für ein Anzeigen von Seite 9 erforderlich sind, in den Byte-Bereichen von 25000–29000, 112000–113000 und 200000–202000 in dem File des optimierten Dokuments auf, wo der erste Bereich die Seiteninhaltsdaten sind und die zweiten zwei Bereiche geteilte Objekte sind, auf welche durch die Seiteninhalte Bezug genommen ist. Der Finder findet die Querverweistabelle und einen Offset 25000 für Seite 9 in Schritt 238 und stellt den Offset dem Betrachter zur Verfügung. Der Finder bestimmt die zusätzlichen Bereiche bei Schritt 240. In Schritt 242 verbindet der Betrachter mit dem Quellencomputer und lädt eine vorbestimmte Menge von Daten, wie 1K, herunter. Der Finder hat währenddessen bestimmt, daß die Seiteninhalte tatsächlich bei Byte 29000 fortsetzen. Wenn kein Verschachteln gewünscht ist, fordert der Finder zusätzlich, daß Byte-Bereich 26000–29000 in Schritt 300 von 12 heruntergeladen wird. Auch hat der Finder durch ein Überprüfen der Liste 136 von teilenden Seiten bestimmt, daß Seite 9 zwei geteilte Objekte mit Teilungs ID's 1 und 2 aufweist. Der Finder konsultiert somit die Offsettabelle 272 der geteilten Objekte und fordert die entsprechenden Byte-Bereiche 112000–113000 und 200000–202000 der geteilten Objekte an, daß sie bei derselben Verbindung in Schritt 300 von 12 heruntergeladen werden. Alternativ, wie dies unter Bezugnahme auf das linearisierte optimierte Format beschrieben ist, das in 14 dargestellt bzw. illustriert ist, können alle die Byte-Bereiche in einer Transaktion angefragt bzw. angefordert werden, so daß Schritte 238, 240, 242, 244 und 246 von 10 als ein Schritt arbeiten.
  • Wenn ein Verschachteln implementiert ist, dann überprüft in Schritt 288 von 12 der Finder das nächste geteilte Objekt in der Objektliste, welches eine Teilungs ID von 1 und eine Anteils- bzw. Bruchzahl von 1 aufweist. In Schritt 292 fordert der Finder Seiteninhalte von dem Beginn der Seite zu einem ersten Bruch- bzw. Anteil ab. Somit ist, indem angenommen wird, daß der Bruch 0/8 ist, jeder Bruch bzw. Anteil 4000 / 8 = 500 Bytes. Da die erste Fraktion bzw. der erste Bruch sich auf das überprüfte geteilte Objekt bezieht, fragt der Finder einen Bereich von 25000–25500 ab. In Schritt 294 fordert der Finder dann Bereiche für jegliche geteilten Objekte in dem Anteil an; d.h. es gibt dort nur einen in der Objektliste. Der Finder fordert somit den Bereich von 112000–113000 für dieses geteilte Objekt an, wie dies von der Offsettabelle 272 der geteilten Objekte bestimmt ist. Da das 5-te Achtel der Seiteninhalte eine Bezugnahme auf das einzige andere geteilte Objekt auf der Seite beinhaltet (Teilungs ID von 2) kehrt das Verfahren zu Schritt 286 nach Schritt 294 zurück. In der nächsten Iteration überprüft der Finder das nächste ge teilte Objekt in der Objektliste, welches eine Teilungs ID von 2 aufweist und sich in dem Anteil mit der Zahl bzw. Nummer 5 befindet. Die nächsten vier Achtel von Seiteninhalten werden somit in Schritt 292 entnommen, bis zu und beinhaltend das 5-te Achtel, welches das überprüfte geteilte Objekt beinhaltet (oder alternativ kann Schritt 292 mehrere (5) Male implementiert werden, indem jeweils ein Bruch bzw. Anteil pro Zeit durch die Schleife angefragt wird, und Auslassen von Schritt 294, bis die Bezugnahme auf das geteilte Objekt gefunden ist). Somit ist ein Bereich von Seiteninhalten von Bytes 25501–27500 des Dokumentenfiles angefordert (vier Anteile = 2000 Bytes). Dann wird in Schritt 294 das geteilte Objekt, auf das durch den 5-ten Anteil im Bereich von 200000–202000 Bezug genommen ist (und ihre Querverweisinformation) angefragt bzw. angefordert. Da auf keine weiteren geteilten Objekte in den Seiteninhalten Bezug genommen ist, fordert der Finder den verbleibenden Abschnitt von Seiteninhalten in Schritt 296 an, welcher einen Byte-Bereich von 27501–29000 aufweist (und seine Querverweisinformation). Alle diese Byte-Anfragen bzw. -Anforderungen werden während einer einzigen Verbindung mit dem Hostcomputer durchgeführt. Alternativ können, wie dies unter Bezugnahme auf das linearisierte optimierte Format beschrieben ist, das in 14 illustriert ist, alle Byte-Bereiche in einer Transaktion angefordert werden.
  • Somit ermöglicht das Verfahren der vorliegenden Erfindung, daß Daten für eine vollständige angefragte Seite von einem Quellencomputer mit lediglich einer einzigen Verbindung (oder alternativ einer Transaktion mit) der Quelle gelesen werden, nachdem die erste Seite oder der anfängliche Satz von Tabellen heruntergeladen wurde. Die Seitendaten können somit schneller, mit weniger Wartezeit für den Benutzer heruntergeladen und angezeigt werden. In dem Verschachtelungsverfahren können geteilte Objekte direkt nach Abschnitten des Seiteninhalts heruntergeladen werden, die sich auf diese geteilten Objekte beziehen. Dies erlaubt es, daß Teile bzw. Abschnitte einer Seite einem Benutzer unmittelbar ohne Warten, daß die geteilten Objekte heruntergeladen werden, angezeigt werden.
  • Während diese Erfindung in bezug auf zahlreiche spezielle Ausbildungen beschrieben wurde, ist beabsichtigt, daß Änderungen, Modifikationen und Permutationen davon Fachleuten in der Technik nach bzw. bei einem Lesen der Beschreibung und Studium der Zeichnungen ersichtlich werden. Beispielsweise ist die vorliegende Erfindung beschrieben, daß sie für tragbare elektronische Dokumente, wie PDF Dokumente, verwendet wird. Jedoch sind andere Files oder Sammlungen von Daten, welche beispielsweise nicht verbundene Objekte/Daten und/oder geteilte Objekte/Daten beinhalten, für ein Optimieren und Herunterladen durch die vorliegende Erfindung gut geeignet. Zusätzlich ist ein Verschachteln von geteilten Objekten der beschriebenen Erfindung nicht notwendig, um ein optimiertes File für ein schnelleres Herunterladen zur Verfügung zu stellen. Auch sind zahlreiche der Schritte oder Verfahren, die in den beschriebenen Ausbildungen beschrieben sind, spezifisch für eine beschriebene Ausbildung, und können in anderen Ausbildungen verändert oder weggelassen werden. Beispielsweise kann die Benutzung des Finders und Betrachters in dem Herunterladeverfahren von 10 verändert werden, um einer speziellen Ausbildung zu genügen. Weiterhin wurde eine bestimmte Terminologie für die Zwecke einer Beschreibungsklarheit verwendet, und nicht um die vorliegende Erfindung einzuschränken. Beispielsweise ist es nicht beabsichtigt, daß der Ausdruck "Tabelle" eng gelesen wird, um lediglich Datenstrukturen zu beinhalten, die eine konventionelle tabellarische bzw. Tabellenstruktur aufweisen; stattdessen sollte der Ausdruck alle Formen von Datenstruktur oder Strukturen umfassen, welche die erforderliche Information tragen. Es ist daher gedacht bzw. beabsichtigt, daß die folgenden anhängigen Ansprüche alle derartigen Änderungen, Modifikationen und Permutationen umfassen, wie sie in den echten Rahmen der vorliegenden Erfindung fallen.
  • Beansprucht ist:

Claims (20)

  1. Verfahren zum Herunterladen einer spezifischen Seite eines mehrseitigen, auf Seiten basierenden, elektronischen Dokuments über ein Computernetzwerk, wobei die spezifische bzw. bestimmte Seite Seiteninhalte und geteilte Gegenstände bzw. Objekte beinhaltet, wobei auf die geteilten bzw. gemeinsamen bzw. gemeinsam genutzten Objekte durch mehrfache bzw mehrere Seiteninhaltobjekte Bezug genommen wird, wobei das Verfahren umfaßt: Lesen einer Seiten-Offset- bzw. -Abstandsinformation, bevor das Herunterladen von mehr als einer Seite des Dokuments vervollständigt wird; und Verwenden der Seiten-Offsetinformation, um die Inhalte bzw. Contents der spezifischen Seite zu lokalisieren, wodurch die spezifische Seite ohne die Notwendigkeit eines Lesens anderer Seiten in dem Dokument gelesen wird.
  2. Verfahren nach Anspruch 1, wobei die Seiten-Offsetinformation eine Seiten-Offsethinweistabelle umfaßt.
  3. Verfahren nach Anspruch 1, weiterhin umfassend: Lesen einer Hinweistabelle des geteilten Gegenstands vor einem Lesen einer zweiten Seite des Dokuments.
  4. Verfahren nach Anspruch 1, weiterhin umfassend: Lesen einer Lesezeichen-Hinweistabelle vor einem Lesen einer zweiten Seite des Dokuments.
  5. Verfahren nach Anspruch 1, weiterhin umfassend: Lesen einer Artikelthread-Hinweistabelle vor einem Lesen einer zweiten Seite des Dokuments; und Lesen einer Vorschaubild- bzw. Thumbnail-Hinweistabelle vor dem Lesen einer zweiten Seite des Dokuments.
  6. Verfahren nach Anspruch 1, wobei jede Kategorie von Objekten, die mit dem Dokument als Gesamtes assoziiert wird, eine entsprechende Hinweistabelle aufweist.
  7. Verfahren nach Anspruch 1 oder 2, weiterhin umfassend einen Schritt eines Anzeigens der spezifischen Seite, die durch den Benutzer an einer Ausgabeanzeigevorrichtung abgefragt bzw. angefordert wird.
  8. Verfahren nach Anspruch 7, wobei ein Abschnitt der spezifischen Seite durch einen Betrachter heruntergeladen wird und alle verbleibenden Abschnitte der spezifischen Seite durch einen Finderprozeß unter Verwendung der Seiten-Offsettabelle bestimmt und während einer Verbindung mit dem Hostcomputer heruntergeladen werden.
  9. Verfahren nach Anspruch 1 oder 2, wobei die spezifische Seite Seiteninhalte und geteilte Gegenstände beinhaltet, wobei die geteilten Gegenstände zwischenliegend bzw. verschachtelt zwischen Abschnitten der Seiteninhalte heruntergeladen werden.
  10. Computerprogrammprodukt, welches, wenn es auf einen Computer geladen ist, für ein Ausführen eines Verfahrens gemäß einem der vorhergehenden Ansprüche geeignet ist.
  11. Vorrichtung, umfassend ein computerlesbares Speichermedium, das greifbar Programminstruktionen verkörpert, die Instruktionen bzw. Anweisungen zum Ausbilden eines Anzeigeverfahrens umfaßt, um: auf dem Anzeigeschirm ein mehrseitiges, auf Seiten basierendes Dokument anzuzeigen, das auf einem Hostcomputer gespeichert ist, mit dem Host zu verbinden, um eine Seiten-Offset- bzw. -Abstandsinformation herunterzuladen, die auf einem vorbestimmten Ort in dem auf Seiten basierenden Dokument angeordnet ist; wobei die Seiten-Offsetinformation gelesen wird, bevor das Herunterladen von mehr als einer Seite des Dokuments vervollständigt wurde; eine spezifische Seite des auf Seiten basierenden Dokuments herunterzuladen, das durch einen Benutzer angefordert ist, ohne die Notwendigkeit eines Herunterladens von anderen Seiten in dem Dokument, wobei die spezifische Seite Seiteninhalte bzw. -contents und geteilte bzw. gemeinsame bzw. gemeinsam genutzte Gegenstände beinhaltet, wobei auf die geteilten Gegenstände durch mehrfache Seiteninhaltsgegenstände Bezug genommen ist; und die heruntergeladene Seite auf dem Anzeigeschirm anzuzeigen.
  12. Vorrichtung nach Anspruch 11, wobei das Speichermedium weiterhin Instruktionen umfaßt, um: einen ersten Abschnitt eines Seiteninhalts auf einer Seite des auf Seiten basierenden Dokuments herunterzuladen, wobei der Abschnitt des Seiteninhalts einen Bezug auf ein geteiltes Objekt beinhaltet; Herunterladen des geteilten Objekts, das durch den ersten Abschnitt der Seite bezeichnet ist; und Herunterladen eines zweiten Abschnitts des Seiteninhalts der Seite des auf Seiten basierenden Dokuments.
  13. Vorrichtung nach Anspruch 12, wobei das geteilte Objekt von dem auf Seiten basierenden Dokument heruntergeladen ist bzw. wird.
  14. Vorrichtung nach Anspruch 12, wobei die Instruktionen weiterhin Instruktionen umfassen, um: die Orte des ersten Abschnitts des Seiteninhalts, des zweiten Abschnitts des Seiteninhalts und des geteilten Objekts in dem auf Seiten basierenden Dokument unter Verwendung einer Seiten-Offsettabelle abzuleiten, die von dem auf Seiten basierenden Dokument heruntergeladen ist.
  15. Vorrichtung nach Anspruch 12, wobei die Instruktionen weiterhin Instruktionen umfassen, um: den ersten Abschnitt und den zweiten Abschnitt des Seiteninhalts auf einer Ausgabeanzeigevorrichtung anzuzeigen, wobei eine Verwendung des geteilten Objekts erforderlich ist, um den ersten Abschnitt des Seiteninhalts anzuzeigen.
  16. Vorrichtung nach Anspruch 12, wobei der Seiteninhalt anzuzeigenden Text beinhaltet und das geteilte Objekt ein Schriftart- bzw. Fontobjekt ist, das für ein Anzeigen des Textes erforderlich ist.
  17. Vorrichtung nach Anspruch 11, wobei das computerlesbare Speichermedium ein Programminstruktionsspeicher ist, wobei die Vorrichtung weiterhin umfaßt: einen digitalen Prozessor, der mit dem Programminstruktionsspeicher gekoppelt ist; einen Anzeigeschirm, der mit dem digitalen Prozessor gekoppelt ist; und Instruktionen bzw. Anweisungen, die in dem Programmspeicher gespeichert sind, der einen Finderprozeß ausbildet, umfassend Instruktionen, um: die Seiten-Offsetinformation zu verwenden, um einen Ort der spezifischen Seite in dem Dokument dem Anzeigeprozeß derart zur Verfügung zu stellen, daß der Anzeigeprozeß die spezifische Seite herunterladen kann.
  18. Vorrichtung nach Anspruch 17, wobei wenn der Anzeigeprozeß einen Abschnitt einer spezifischen Seite während einer Verbindung mit dem Host herunterlädt, der Finderprozeß zusätzlich zusätzliche Abschnitte der spezifischen Seite anfrägt bzw. anfordert und die zusätzlichen Abschnitte der Seite zu dem Anzeigeprozeß, der anzuzeigen ist, heruntergeladen sind bzw. werden.
  19. Vorrichtung nach Anspruch 17, wobei der Finder das Beginnen von Offsets bzw. Versetzungen jeder Seite des Dokuments von der Seiten-Offsetinformation ableiten kann.
  20. Vorrichtung nach Anspruch 18, wobei der Anzeigeprozeß mit einem Betrachterprozeß in dem Programmspeicher gekoppelt ist, umfassend Instruktionen, um Seiten des auf Seiten basierenden Dokuments auf dem Anzeigeschirm auszuwählen und anzuzeigen.
DE69637125T 1995-09-25 1996-09-25 Optimaler zugriff auf elektronische dokumente Expired - Lifetime DE69637125T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US569000 1990-08-17
US53317795A 1995-09-25 1995-09-25
US533177 1995-09-25
US08/533,875 US5781785A (en) 1995-09-26 1995-09-26 Method and apparatus for providing an optimized document file of multiple pages
US533875 1995-09-26
US08/569,000 US5737599A (en) 1995-09-25 1995-12-07 Method and apparatus for downloading multi-page electronic documents with hint information
PCT/US1996/015725 WO1997012328A1 (en) 1995-09-25 1996-09-25 Optimum access to electronic documents

Publications (2)

Publication Number Publication Date
DE69637125D1 DE69637125D1 (de) 2007-07-19
DE69637125T2 true DE69637125T2 (de) 2008-01-24

Family

ID=27415122

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69637125T Expired - Lifetime DE69637125T2 (de) 1995-09-25 1996-09-25 Optimaler zugriff auf elektronische dokumente

Country Status (6)

Country Link
US (3) US5860074A (de)
EP (1) EP0870246B1 (de)
JP (2) JP2000500887A (de)
CA (1) CA2233023A1 (de)
DE (1) DE69637125T2 (de)
WO (1) WO1997012328A1 (de)

Families Citing this family (422)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721307B2 (en) * 1992-12-09 2010-05-18 Comcast Ip Holdings I, Llc Method and apparatus for targeting of interactive virtual objects
US7509270B1 (en) 1992-12-09 2009-03-24 Discovery Communications, Inc. Electronic Book having electronic commerce features
US7168084B1 (en) 1992-12-09 2007-01-23 Sedna Patent Services, Llc Method and apparatus for targeting virtual objects
US8073695B1 (en) 1992-12-09 2011-12-06 Adrea, LLC Electronic book with voice emulation features
WO1994014279A1 (en) 1992-12-09 1994-06-23 Discovery Communications, Inc. Digital cable headend for cable television delivery system
US7849393B1 (en) 1992-12-09 2010-12-07 Discovery Communications, Inc. Electronic book connection to world watch live
US7835989B1 (en) 1992-12-09 2010-11-16 Discovery Communications, Inc. Electronic book alternative delivery systems
US9286294B2 (en) 1992-12-09 2016-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content suggestion engine
CA2125608A1 (en) * 1993-06-30 1994-12-31 George M. Moore Method and system for providing substitute computer fonts
US8095949B1 (en) 1993-12-02 2012-01-10 Adrea, LLC Electronic book with restricted access features
US7865567B1 (en) 1993-12-02 2011-01-04 Discovery Patent Holdings, Llc Virtual on-demand electronic book
US9053640B1 (en) 1993-12-02 2015-06-09 Adrea, LLC Interactive electronic book
US7861166B1 (en) 1993-12-02 2010-12-28 Discovery Patent Holding, Llc Resizing document pages to fit available hardware screens
US6604103B1 (en) 1994-09-02 2003-08-05 Mark A. Wolfe System and method for information retrieval employing a preloading procedure
US7467137B1 (en) 1994-09-02 2008-12-16 Wolfe Mark A System and method for information retrieval employing a preloading procedure
US7103594B1 (en) 1994-09-02 2006-09-05 Wolfe Mark A System and method for information retrieval employing a preloading procedure
JP3548617B2 (ja) 1995-01-31 2004-07-28 株式会社日立製作所 情報検索装置
US7302638B1 (en) 1995-06-07 2007-11-27 Wolfe Mark A Efficiently displaying and researching information about the interrelationships between documents
US5870770A (en) * 1995-06-07 1999-02-09 Wolfe; Mark A. Document research system and method for displaying citing documents
US7562392B1 (en) 1999-05-19 2009-07-14 Digimarc Corporation Methods of interacting with audio and ambient music
US6957260B1 (en) * 1996-06-03 2005-10-18 Microsoft Corporation Method of improving access to services provided by a plurality of remote service providers
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US6311197B2 (en) * 1996-06-03 2001-10-30 Webtv Networks, Inc. Method for downloading a web page to a client for efficient display on a television screen
US5852820A (en) * 1996-08-09 1998-12-22 Digital Equipment Corporation Method for optimizing entries for searching an index
US7714778B2 (en) 1997-08-20 2010-05-11 Tracbeam Llc Wireless location gateway and applications therefor
US9134398B2 (en) 1996-09-09 2015-09-15 Tracbeam Llc Wireless location using network centric location estimators
US7764231B1 (en) 1996-09-09 2010-07-27 Tracbeam Llc Wireless location using multiple mobile station location techniques
US6236365B1 (en) 1996-09-09 2001-05-22 Tracbeam, Llc Location of a mobile station using a plurality of commercial wireless infrastructures
US7903029B2 (en) 1996-09-09 2011-03-08 Tracbeam Llc Wireless location routing applications and architecture therefor
US5953008A (en) * 1996-10-01 1999-09-14 Nikon Corporation Source file editing apparatus
US6006252A (en) 1996-10-08 1999-12-21 Wolfe; Mark A. System and method for communicating information relating to a network resource
US5835908A (en) * 1996-11-19 1998-11-10 Microsoft Corporation Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers
US5918239A (en) * 1997-01-21 1999-06-29 International Business Machines Corporation Deferred display of web pages corresponding to links selected by user
JP3586351B2 (ja) * 1997-03-21 2004-11-10 インターナショナル・ビジネス・マシーンズ・コーポレーション ウインドウ表示装置および方法、並びにウインドウ表示制御プログラムを記録した記録媒体
US8626763B1 (en) 1997-05-22 2014-01-07 Google Inc. Server-side suggestion of preload operations
US6278465B1 (en) 1997-06-23 2001-08-21 Sun Microsystems, Inc. Adaptive font sizes for network browsing
US6178433B1 (en) * 1997-07-15 2001-01-23 International Business Machines Corporation Method and system for generating materials for presentation on a non-frame capable web browser
US6076104A (en) * 1997-09-04 2000-06-13 Netscape Communications Corp. Video data integration system using image data and associated hypertext links
US6094657A (en) * 1997-10-01 2000-07-25 International Business Machines Corporation Apparatus and method for dynamic meta-tagging of compound documents
US5940843A (en) * 1997-10-08 1999-08-17 Multex Systems, Inc. Information delivery system and method including restriction processing
US6324500B1 (en) * 1997-11-14 2001-11-27 International Business Machines Corporation Method and system for the international support of internet web pages
US6292813B1 (en) 1997-11-17 2001-09-18 Mark A. Wolfe System and method for communicating information relating to a network resource
US7257604B1 (en) 1997-11-17 2007-08-14 Wolfe Mark A System and method for communicating information relating to a network resource
US6085199A (en) * 1997-11-24 2000-07-04 International Business Machines Corporation Method for distributing a file in a plurality of different file formats
US6092063A (en) * 1997-11-25 2000-07-18 International Business Machines Corporation Multi-level live connection for fast dynamic access to business databases through a network
US6324553B1 (en) 1997-11-26 2001-11-27 International Business Machines Corporation Apparatus and method for the manual selective blocking of images
US6356924B2 (en) * 1997-11-26 2002-03-12 International Business Machines Corporation Configurable disablement of display objects in a browser
US6769019B2 (en) 1997-12-10 2004-07-27 Xavier Ferguson Method of background downloading of information from a computer network
US6091395A (en) 1997-12-15 2000-07-18 International Business Machines Corporation Computer system and method of manipulating a graphical user interface component on a computer display through collision with a pointer
US6996561B2 (en) * 1997-12-21 2006-02-07 Brassring, Llc System and method for interactively entering data into a database
US5999939A (en) * 1997-12-21 1999-12-07 Interactive Search, Inc. System and method for displaying and entering interactively modified stream data into a structured form
US7596755B2 (en) * 1997-12-22 2009-09-29 Ricoh Company, Ltd. Multimedia visualization and integration environment
US7124093B1 (en) 1997-12-22 2006-10-17 Ricoh Company, Ltd. Method, system and computer code for content based web advertising
US7257589B1 (en) 1997-12-22 2007-08-14 Ricoh Company, Ltd. Techniques for targeting information to users
JP4183311B2 (ja) 1997-12-22 2008-11-19 株式会社リコー 文書の注釈方法、注釈装置および記録媒体
US7263659B2 (en) 1998-09-09 2007-08-28 Ricoh Company, Ltd. Paper-based interface for multimedia information
US20080028292A1 (en) * 1997-12-22 2008-01-31 Ricoh Company, Ltd. Techniques to facilitate reading of a document
US7954056B2 (en) 1997-12-22 2011-05-31 Ricoh Company, Ltd. Television-based visualization and navigation interface
US6874123B1 (en) * 1998-02-09 2005-03-29 International Business Machines Corporation Three-dimensional model to facilitate user comprehension and management of information
US6308187B1 (en) 1998-02-09 2001-10-23 International Business Machines Corporation Computer system and method for abstracting and accessing a chronologically-arranged collection of information
US6505251B1 (en) * 1998-03-06 2003-01-07 Intel Corporation Controlling the reception of a data signal stream of a progressive format type file
US6219679B1 (en) * 1998-03-18 2001-04-17 Nortel Networks Limited Enhanced user-interactive information content bookmarking
US6133916A (en) * 1998-04-08 2000-10-17 International Business Machines Corporation Graphical user interface providing access to files downloaded over a network
US7689532B1 (en) 2000-07-20 2010-03-30 Digimarc Corporation Using embedded data with file sharing
US7372976B2 (en) * 1998-04-16 2008-05-13 Digimarc Corporation Content indexing and searching using content identifiers and associated metadata
US7756892B2 (en) * 2000-05-02 2010-07-13 Digimarc Corporation Using embedded data with file sharing
FI981355A (fi) * 1998-06-11 1999-12-12 Nokia Mobile Phones Ltd Elektroninen tiedoston noutomenetelmä ja -järjestelmä
US6438564B1 (en) * 1998-06-17 2002-08-20 Microsoft Corporation Method for associating a discussion with a document
US6216123B1 (en) * 1998-06-24 2001-04-10 Novell, Inc. Method and system for rapid retrieval in a full text indexing system
CN100392634C (zh) * 1998-07-21 2008-06-04 三星电子株式会社 显示万维网文档的系统和方法
US6582475B2 (en) 1998-09-09 2003-06-24 Ricoh Company Limited Automatic adaptive document printing help system
US7263671B2 (en) * 1998-09-09 2007-08-28 Ricoh Company, Ltd. Techniques for annotating multimedia information
US7266782B2 (en) * 1998-09-09 2007-09-04 Ricoh Company, Ltd. Techniques for generating a coversheet for a paper-based interface for multimedia information
US7215436B2 (en) * 1998-09-09 2007-05-08 Ricoh Company, Ltd. Device for generating a multimedia paper document
US6369811B1 (en) 1998-09-09 2002-04-09 Ricoh Company Limited Automatic adaptive document help for paper documents
JP4150452B2 (ja) * 1998-11-12 2008-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーション フォントの取得方法、登録方法および印刷方法
US8135413B2 (en) 1998-11-24 2012-03-13 Tracbeam Llc Platform and applications for wireless location and other complex services
US7058597B1 (en) 1998-12-04 2006-06-06 Digital River, Inc. Apparatus and method for adaptive fraud screening for electronic commerce transactions
US7617124B1 (en) 1998-12-04 2009-11-10 Digital River, Inc. Apparatus and method for secure downloading of files
US20030195974A1 (en) * 1998-12-04 2003-10-16 Ronning Joel A. Apparatus and method for scheduling of search for updates or downloads of a file
US6912327B1 (en) * 1999-01-28 2005-06-28 Kabushiki Kaisha Toshiba Imagine information describing method, video retrieval method, video reproducing method, and video reproducing apparatus
US6326957B1 (en) * 1999-01-29 2001-12-04 International Business Machines Corporation System and method for displaying page information in a personal digital notepad
US7287018B2 (en) * 1999-01-29 2007-10-23 Canon Kabushiki Kaisha Browsing electronically-accessible resources
US6678410B1 (en) * 1999-02-17 2004-01-13 Adobe Systems Incorporated Generating a glyph
US6938051B1 (en) * 1999-02-26 2005-08-30 Verizon Services Corp. Method, storage medium and system for electronically viewing multi-page document while preserving appearance of printed pages
US6687878B1 (en) 1999-03-15 2004-02-03 Real Time Image Ltd. Synchronizing/updating local client notes with annotations previously made by other clients in a notes database
US6310633B1 (en) * 1999-03-23 2001-10-30 Ricoh Company Limited Method and system for organizing document information
US6486892B1 (en) * 1999-04-07 2002-11-26 Joseph L. Stern System and method for accessing, manipulating and viewing internet and non-internet related information and for controlling networked devices
US6512531B1 (en) * 1999-04-09 2003-01-28 Adobe Systems Incorporated Font navigation tool
DE60039742D1 (de) * 1999-05-13 2008-09-18 Matsushita Electric Ind Co Ltd Mobiles Kommunikationsendgerät zum Darstellen von Text durch Schalten zwischen verschiedenen Zeichensätzen
US7565294B2 (en) 1999-05-19 2009-07-21 Digimarc Corporation Methods and systems employing digital content
US6647534B1 (en) 1999-06-30 2003-11-11 Ricoh Company Limited Method and system for organizing document information in a non-directed arrangement of documents
US7228492B1 (en) 1999-07-06 2007-06-05 Ricoh Company, Ltd. 2D graph displaying document locations of user-specified concept of interest
JP2001043212A (ja) * 1999-07-23 2001-02-16 Internatl Business Mach Corp <Ibm> 電子文書における文字情報の正規化方法
US6282327B1 (en) * 1999-07-30 2001-08-28 Microsoft Corporation Maintaining advance widths of existing characters that have been resolution enhanced
US7007239B1 (en) * 2000-09-21 2006-02-28 Palm, Inc. Method and apparatus for accessing a contacts database and telephone services
US8064886B2 (en) * 1999-08-12 2011-11-22 Hewlett-Packard Development Company, L.P. Control mechanisms for mobile devices
US20060121938A1 (en) * 1999-08-12 2006-06-08 Hawkins Jeffrey C Integrated handheld computing and telephony device
US7503016B2 (en) * 1999-08-12 2009-03-10 Palm, Inc. Configuration mechanism for organization of addressing elements
US6781575B1 (en) * 2000-09-21 2004-08-24 Handspring, Inc. Method and apparatus for organizing addressing elements
US6519050B1 (en) 1999-08-18 2003-02-11 Rtimage Ltd. Client/server based color density measurement system
US7278094B1 (en) 2000-05-03 2007-10-02 R. R. Donnelley & Sons Co. Variable text processing for an electronic press
AU1367101A (en) 1999-09-24 2002-01-08 Dennis J. Dupray Geographically constrained network services
US20040148274A1 (en) * 1999-10-15 2004-07-29 Warnock Christopher M. Method and apparatus for improved information transactions
US8311946B1 (en) 1999-10-15 2012-11-13 Ebrary Method and apparatus for improved information transactions
US7536561B2 (en) 1999-10-15 2009-05-19 Ebrary, Inc. Method and apparatus for improved information transactions
DE60025389T2 (de) * 1999-10-27 2006-07-06 Discovery Communications, Inc. Verfahren für ein virtuelles auf anforderung ausgeliefertes elektronisches buch
US6748450B1 (en) 1999-10-28 2004-06-08 International Business Machines Corporation Delayed delivery of web pages via e-mail or push techniques from an overloaded or partially functional web server
JP3609307B2 (ja) * 1999-12-07 2005-01-12 シャープ株式会社 文書管理装置
US6820111B1 (en) 1999-12-07 2004-11-16 Microsoft Corporation Computer user interface architecture that saves a user's non-linear navigation history and intelligently maintains that history
US7185274B1 (en) 1999-12-07 2007-02-27 Microsoft Corporation Computer user interface architecture wherein users interact with both content and user interface by activating links
US6714214B1 (en) 1999-12-07 2004-03-30 Microsoft Corporation System method and user interface for active reading of electronic content
US7028267B1 (en) * 1999-12-07 2006-04-11 Microsoft Corporation Method and apparatus for capturing and rendering text annotations for non-modifiable electronic content
US7458014B1 (en) 1999-12-07 2008-11-25 Microsoft Corporation Computer user interface architecture wherein both content and user interface are composed of documents with links
US7337389B1 (en) 1999-12-07 2008-02-26 Microsoft Corporation System and method for annotating an electronic document independently of its content
US20040268253A1 (en) * 1999-12-07 2004-12-30 Microsoft Corporation Method and apparatus for installing and using reference materials in conjunction with reading electronic content
US9424240B2 (en) 1999-12-07 2016-08-23 Microsoft Technology Licensing, Llc Annotations for electronic content
US6992687B1 (en) * 1999-12-07 2006-01-31 Microsoft Corporation Bookmarking and placemarking a displayed document in a computer system
US6957233B1 (en) 1999-12-07 2005-10-18 Microsoft Corporation Method and apparatus for capturing and rendering annotations for non-modifiable electronic content
US6920633B1 (en) * 2000-01-14 2005-07-19 Microsoft Corporation Cross-process common system resource data sharing
US7107526B1 (en) * 2000-01-19 2006-09-12 Xerox Corporation Transparent injection of specific content into web pages viewed while browsing
US7043488B1 (en) 2000-01-21 2006-05-09 International Business Machines Corporation Method and system for storing hierarchical content objects in a data repository
US7089239B1 (en) 2000-01-21 2006-08-08 International Business Machines Corporation Method and system for preventing mutually exclusive content entities stored in a data repository to be included in the same compilation of content
US7007034B1 (en) * 2000-01-21 2006-02-28 International Business Machines Corporation File structure for storing content objects in a data repository
US7340481B1 (en) * 2000-01-21 2008-03-04 International Business Machines Corp. Method and system for adding user-provided content to a content object stored in a data repository
US7346844B1 (en) 2000-01-21 2008-03-18 International Business Machines, Corporation Method and system for moving content in a content object stored in a data repository
US7356766B1 (en) 2000-01-21 2008-04-08 International Business Machines Corp. Method and system for adding content to a content object stored in a data repository
US8589777B1 (en) 2000-01-21 2013-11-19 International Business Machines Corporation Method and system for calculating cost of a compilation of content
US7765271B1 (en) 2000-02-03 2010-07-27 Hyland Software, Inc. System and method for scanning a document in client/server environment
US6700589B1 (en) 2000-02-17 2004-03-02 International Business Machines Corporation Method, system, and program for magnifying content downloaded from a server over a network
US6618758B1 (en) * 2000-02-18 2003-09-09 Lucent Technologies Inc. System for downloading only a portion of a file from a server through a computer network utilizing a client menu downloaded periodically from the server
US8676667B1 (en) * 2000-02-24 2014-03-18 Richard Paiz Parallel computer network and method for real time financial resource management, inventory control, and online purchasing
US8122344B2 (en) 2000-03-01 2012-02-21 Research In Motion Limited System and method for rapid document conversion
US7142691B2 (en) * 2000-03-18 2006-11-28 Digimarc Corporation Watermark embedding functions in rendering description files
US6785679B1 (en) * 2000-03-29 2004-08-31 Brassring, Llc Method and apparatus for sending and tracking resume data sent via URL
US7047493B1 (en) * 2000-03-31 2006-05-16 Brill Eric D Spell checker with arbitrary length string-to-string transformations to improve noisy channel spelling correction
US8055776B1 (en) 2000-04-05 2011-11-08 International Business Machines Corporation Sending full-content data to a second data processing system while viewing reduced-content data on a first data processing system
US6580440B1 (en) * 2000-04-05 2003-06-17 Ncr Corporation System and method for automatically creating and updating a graphical user interface
KR100369944B1 (ko) * 2000-04-06 2003-02-05 엘지전자 주식회사 정보 편집 및 그 정보의 디스플레이 방법
US7009626B2 (en) * 2000-04-14 2006-03-07 Picsel Technologies Limited Systems and methods for generating visual representations of graphical data and digital document processing
US7576730B2 (en) 2000-04-14 2009-08-18 Picsel (Research) Limited User interface systems and methods for viewing and manipulating digital documents
US7243299B1 (en) 2000-04-21 2007-07-10 Microsoft Corporation Methods and apparatus for displaying multiple contexts in electronic documents
US7069592B2 (en) 2000-04-26 2006-06-27 Ford Global Technologies, Llc Web-based document system
US7111168B2 (en) * 2000-05-01 2006-09-19 Digimarc Corporation Digital watermarking systems
US6834312B2 (en) 2000-05-02 2004-12-21 Cadopener.Com 11C Method and apparatus for delivery of data over a network
US6781711B1 (en) 2000-05-15 2004-08-24 International Business Machines Corporation Method and system for efficient transmittal and presentation of complex images
US9436667B2 (en) * 2000-05-19 2016-09-06 Renderx, Inc. Techniques for rendering media as layers
US7155672B1 (en) * 2000-05-23 2006-12-26 Spyglass, Inc. Method and system for dynamic font subsetting
JP2001344243A (ja) * 2000-05-31 2001-12-14 Fuji Xerox Co Ltd 文書データ送信装置、文書データ送受信システム及び文書データ送信方法
US10641861B2 (en) 2000-06-02 2020-05-05 Dennis J. Dupray Services and applications for a communications network
US9875492B2 (en) 2001-05-22 2018-01-23 Dennis J. Dupray Real estate transaction system
US10684350B2 (en) 2000-06-02 2020-06-16 Tracbeam Llc Services and applications for a communications network
US7743330B1 (en) 2000-06-19 2010-06-22 Comcast Ip Holdings I, Llc Method and apparatus for placing virtual objects
US7234108B1 (en) 2000-06-29 2007-06-19 Microsoft Corporation Ink thickness rendering for electronic annotations
JP2004505349A (ja) * 2000-07-20 2004-02-19 ディジマーク コーポレイション ファイル共有で組み込まれたデータの使用
US6778972B2 (en) 2000-08-10 2004-08-17 Gustavo S. Leonardos′ System and method for providing integrated management of electronic information
US8397163B1 (en) * 2000-08-14 2013-03-12 Deep Sran Device, method, and system for providing an electronic reading environment
AU2001294099A1 (en) * 2000-08-31 2002-03-13 Docubase Reconfiguration and preservation of setup data
US6980204B1 (en) * 2000-09-21 2005-12-27 Jeffrey Charles Hawkins Charging and communication cable system for a mobile computer apparatus
US8332553B2 (en) * 2000-09-21 2012-12-11 Hewlett-Packard Development Company, L.P. Method and apparatus for accessing a contacts database and telephone services
US7584090B1 (en) * 2000-11-06 2009-09-01 Verisign, Inc. Text creating and editing system and method with dynamic data loading
US6877025B2 (en) * 2000-12-18 2005-04-05 International Business Machines Corp. Integrated JSP and command cache for web applications with dynamic content
US6807606B2 (en) 2000-12-18 2004-10-19 International Business Machines Corp. Distributed execution coordination for web caching with dynamic content
US6741745B2 (en) 2000-12-18 2004-05-25 Xerox Corporation Method and apparatus for formatting OCR text
US6823360B2 (en) * 2000-12-18 2004-11-23 International Business Machines Corp. Cofetching in a command cache
US20020111992A1 (en) * 2000-12-18 2002-08-15 Copeland George P. JSP composition in a cache for web applications with dynamic content
US7702800B2 (en) 2000-12-18 2010-04-20 International Business Machines Corporation Detecting and handling affinity breaks in web applications
US6965683B2 (en) * 2000-12-21 2005-11-15 Digimarc Corporation Routing networks for use with watermark systems
US8103877B2 (en) * 2000-12-21 2012-01-24 Digimarc Corporation Content identification and electronic tickets, coupons and credits
AU2002232817A1 (en) * 2000-12-21 2002-07-01 Digimarc Corporation Methods, apparatus and programs for generating and utilizing content signatures
US7142883B2 (en) * 2000-12-29 2006-11-28 International Business Machines Corporation System and method for providing search capabilities and storing functions on a wireless access device
US20020087628A1 (en) * 2000-12-29 2002-07-04 Andrew Rouse System and method for providing wireless device access to e-mail applications
US6983310B2 (en) * 2000-12-29 2006-01-03 International Business Machines Corporation System and method for providing search capabilties on a wireless device
US20050159136A1 (en) * 2000-12-29 2005-07-21 Andrew Rouse System and method for providing wireless device access
US8112544B2 (en) * 2000-12-29 2012-02-07 International Business Machines Corporation System and method for providing customizable options on a wireless device
US7616971B2 (en) * 2000-12-29 2009-11-10 International Business Machines Corporation System and method for providing access to forms for displaying information on a wireless access device
TWI238637B (en) * 2001-01-10 2005-08-21 Ibm Method and system for processing of documents with electronic signatures
US20020095443A1 (en) * 2001-01-17 2002-07-18 The Beacon Journal Publishing Company Method for automated generation of interactive enhanced electronic newspaper
US7496767B2 (en) * 2001-01-19 2009-02-24 Xerox Corporation Secure content objects
JP3631680B2 (ja) * 2001-02-06 2005-03-23 株式会社ビーコンインフォメーションテクノロジー データ処理システム、データ処理方法及びコンピュータプログラム
JP2002236701A (ja) * 2001-02-09 2002-08-23 Nihon Keizai Shimbun Inc 段階的情報表示方法
US7277878B2 (en) * 2001-02-13 2007-10-02 Ariba, Inc. Variable length file header apparatus and system
US7546527B2 (en) * 2001-03-06 2009-06-09 International Business Machines Corporation Method and apparatus for repurposing formatted content
US20020188635A1 (en) * 2001-03-20 2002-12-12 Larson Stephen C. System and method for incorporation of print-ready advertisement in digital newspaper editions
FR2822560A1 (fr) * 2001-03-20 2002-09-27 Koninkl Philips Electronics Nv Procede de transfert d'une certaine version d'un objet
US7679774B2 (en) * 2001-04-06 2010-03-16 Oce Printing Systems Gmbh Method, system and computer program for the generation of an electronic document from scanned image data
US8762837B1 (en) * 2001-04-09 2014-06-24 Critical Technologies, Inc. System and methodology for the storage and manipulation of documents
US7197703B1 (en) * 2001-04-09 2007-03-27 Critical Technologies, Inc. System and methodology for the storage and manipulation of documents
US7134093B2 (en) * 2001-04-18 2006-11-07 International Business Machines Corporation Graphical user interface for direct control of display of data
CN1264099C (zh) * 2001-05-18 2006-07-12 夏普株式会社 内容分发系统、内容服务器以及内容分发方法
US8082096B2 (en) 2001-05-22 2011-12-20 Tracbeam Llc Wireless location routing applications and architecture therefor
US10810355B1 (en) 2001-07-16 2020-10-20 Clantech, Inc. Allowing operating system access to non-standard fonts in a network document
US8522127B2 (en) 2001-07-16 2013-08-27 Robert G. Adamson, III Allowing operating system access to non-standard fonts in a network document
US20040205602A1 (en) * 2001-07-25 2004-10-14 Douglas Croeni Page layout design using geometric interference schema
US7908628B2 (en) 2001-08-03 2011-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content coding and formatting
US7793326B2 (en) 2001-08-03 2010-09-07 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator
US6883138B2 (en) * 2001-08-08 2005-04-19 Xerox Corporation Methods and systems for generating enhanced thumbnails usable for document navigation
US7069506B2 (en) * 2001-08-08 2006-06-27 Xerox Corporation Methods and systems for generating enhanced thumbnails
US7337396B2 (en) * 2001-08-08 2008-02-26 Xerox Corporation Methods and systems for transitioning between thumbnails and documents based upon thumbnail appearance
US6993726B2 (en) * 2001-08-08 2006-01-31 Xerox Corporation Methods and systems for document navigation using enhanced thumbnails
JP2003162475A (ja) * 2001-08-15 2003-06-06 Square Co Ltd ドキュメント処理装置、ドキュメント表示方法、プログラム及び記録媒体
US7692667B2 (en) * 2001-08-17 2010-04-06 Palm, Inc. Handheld computer having moveable segments that are interactive with an integrated display
US20040205639A1 (en) * 2001-10-04 2004-10-14 International Business Machines Corporation Apparatus and method for printing multiple related web pages
US6801673B2 (en) * 2001-10-09 2004-10-05 Hewlett-Packard Development Company, L.P. Section extraction tool for PDF documents
US7376846B2 (en) * 2001-10-14 2008-05-20 Palm, Inc. Charging and communication cable system for a mobile computer apparatus
US7231208B2 (en) * 2001-10-17 2007-06-12 Palm, Inc. User interface-technique for managing an active call
US20030110234A1 (en) * 2001-11-08 2003-06-12 Lightsurf Technologies, Inc. System and methodology for delivering media to multiple disparate client devices based on their capabilities
US8635531B2 (en) * 2002-02-21 2014-01-21 Ricoh Company, Ltd. Techniques for displaying information stored in multiple multimedia documents
US8539344B2 (en) 2001-11-19 2013-09-17 Ricoh Company, Ltd. Paper-based interface for multimedia information stored by multiple multimedia documents
US7861169B2 (en) 2001-11-19 2010-12-28 Ricoh Co. Ltd. Multimedia print driver dialog interfaces
US7743347B2 (en) * 2001-11-19 2010-06-22 Ricoh Company, Ltd. Paper-based interface for specifying ranges
US7495795B2 (en) * 2002-02-21 2009-02-24 Ricoh Company, Ltd. Interface for printing multimedia information
US7703044B2 (en) * 2001-11-19 2010-04-20 Ricoh Company, Ltd. Techniques for generating a static representation for time-based media information
US7747655B2 (en) * 2001-11-19 2010-06-29 Ricoh Co. Ltd. Printable representations for time-based media
US7788080B2 (en) * 2001-11-19 2010-08-31 Ricoh Company, Ltd. Paper interface for simulation environments
US7149957B2 (en) 2001-11-19 2006-12-12 Ricoh Company, Ltd. Techniques for retrieving multimedia information using a paper-based interface
US8001052B2 (en) 2001-12-10 2011-08-16 Dunkeld Bryan C System and method for unique digital asset identification and transaction management
US20030110218A1 (en) * 2001-12-12 2003-06-12 Stanley Randy P. Local caching of images for on-line conferencing programs
US20040205656A1 (en) * 2002-01-30 2004-10-14 Benefitnation Document rules data structure and method of document publication therefrom
US20030142128A1 (en) * 2002-01-30 2003-07-31 Benefitnation User interface for a document component management and publishing system
US7035837B2 (en) * 2002-01-30 2006-04-25 Benefitnation Document component management and publishing system
KR100429893B1 (ko) * 2002-02-20 2004-05-03 이일용 웹에서의 주석을 이용한 다중페이지 전자 게시판 시스템
US20030187954A1 (en) * 2002-03-29 2003-10-02 Inventec Appliances Corp. Method and apparatus for downloading e-book via WAP
DE10215719A1 (de) * 2002-04-10 2003-10-30 Philips Intellectual Property Datenspeicher
AU2003230990B2 (en) * 2002-04-19 2008-09-18 Computer Associates Think, Inc. System and method for navigating search results
US20040205511A1 (en) * 2002-05-09 2004-10-14 International Business Machines Corporation Method and apparatus for extending browser bookmarks
US8392499B2 (en) * 2002-05-16 2013-03-05 Hewlett-Packard Development Company, L.P. System and method for relating aborted client accesses of data to quality of service provided by a server in a client-server network
US7487508B2 (en) * 2002-05-16 2009-02-03 Hewlett-Packard Development Company, L.P. System and method for reconstructing client web page accesses from captured network packets
US7474298B2 (en) 2002-05-31 2009-01-06 Palm, Inc. Mobile device having an adjustable length to selectively expose a surface component
US7051040B2 (en) * 2002-07-23 2006-05-23 Lightsurf Technologies, Inc. Imaging system providing dynamic viewport layering
US7194469B1 (en) * 2002-09-24 2007-03-20 Adobe Systems Incorporated Managing links in a collection of documents
US8356019B1 (en) * 2002-12-11 2013-01-15 Altera Corporation Method and apparatus for utilizing patterns in data to reduce file size
US7271806B2 (en) 2002-12-18 2007-09-18 Microsoft Corporation International automatic line height system and method
US7385606B2 (en) * 2002-12-18 2008-06-10 Microsoft Corporation International font measurement system and method
US20040119714A1 (en) * 2002-12-18 2004-06-24 Microsoft Corporation International automatic font size system and method
JP4084225B2 (ja) * 2003-03-28 2008-04-30 富士通株式会社 サービス提供システム
US7703002B2 (en) 2003-03-31 2010-04-20 Ricoh Company, Ltd. Method and apparatus for composing multimedia documents
US7509569B2 (en) 2003-03-31 2009-03-24 Ricoh Co., Ltd. Action stickers for nested collections
US7757162B2 (en) * 2003-03-31 2010-07-13 Ricoh Co. Ltd. Document collection manipulation
US7536638B2 (en) * 2003-03-31 2009-05-19 Ricoh Co., Ltd. Action stickers for identifying and processing stored documents
US7552381B2 (en) * 2003-03-31 2009-06-23 Ricoh Co., Ltd. Check boxes for identifying and processing stored documents
US20070050696A1 (en) * 2003-03-31 2007-03-01 Piersol Kurt W Physical key for accessing a securely stored digital document
US7739583B2 (en) * 2003-03-31 2010-06-15 Ricoh Company, Ltd. Multimedia document sharing method and apparatus
US7269787B2 (en) * 2003-04-28 2007-09-11 International Business Machines Coporation Multi-document context aware annotation system
US7295852B1 (en) 2003-05-01 2007-11-13 Palm, Inc. Automated telephone conferencing method and system
US20030191681A1 (en) * 2003-05-06 2003-10-09 Gallion Kirk P. Method for managing a business process related to a document publishing project
US20050289461A1 (en) * 2003-05-23 2005-12-29 Manoel Amado System and method for digital content processing and distribution
US7865180B2 (en) * 2003-06-23 2011-01-04 Palm, Inc. Automated telephone conferencing method and system
US7275159B2 (en) * 2003-08-11 2007-09-25 Ricoh Company, Ltd. Multimedia output device having embedded encryption functionality
US9098475B2 (en) * 2003-08-20 2015-08-04 Xerox Corporation Apparatus and method for generating reusable composite components during dynamic document construction
US7860309B1 (en) 2003-09-30 2010-12-28 Verisign, Inc. Media publishing system with methodology for parameterized rendering of image regions of interest
US20050114361A1 (en) * 2003-11-26 2005-05-26 Brent Roberts Method and apparatus for integrating data repositories and frameworks
US20050193069A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Providing a portion of an electronic mail message based upon a transfer rate and a message size
US20050193145A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Providing a portion of an electronic mail message based upon digital rights
US7596285B2 (en) * 2004-02-26 2009-09-29 International Business Machines Corporation Providing a portion of an electronic mail message at a reduced resolution
US7512658B2 (en) * 2004-02-26 2009-03-31 International Business Machines Corporation Providing a portion of an electronic mail message based upon a transfer rate, a message size, and a file format
US8689101B2 (en) 2004-02-27 2014-04-01 Blackberry Limited Font data processing system and method
DE602004012707T2 (de) * 2004-02-27 2009-04-16 Research In Motion Ltd., Waterloo System und Verfahren zur Verarbeitung von Schriftartdaten
US20050193330A1 (en) * 2004-02-27 2005-09-01 Exit 33 Education, Inc. Methods and systems for eBook storage and presentation
US7802262B1 (en) 2004-03-05 2010-09-21 Adobe Systems Incorporated System and method for communicating state and title information between a browser and a rich internet application with browser forward and back button support
US7554544B2 (en) * 2004-03-16 2009-06-30 Microsoft Corporation Just-in-time user interface layout
US7779355B1 (en) 2004-03-30 2010-08-17 Ricoh Company, Ltd. Techniques for using paper documents as media templates
US7716597B2 (en) * 2004-03-31 2010-05-11 International Business Machines Corporation Dynamic materialization of disappearing entities
JP4143566B2 (ja) * 2004-04-16 2008-09-03 キヤノン株式会社 文書処理装置及びその制御方法、並びにコンピュータプログラム
US7580867B2 (en) * 2004-05-04 2009-08-25 Paul Nykamp Methods for interactively displaying product information and for collaborative product design
US9058388B2 (en) 2004-06-22 2015-06-16 Digimarc Corporation Internet and database searching with handheld devices
US7340316B2 (en) * 2004-06-28 2008-03-04 Hanger Orthopedic Group, Inc. System and method for producing medical devices
TW200622893A (en) * 2004-07-09 2006-07-01 Nokia Corp Cute user interface
US20060020904A1 (en) * 2004-07-09 2006-01-26 Antti Aaltonen Stripe user interface
JP4546187B2 (ja) * 2004-08-06 2010-09-15 キヤノン株式会社 画像処理装置およびその制御方法
US7526726B1 (en) * 2004-08-25 2009-04-28 Adobe Systems Incorporated System and method for generating presentations
US20070118794A1 (en) * 2004-09-08 2007-05-24 Josef Hollander Shared annotation system and method
GB2418280A (en) * 2004-09-18 2006-03-22 Hewlett Packard Development Co Document creation system
US20060075327A1 (en) 2004-09-29 2006-04-06 Joe Sriver User interface for presentation of a document
KR100478397B1 (ko) * 2004-11-24 2005-03-24 엔에이치엔(주) 폰트 서비스 제공 방법 및 상기 방법을 수행하는 시스템
US8131647B2 (en) * 2005-01-19 2012-03-06 Amazon Technologies, Inc. Method and system for providing annotations of a digital work
US9275052B2 (en) 2005-01-19 2016-03-01 Amazon Technologies, Inc. Providing annotations of a digital work
EP1686454B1 (de) * 2005-01-28 2018-12-26 Kyocera Corporation Anzeigevorrichtung
US7408556B2 (en) * 2005-01-31 2008-08-05 Microsoft Corporation System and method for using device dependent fonts in a graphical display interface
US7840564B2 (en) 2005-02-16 2010-11-23 Ebrary System and method for automatic anthology creation using document aspects
US7620886B1 (en) * 2005-03-01 2009-11-17 Adobe Systems, Incorporated Method and apparatus for ordering objects in an electronic document
US9769354B2 (en) 2005-03-24 2017-09-19 Kofax, Inc. Systems and methods of processing scanned data
US9137417B2 (en) 2005-03-24 2015-09-15 Kofax, Inc. Systems and methods for processing video data
US9384171B2 (en) * 2005-05-16 2016-07-05 Adobe Systems Incorporated Object resizing with content reflow
US7854013B2 (en) * 2005-06-03 2010-12-14 Working Solutions International, Inc. Method for electronic data and signature collection, and system
US7433869B2 (en) * 2005-07-01 2008-10-07 Ebrary, Inc. Method and apparatus for document clustering and document sketching
WO2007013566A1 (ja) * 2005-07-28 2007-02-01 Sharp Kabushiki Kaisha 情報処理装置、情報処理プログラムおよび可読記録媒体
JP4724517B2 (ja) * 2005-09-29 2011-07-13 キヤノン株式会社 画像処理システムおよび画像処理方法およびプログラムおよび記憶媒体
JP4808220B2 (ja) * 2005-09-30 2011-11-02 シャープ株式会社 文字パターン生成装置、文字パターン生成プログラムおよび可読記録媒体
KR100661173B1 (ko) * 2005-10-18 2006-12-26 삼성전자주식회사 다이렉트 프린팅 기능을 갖는 프린터 및 그 인쇄방법
US20070094267A1 (en) * 2005-10-20 2007-04-26 Glogood Inc. Method and system for website navigation
US20070103488A1 (en) * 2005-11-04 2007-05-10 Microsoft Corporation Substituting pattern fills
US8001458B1 (en) * 2005-11-14 2011-08-16 Adobe Systems Incorporated System and method for communicating state and title information between a browser and a rich Internet application
US7716570B2 (en) * 2005-12-12 2010-05-11 Microsoft Corporation Interfaces for creation and access of extensible markup language paper specification documents
US8255640B2 (en) * 2006-01-03 2012-08-28 Apple Inc. Media device with intelligent cache utilization
US8301997B2 (en) 2006-01-10 2012-10-30 International Business Machines Corporation System and method for serving multiple data objects and formatting functions in a single request
US7467163B1 (en) 2006-02-10 2008-12-16 Unisys Corporation System and method to manipulate large objects on enterprise server data management system
US7974988B2 (en) * 2006-02-24 2011-07-05 Syniverse Icx Corporation System and method for cross-carrier mobile device capability discovery
US8381121B2 (en) * 2006-03-01 2013-02-19 Microsoft Corporation Controlling scroll speed to improve readability
US20070224643A1 (en) * 2006-03-09 2007-09-27 Mcpherson Paul H Methods and compositions for the diagnosis of diseases of the aorta
US7788580B1 (en) 2006-03-28 2010-08-31 Amazon Technologies, Inc. Processing digital images including headers and footers into reflow content
US7433548B2 (en) * 2006-03-28 2008-10-07 Amazon Technologies, Inc. Efficient processing of non-reflow content in a digital image
US8023738B1 (en) 2006-03-28 2011-09-20 Amazon Technologies, Inc. Generating reflow files from digital images for rendering on various sized displays
US7966557B2 (en) * 2006-03-29 2011-06-21 Amazon Technologies, Inc. Generating image-based reflowable files for rendering on various sized displays
US8352449B1 (en) 2006-03-29 2013-01-08 Amazon Technologies, Inc. Reader device content indexing
US7617206B1 (en) 2006-04-06 2009-11-10 Unisys Corporation Method for analyzing status of specialized tank files which store and handle large objects
WO2007140237A2 (en) * 2006-05-24 2007-12-06 170 Systems, Inc. System for and method of providing a user interface for a computer-based software application
US7627818B2 (en) * 2006-05-31 2009-12-01 International Business Machines Corporation Displaying HTML text on a non-graphical console
US8086946B2 (en) * 2006-09-05 2011-12-27 Adobe Systems Incorporated Methods and apparatus for optimizing responsiveness of portable documents
JP2008070831A (ja) * 2006-09-15 2008-03-27 Ricoh Co Ltd 文書表示装置及び文書表示プログラム
US7715635B1 (en) 2006-09-28 2010-05-11 Amazon Technologies, Inc. Identifying similarly formed paragraphs in scanned images
US7810026B1 (en) * 2006-09-29 2010-10-05 Amazon Technologies, Inc. Optimizing typographical content for transmission and display
US9672533B1 (en) 2006-09-29 2017-06-06 Amazon Technologies, Inc. Acquisition of an item based on a catalog presentation of items
US8725565B1 (en) 2006-09-29 2014-05-13 Amazon Technologies, Inc. Expedited acquisition of a digital item following a sample presentation of the item
US7865817B2 (en) 2006-12-29 2011-01-04 Amazon Technologies, Inc. Invariant referencing in digital works
US8024400B2 (en) 2007-09-26 2011-09-20 Oomble, Inc. Method and system for transferring content from the web to mobile devices
US7751807B2 (en) 2007-02-12 2010-07-06 Oomble, Inc. Method and system for a hosted mobile management service architecture
US20080235597A1 (en) * 2007-03-19 2008-09-25 Mor Schlesinger Systems and methods of data integration for creating custom books
US9665529B1 (en) 2007-03-29 2017-05-30 Amazon Technologies, Inc. Relative progress and event indicators
US7716224B2 (en) 2007-03-29 2010-05-11 Amazon Technologies, Inc. Search and indexing on a user device
US20080250023A1 (en) * 2007-04-03 2008-10-09 Baker Peter N System and method for bookmarking content with user feedback
US9021352B2 (en) * 2007-05-17 2015-04-28 Adobe Systems Incorporated Methods and apparatus for predictive document rendering
US7921309B1 (en) 2007-05-21 2011-04-05 Amazon Technologies Systems and methods for determining and managing the power remaining in a handheld electronic device
US9286309B2 (en) * 2007-05-23 2016-03-15 Adobe Systems Incorporated Representation of last viewed or last modified portion of a document
US8271470B2 (en) * 2007-06-09 2012-09-18 Apple Inc. Auto-activation of fonts
US20090031081A1 (en) * 2007-07-25 2009-01-29 International Business Machines Corporation System and module for merging electronic and printed data
US9086791B2 (en) * 2007-08-22 2015-07-21 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for providing content-aware scrolling
US8126519B2 (en) * 2007-08-31 2012-02-28 Hewlett-Packard Development Company, L.P. Housing for mobile computing device having construction to slide and pivot into multiple positions
US8370751B2 (en) * 2007-08-31 2013-02-05 Sap Ag User interface customization system
US10657314B2 (en) 2007-09-11 2020-05-19 E-Plan, Inc. System and method for dynamic linking between graphic documents and comment data bases
US7975222B1 (en) * 2007-09-11 2011-07-05 E-Plan, Inc. System and method for dynamic linking between graphic documents and comment data bases
CN100527122C (zh) * 2007-10-24 2009-08-12 北大方正集团有限公司 可移植文档格式文件的合并方法及装置
US8150482B2 (en) 2008-01-08 2012-04-03 Hewlett-Packard Development Company, L.P. Mobile computing device with moveable housing segments
US8233948B2 (en) * 2007-12-11 2012-07-31 Hewlett-Packard Development Company, L.P. Slider assembly for a housing of a mobile computing device
US8782516B1 (en) 2007-12-21 2014-07-15 Amazon Technologies, Inc. Content style detection
US8200298B2 (en) 2008-01-08 2012-06-12 Hewlett-Packard Development Company, L.P. Keypad housing configuration for a mobile computing device
US9235559B2 (en) * 2008-04-02 2016-01-12 Microsoft Technology Licensing, Llc Progressive page loading
US8572480B1 (en) 2008-05-30 2013-10-29 Amazon Technologies, Inc. Editing the sequential flow of a page
US8423889B1 (en) 2008-06-05 2013-04-16 Amazon Technologies, Inc. Device specific presentation control for electronic book reader devices
US9229911B1 (en) 2008-09-30 2016-01-05 Amazon Technologies, Inc. Detecting continuation of flow of a page
US20100180011A1 (en) * 2009-01-12 2010-07-15 Microsoft Corporation Url based retrieval of portions of media content
US9087032B1 (en) 2009-01-26 2015-07-21 Amazon Technologies, Inc. Aggregation of highlights
US8378979B2 (en) 2009-01-27 2013-02-19 Amazon Technologies, Inc. Electronic device with haptic feedback
US9349046B2 (en) 2009-02-10 2016-05-24 Kofax, Inc. Smart optical input/output (I/O) extension for context-dependent workflows
US9767354B2 (en) 2009-02-10 2017-09-19 Kofax, Inc. Global geographic information retrieval, validation, and normalization
US8774516B2 (en) 2009-02-10 2014-07-08 Kofax, Inc. Systems, methods and computer program products for determining document validity
US8879846B2 (en) 2009-02-10 2014-11-04 Kofax, Inc. Systems, methods and computer program products for processing financial documents
US9576272B2 (en) 2009-02-10 2017-02-21 Kofax, Inc. Systems, methods and computer program products for determining document validity
US8958605B2 (en) 2009-02-10 2015-02-17 Kofax, Inc. Systems, methods and computer program products for determining document validity
US8856647B2 (en) * 2009-02-20 2014-10-07 Microsoft Corporation Font handling for viewing documents on the web
US9088757B2 (en) 2009-03-25 2015-07-21 Eloy Technology, Llc Method and system for socially ranking programs
US8832584B1 (en) 2009-03-31 2014-09-09 Amazon Technologies, Inc. Questions on highlighted passages
US20110072036A1 (en) * 2009-09-23 2011-03-24 Microsoft Corporation Page-based content storage system
US8692763B1 (en) 2009-09-28 2014-04-08 John T. Kim Last screen rendering for electronic book reader
US8769405B2 (en) * 2009-10-16 2014-07-01 Celartem, Inc. Reduced glyph font files
US8769050B2 (en) * 2009-10-16 2014-07-01 Celartern, Inc. Serving font files in varying formats based on user agent type
US8411305B2 (en) * 2009-10-27 2013-04-02 Hewlett-Packard Development Company, L.P. System and method for identifying a record template within a file having reused objects
US9445158B2 (en) 2009-11-06 2016-09-13 Eloy Technology, Llc Distributed aggregated content guide for collaborative playback session
US8922582B2 (en) * 2009-11-16 2014-12-30 Martin J. Murrett Text rendering and display using composite bitmap images
CN102081594B (zh) * 2009-11-27 2014-02-05 株式会社理光 从可移植电子文档中提取字符外接矩形的设备和方法
JP5361697B2 (ja) * 2009-12-21 2013-12-04 キヤノン株式会社 表示制御装置および表示制御方法
US20110161842A1 (en) * 2009-12-31 2011-06-30 Tim Prebble Systems and methods for the rendering of printable data
US8499236B1 (en) 2010-01-21 2013-07-30 Amazon Technologies, Inc. Systems and methods for presenting reflowable content on a display
US20110214088A1 (en) * 2010-02-26 2011-09-01 Research In Motion Limited Automatic scrolling of electronic messages
EP2367118A1 (de) * 2010-03-15 2011-09-21 GMC Software AG Verfahren und Anordnungen zur Erzeugung zweidimensionale visuale Objekte
KR101556821B1 (ko) * 2010-04-13 2015-10-01 지이 비디오 컴프레션, 엘엘씨 샘플 배열 멀티트리 세부분할에서 계승
PT3703377T (pt) 2010-04-13 2022-01-28 Ge Video Compression Llc Codificação de vídeo utilizando subdivisões multi-árvore de imagens
PT2559246T (pt) 2010-04-13 2016-09-14 Ge Video Compression Llc Regiões de fusão de amostras
EP2381397A1 (de) * 2010-04-26 2011-10-26 Siemens Aktiengesellschaft Elektronische Arbeitsanweisung für den ISA-95-Standard
US20110276872A1 (en) * 2010-05-06 2011-11-10 Xerox Corporation Dynamic font replacement
US9652440B2 (en) 2010-05-27 2017-05-16 Microsoft Technology Licensing, Llc Concurrent utilization of a document by multiple threads
US8555161B2 (en) 2010-05-27 2013-10-08 Microsoft Corporation Concurrent editing of a document by multiple clients
US20110295879A1 (en) * 2010-05-27 2011-12-01 Neuone, Llc Systems and methods for document management
US9538493B2 (en) 2010-08-23 2017-01-03 Finetrak, Llc Locating a mobile station and applications therefor
US9495322B1 (en) 2010-09-21 2016-11-15 Amazon Technologies, Inc. Cover display
CN101976169B (zh) * 2010-10-22 2012-11-21 鸿富锦精密工业(深圳)有限公司 电子阅读装置及其翻页的方法
US10073820B2 (en) * 2010-12-31 2018-09-11 Thomson Reuters Global Resources Unlimited Company Systems, methods, and interfaces for pagination and display on an access device
US10007402B2 (en) * 2011-03-09 2018-06-26 Apple Inc. System and method for displaying content
US20130007602A1 (en) 2011-06-29 2013-01-03 Apple Inc. Fixed layout electronic publications
CN102289511B (zh) * 2011-08-31 2013-04-03 深圳市茁壮网络股份有限公司 一种字库文件下载方法、用户端及服务器
US8884970B2 (en) 2011-09-09 2014-11-11 Microsoft Corporation Aligning script animations with display refresh
US9471547B1 (en) * 2011-09-23 2016-10-18 Amazon Technologies, Inc. Navigating supplemental information for a digital work
US9613003B1 (en) 2011-09-23 2017-04-04 Amazon Technologies, Inc. Identifying topics in a digital work
US9449526B1 (en) 2011-09-23 2016-09-20 Amazon Technologies, Inc. Generating a game related to a digital work
US9639518B1 (en) 2011-09-23 2017-05-02 Amazon Technologies, Inc. Identifying entities in a digital work
US9158741B1 (en) 2011-10-28 2015-10-13 Amazon Technologies, Inc. Indicators for navigating digital works
US8855375B2 (en) 2012-01-12 2014-10-07 Kofax, Inc. Systems and methods for mobile image capture and processing
US9058580B1 (en) 2012-01-12 2015-06-16 Kofax, Inc. Systems and methods for identification document processing and business workflow integration
US9058515B1 (en) 2012-01-12 2015-06-16 Kofax, Inc. Systems and methods for identification document processing and business workflow integration
US9483794B2 (en) 2012-01-12 2016-11-01 Kofax, Inc. Systems and methods for identification document processing and business workflow integration
US10146795B2 (en) 2012-01-12 2018-12-04 Kofax, Inc. Systems and methods for mobile image capture and processing
CN103488616B (zh) * 2012-06-11 2016-04-06 北大方正集团有限公司 一种内嵌字体处理方法与装置
US9135602B2 (en) 2012-07-25 2015-09-15 E-Plan, Inc. Management of building plan documents utilizing comments and a correction list
WO2014081049A1 (ko) * 2012-11-20 2014-05-30 모글루(주) 전자문서 리더 및 그 제어 방법
CN105976830B (zh) 2013-01-11 2019-09-20 华为技术有限公司 音频信号编码和解码方法、音频信号编码和解码装置
WO2014107809A1 (en) * 2013-01-11 2014-07-17 La Presse, Ltée Device, method and system for displaying digital editions
US9355312B2 (en) 2013-03-13 2016-05-31 Kofax, Inc. Systems and methods for classifying objects in digital images captured using mobile devices
WO2014160426A1 (en) 2013-03-13 2014-10-02 Kofax, Inc. Classifying objects in digital images captured using mobile devices
US9208536B2 (en) 2013-09-27 2015-12-08 Kofax, Inc. Systems and methods for three dimensional geometric reconstruction of captured image data
US20140316841A1 (en) 2013-04-23 2014-10-23 Kofax, Inc. Location-based workflows and services
DE202014011407U1 (de) 2013-05-03 2020-04-20 Kofax, Inc. Systeme zum Erkennen und Klassifizieren von Objekten in durch Mobilgeräte aufgenommenen Videos
US9547628B2 (en) * 2013-10-31 2017-01-17 Adobe Systems Incorporated Method and apparatus for improving text legibility by automatically adjusting zoom level based on preferred font characteristics including height, weight, and condensation
JP2016538783A (ja) 2013-11-15 2016-12-08 コファックス, インコーポレイテッド モバイル映像データを用いて長尺文書の合成画像を生成するためのシステムおよび方法
JP5974024B2 (ja) * 2014-01-18 2016-08-23 株式会社モリサワ フォント配信システム、及びフォント配信方法
US10536523B2 (en) * 2014-05-11 2020-01-14 Microsoft Technology Licensing, Llc File service using a shared file access-rest interface
US9760788B2 (en) 2014-10-30 2017-09-12 Kofax, Inc. Mobile document detection and orientation based on reference object characteristics
US10242285B2 (en) 2015-07-20 2019-03-26 Kofax, Inc. Iterative recognition-guided thresholding and data extraction
US9792024B2 (en) 2015-08-17 2017-10-17 E-Plan, Inc. Systems and methods for management and processing of electronic documents using video annotations
US10897490B2 (en) 2015-08-17 2021-01-19 E-Plan, Inc. Systems and methods for augmenting electronic content
US9779296B1 (en) 2016-04-01 2017-10-03 Kofax, Inc. Content-based detection and three dimensional geometric reconstruction of objects in image and video data
US10372821B2 (en) * 2017-03-17 2019-08-06 Adobe Inc. Identification of reading order text segments with a probabilistic language model
US10713519B2 (en) 2017-06-22 2020-07-14 Adobe Inc. Automated workflows for identification of reading order from text segments using probabilistic language models
US20190179499A1 (en) * 2017-10-20 2019-06-13 Qurika Inc. Systems and methods for providing a digital content reader and collection display application implementing 3d graphical user interfaces and interactions
US10803350B2 (en) 2017-11-30 2020-10-13 Kofax, Inc. Object detection and image cropping using a multi-detector approach
JP6996373B2 (ja) * 2018-03-19 2022-01-17 株式会社リコー 情報処理装置、画像形成装置、システム及びプログラム
US11087188B2 (en) * 2019-09-30 2021-08-10 Kyocera Document Solutions Inc. Smart page decoding system including linearization for viewing and printing
US11076023B1 (en) 2020-01-29 2021-07-27 Salesforce.Com, Inc. Critical path estimation for accelerated and optimal loading of web pages
CN112131183A (zh) * 2020-09-07 2020-12-25 百望股份有限公司 Ofd电子文件的线性化存取方法
US11030387B1 (en) 2020-11-16 2021-06-08 Issuu, Inc. Device dependent rendering of PDF content including multiple articles and a table of contents
US11416671B2 (en) * 2020-11-16 2022-08-16 Issuu, Inc. Device dependent rendering of PDF content
AU2021203578A1 (en) 2021-06-01 2022-12-15 Canva Pty Ltd Systems and methods for converting embedded font text data
US20240045561A1 (en) * 2022-08-04 2024-02-08 Micro Focus Llc Using mouseover to scan a graphical user interface to improve accuracy of graphical object recognition

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4603330A (en) * 1982-10-01 1986-07-29 High Technology Solutions, Inc. Font display and text editing system with character overlay feature
US4648061A (en) * 1982-11-09 1987-03-03 Machines Corporation, A Corporation Of New York Electronic document distribution network with dynamic document interchange protocol generation
US4532588A (en) * 1982-11-09 1985-07-30 International Business Machines Corporation Electronic document distribution network with uniform data stream
US4594674A (en) * 1983-02-18 1986-06-10 International Business Machines Corporation Generating and storing electronic fonts
US4754326A (en) * 1983-10-25 1988-06-28 Keycom Electronic Publishing Method and apparatus for assisting user of information retrieval systems
DE3504937C2 (de) * 1984-02-14 1994-04-14 Canon Kk Elektronische Einrichtung mit einer Druckvorrichtung
US4965558A (en) * 1987-07-15 1990-10-23 Interand Corporation Method and apparatus for image retrieval
JPH01166127A (ja) * 1987-12-23 1989-06-30 Hitachi Ltd 画像表示方式
JPH01195568A (ja) * 1988-01-29 1989-08-07 Hitachi Ltd 電子化文書編集制御方式
JP2783558B2 (ja) * 1988-09-30 1998-08-06 株式会社東芝 要約生成方法および要約生成装置
US5408655A (en) * 1989-02-27 1995-04-18 Apple Computer, Inc. User interface system and method for traversing a database
EP0387462B1 (de) * 1989-03-14 1996-05-08 International Business Machines Corporation Elektronisches System zum Genehmigen von Dokumenten
US5146552A (en) * 1990-02-28 1992-09-08 International Business Machines Corporation Method for associating annotation with electronically published material
EP0451384B1 (de) * 1990-04-10 1997-09-24 International Business Machines Corporation Hypertextdatenverarbeitungssystem und Verfahren
CA2036859C (en) * 1990-04-30 1994-04-05 Eric M. Hesse System and method for editing a structured document to modify emphasis characteristics
US5276793A (en) * 1990-05-14 1994-01-04 International Business Machines Corporation System and method for editing a structured document to preserve the intended appearance of document elements
US5185818A (en) * 1991-06-05 1993-02-09 Adobe Systems Incorporated Method of substituting fonts and displaying characters
CA2048039A1 (en) * 1991-07-19 1993-01-20 Steven Derose Data processing system and method for generating a representation for and random access rendering of electronic documents
US5404436A (en) * 1991-11-27 1995-04-04 Digital Equipment Corporation Computer method and apparatus for converting compressed characters for display in full size
US5446891A (en) * 1992-02-26 1995-08-29 International Business Machines Corporation System for adjusting hypertext links with weighed user goals and activities
JP3210102B2 (ja) * 1992-11-17 2001-09-17 松下電器産業株式会社 電子化文書ファイリング装置及びファイリング文書検索方法
JPH06337896A (ja) * 1993-03-31 1994-12-06 Matsushita Electric Ind Co Ltd 電子書籍表示検索装置及び電子書籍表示検索方法
US5418549A (en) * 1993-06-14 1995-05-23 Motorola, Inc. Resolution compensating scroll bar valuator
CA2125608A1 (en) * 1993-06-30 1994-12-31 George M. Moore Method and system for providing substitute computer fonts
US5499330A (en) * 1993-09-17 1996-03-12 Digital Equipment Corp. Document display system for organizing and displaying documents as screen objects organized along strand paths
US5511160A (en) * 1993-09-30 1996-04-23 Hewlett-Packard Company Information retrieval device for displaying and directly refreshing the display of a document
US5623681A (en) * 1993-11-19 1997-04-22 Waverley Holdings, Inc. Method and apparatus for synchronizing, displaying and manipulating text and image documents
US5623679A (en) * 1993-11-19 1997-04-22 Waverley Holdings, Inc. System and method for creating and manipulating notes each containing multiple sub-notes, and linking the sub-notes to portions of data objects
US6006013A (en) * 1994-05-18 1999-12-21 Xerox Corporation Object optimized printing system and method
JPH0830620A (ja) * 1994-07-19 1996-02-02 Fuji Xerox Co Ltd 構造検索装置
US6181837B1 (en) * 1994-11-18 2001-01-30 The Chase Manhattan Bank, N.A. Electronic check image storage and retrieval system
US5530852A (en) * 1994-12-20 1996-06-25 Sun Microsystems, Inc. Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics
US5689585A (en) * 1995-04-28 1997-11-18 Xerox Corporation Method for aligning a text image to a transcription of the image
US5737619A (en) * 1995-10-19 1998-04-07 Judson; David Hugh World wide web browsing with content delivery over an idle connection and interstitial content display
US5572643A (en) * 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking

Also Published As

Publication number Publication date
DE69637125D1 (de) 2007-07-19
EP0870246A1 (de) 1998-10-14
US5819301A (en) 1998-10-06
WO1997012328A1 (en) 1997-04-03
CA2233023A1 (en) 1997-04-03
EP0870246A4 (de) 2004-08-18
JP2006114012A (ja) 2006-04-27
EP0870246B1 (de) 2007-06-06
JP2000500887A (ja) 2000-01-25
US5860074A (en) 1999-01-12
US6073148A (en) 2000-06-06

Similar Documents

Publication Publication Date Title
DE69637125T2 (de) Optimaler zugriff auf elektronische dokumente
DE10135445B4 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE69434434T2 (de) Verfahren und gerät um text- und bilddaten zu synchronisieren, anzeigen und manipulieren
DE69839175T2 (de) Erfassen eines Hypertexts ohne Seitenwechsel in einem Dokument mit Seitenwechsel
US5781785A (en) Method and apparatus for providing an optimized document file of multiple pages
US5737599A (en) Method and apparatus for downloading multi-page electronic documents with hint information
DE60120822T2 (de) Meta-Dokument und Verfahren zum Verwalten von Meta-Dokumenten
US7454698B2 (en) Digital document browsing system and method thereof
DE69822687T2 (de) Vorrichtung und Verfahren zur Zusammenfassung
DE60016772T2 (de) Verfahren und system für die publikation und revision von hierarchisch organisierten sätzen von statischen intranet- und internet-seiten
EP1311989B1 (de) Verfahren zur automatischen recherche
US7200810B2 (en) Digital content production system and digital content production program
US20050102610A1 (en) Visual electronic library
US20030038836A1 (en) Web map tool
JP2009510650A (ja) 動的に集約された文書のための調和構成を備えたマルチフォームデザイン
WO1998001808A1 (de) Datenbanksystem
DE10162418A1 (de) System zur Verarbeitung strukturierter Dokumente, damit sie sich zur Ablieferung über Netzwerke eignen
DE102010020829A1 (de) System und Verfahren zum Generieren von Suchtermen
US20080155394A1 (en) Variable data printing
EP0384986A2 (de) Verfahren zur Anzeige von Online-Information
WO2000054167A2 (de) Such- und navigationseinrichtung für hypertext-dokumente
EP0843266A2 (de) Dynamisches und inkrementales Aktualisieren von elektronischen Dokumenten
EP2255300A1 (de) Verfahren und vorrichtung zur seitenweisen bereitstellung eines elektronischen dokumentes als computergrafik
DE19729911A1 (de) System zur Verbesserung der Organisation von Daten einer Dokumentation
JP2001519061A (ja) データオブジェクトのタイプに基づいてドキュメントを自動フォーマットする方法

Legal Events

Date Code Title Description
8364 No opposition during term of opposition