-
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 118–124 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: