Ein Handbuch, das sagt, wie es gelesen werden möchte

Sie verschicken ein hundertseitiges Handbuch. Wer es öffnet, landet auf dem Umschlag, halb vergrößert, ohne Kapitelliste in Sicht — und nun muss jemandem gesagt werden, wohin er klicken soll. Ein PDF kann selbst sagen, wie es geöffnet werden möchte: auf dieser Seite, in dieser Größe, mit der Kapitelliste bereits seitlich aufgeklappt. Es ist ein Wunsch, kein Befehl. Desktop-Anzeigesoftware wie Adobe Acrobat Reader befolgt das meiste davon; die in einen Browser eingebaute Anzeigesoftware befolgt wenig davon, und jeder Browser zieht seine eigene Grenze. Öffnen Sie das Dokument unten in beiden, eines nach dem anderen, und der Unterschied ist in fünf Sekunden zu sehen.

Seine Seite drei druckt die ganze Liste dessen, was es verlangt, damit Sie diese Liste mit dem vergleichen können, was Ihre eigene Anzeigesoftware tatsächlich getan hat. Es bittet darum, auf dem Inhaltsverzeichnis statt auf dem Umschlag zu öffnen, damit niemand auf einer Titelseite beginnt, für die er nicht gekommen ist. Es bittet darum, das Fenster mit dem Gezeichneten statt mit dem Papier drumherum zu füllen, damit die Wörter lesbar sind, ohne etwas anzufassen. Es bittet um die Seiten zu zweit mit dem Umschlag für sich, so wie ein Buch aufklappt. Und es sagt, was der Druckdialog anbieten soll — welche Seiten, beidseitig, wie viele Exemplare —, damit niemand, der es druckt, jedes Mal dieselben vier Einstellungen vornehmen muss. Bei einem Handbuch, einem Katalog oder einer Preisliste, die sich für alle gleich öffnen muss, ist das der Unterschied zwischen einer Datei und einem Dokument.

Was dieses Beispiel zeigt

  • Die Seite, mit der es sich öffnet, wie viel des Fensters sie füllt, und die Kapitelliste daneben.
  • Jeweils zwei Seiten, mit dem Umschlag für sich.
  • Ein Druckdialog, der bereits ausgefüllt erscheint, und die ganze Liste auf Seite drei gedruckt, um sie damit abzugleichen.

Der Quellcode, vollständig

Nichts ist weggelassen und nichts vereinfacht: Das ist das Programm genau so, wie es läuft, für den Entwickler, der diese Bibliothek nutzt. Die dritte ist die Beschreibung selbst: eine schlichte Liste dessen, was die Seite sagen muss, und das wird dem Dienst gesendet.

Den Rust-Quellcode lesen Den Python-Quellcode lesen Den JSON-Quellcode lesen

Das Dokument selbst

Das Dokument auf Englisch öffnen Das Dokument auf Französisch öffnen Das Dokument auf Deutsch öffnen Das Dokument auf Spanisch öffnen Das Dokument auf Italienisch öffnen Das Dokument auf Portugiesisch öffnen

Ein Handbuch, das sagt, wie es gelesen werden möchte, erste Seite

Optimiert wiegt dieses Dokument 19.3 kB — mindestens 80 % leichter, als die meisten PDF-Generatoren es schreiben würden

Das Dokument ist leichter als vorher, und jede Seite sieht noch genau gleich aus. Die Zeile dieses Dokuments in der Tabelle aller Beispiele ansehen.

Beispiele in der Nähe

Eine Diashow, die von selbst läuft

Eine schlichte erste Folie und dreizehn weitere, von denen jede den Effekt angibt, mit dem sie erscheint — die zwölf, die die PDF-Norm (ISO 32000) definiert —, wie lange dieser Effekt dauert und wie lange die Folie stehen bleibt, bevor die nächste kommt. Die Datei bittet darum, im Vollbild geöffnet zu werden, denn dort laufen die Effekte, und ein Link auf der ersten Folie zeigt den Bildschirm wieder, mit einer Überblendung eingeblendet.

Interne und externe Links

Ein Dokument, gemacht, um ihm zu folgen statt es anzusehen: Jede Zeile des Inhaltsverzeichnisses landet auf der Seite, die sie nennt, und jede Seite führt dorthin zurück, woher sie kam. Unterwegs zeigt es einen über zwei Zeilen verteilten Link, die fünf Rahmen, die ein Link zeichnen kann, und acht Arten, die Seite zu zeigen, auf der ein Link landet.

Links und Markierungen auf platziertem Text

Links und Markierungen, an Text gehängt, den die Engine bereits platziert hat: ein Band hinter einer Zeile, eine Unterstreichung, eine umrahmte Zelle — jedes Rechteck aus dem genommen, was Layout und Tabelle danach melden, nichts davon von Hand gemessen.

Eigene Seitenbeschriftungen

Vierzehn Seiten, nach ihren Beschriftungen statt ihrer Position nummeriert: kleine und große römische Ziffern, gewöhnliche Ziffern, Buchstaben, ein Präfix vor Ziffern oder Buchstaben und eine Rückseite, die nur mit dem Präfix beschriftet ist.

Eine Geschichte, die weiter hinten fortgesetzt wird

Zwei Artikel über zwei Seiten: Jeder beginnt in einer Spalte der Titelseite und geht in einer Spalte der zweiten weiter, und die beiden tauschen unterwegs die Seiten. Die Datei sagt, welche Spalte auf welche folgt, sodass die Anzeigesoftware mit dem Artikel fortfährt, bei dem der Leser ist.

Ein Register, dessen Seiten sagen, woher sie stammen

Zwei Sitzungen in einer Datei gebunden. Jede Seite trägt einen eigenen Vermerk — was sie ist, wessen Hand sie geschrieben hat, der Tag, an dem sie geschrieben wurde —, das Foto auf der zweiten Seite trägt ebenfalls einen, und jede Transkription ist an die Seite gebunden, die sie transkribiert, statt an die Datei insgesamt.

Jedes Beispiel, nach Thema