Querverweistabelle
Eine Querverweistabelle ist die Karte am Ende eines PDF, die angibt, wo in der Datei jeder nummerierte Teil des Dokuments beginnt.
Ausführlicher
Die Teile eines Dokuments werden nacheinander geschrieben und dabei nummeriert, und nichts in der Datei sagt, wo Teil vierhundertzwölf beginnt, außer dieser Tabelle: eine Zeile pro Teil, die angibt, wie viele Bytes in der Datei er steht. Die allerletzte Zeile eines PDF sagt, wo die Tabelle selbst beginnt; deshalb liest eine Software, die ein Dokument öffnet, zuerst sein Ende.
So kann Seite dreihundert eines vierhundertseitigen Dokuments erscheinen, ohne dass die zweihundertneunundneunzig davor überhaupt gelesen werden. Die Anzeigesoftware schlägt die Seite in der Karte nach, springt dorthin und zeichnet sie. Seit 2003 darf die Karte selbst wie alles andere in der Datei gepackt und komprimiert werden und heißt dann Querverweisstream.
Was es an einem echten Dokument bewirkt
Ein Dokument lässt sich ergänzen, ohne neu geschrieben zu werden. Die neuen Teile werden hinter alles bereits Vorhandene geschrieben, gefolgt von einer kurzen Karte, die nur das Geänderte nennt und auf die Karte davor zurückverweist. Kein Byte des Originals verschiebt sich, und genau deshalb hält ein auf diese Bytes gelegtes Siegel weiterhin, nachdem eine Seite hinzugefügt wurde.
Ist die Karte falsch — eine unterwegs abgeschnittene Datei oder eine, die von etwas geöffnet und gespeichert wurde, das ihre Bytes nicht richtig gezählt hat —, zeigt jede ihrer Zeilen ein paar Zeichen neben die Stelle. Die Anzeigesoftware liest dann die ganze Datei von Ende zu Ende, baut die Karte selbst neu und sagt nichts darüber. Deshalb öffnet sich ein kaputtes Dokument meist trotzdem, und deshalb öffnet es sich langsam.
Woher es kommt, und warum
Die Tabelle ist so alt wie das Format, 1993 veröffentlicht. Zwei kurze Kopfzeilen eröffnen sie, und jeder Eintrag danach ist genau zwanzig Zeichen lang, mit Nullen aufgefüllt, sodass der Eintrag für einen bestimmten Teil — etwa Nummer 412 — immer 412 × 20 Zeichen nach dem ersten Eintrag steht. Ein Programm berechnet diese Stelle und liest diesen einen Eintrag, statt die vierhundertzwölf Einträge davor durchzugehen. Das zählte, weil eine Datei damals von einer rotierenden Festplatte gelesen wurde: Jeder Lesevorgang kostete ein Warten darauf, dass die Scheibe unter den Kopf kam, und direkt zur richtigen Zeile zu gehen ließ ein großes Dokument sofort öffnen.
Die Überarbeitung von 2003 erlaubte, die Karte stattdessen als komprimiertes Paket zu schreiben, zusammen mit dem Packen der übrigen Notizen des Dokuments: Beides reist zusammen, und eine Datei, die das eine packt, packt auch das andere.
An einem fertigen Dokument ansehen
Die Datei verkleinern Seite eins zeigen, bevor die Datei angekommen ist