Eine Tabelle, die sich selbst umbricht

Eine Rechnung mit dreihundert Positionen. Eine Bestandsliste. Ein Monat Kassenbons. Nichts davon passt auf eine Seite, und nichts davon hat eine Länge, auf die man sich verlassen kann: Derselbe Bericht umfasst einen Monat vier Seiten und den nächsten elf. Trotzdem muss jemand entscheiden, wo jede Seite endet — und an dieser Entscheidung entsteht aus dem Nichts eine leere Seite, wird eine Zeile halbiert oder bleibt eine Abschnittsüberschrift allein am Fuß einer Seite stehen, ohne etwas darunter.

Hier wird die ganze Tabelle auf einmal übergeben und berechnet ihre eigenen Seiten. Die Überschrift kehrt oben auf jeder davon wieder, die Fußnote steht unter der letzten Zeile jeder davon, und ein Abschnittstitel bleibt bei den Zeilen, die er einleitet. Käme die Tabelle je an einen Punkt, an dem sie nicht weiterkann, hält sie an und sagt es, statt stillschweigend eine leere Seite hinzuzufügen — der Fehler, den niemand bemerkt, bis ein Kunde die Seiten zählt.

Was dieses Beispiel zeigt

  • Ein Aufruf, der mit dem antwortet, was auf jeder der benötigten Seiten zu zeichnen ist.
  • Kopf- und Fußnotenzeilen auf jeder Seite wiederholt.
  • Abschnittstitel bleiben bei den Zeilen darunter.

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

Beispiele in der Nähe

Über die Zeilen verbundene Zellen

Ein Datenblatt, dessen Zellen über die Zeilen verbunden sind: Jede Gruppe wird einmal neben all ihren Zeilen genannt, mit einer Notiz daneben; die dünnen Linien enden an den Kanten dieser Zellen, und eine Notiz, die für die von ihr abgedeckten Zeilen zu lang ist, lässt diese wachsen.

An ihren Zellen gemessene Spalten

Eine Teileliste zweimal: vier Spalten, die sich die Breite gleichmäßig teilen, dann Referenz, Menge und Preis jeweils so breit wie ihre eigene breiteste Zelle und die Beschreibung mit allem, was sie übrig lassen.

Bilder in Tabellenzellen

Ein Katalog, dessen erste Spalte ein Bild statt Text ist: vier Bilder sehr unterschiedlicher Größe und Proportion, jedes vollständig und unverzerrt in die Zelle eingepasst, die die Tabelle ihm gibt, und an eine andere Ecke davon gerückt, ohne Breite von seiner Spalte oder Höhe von seiner Zeile zu beanspruchen.

Jedes Beispiel, nach Thema