Text2Store
Download

Blog

So druckst du eine ganze iMessage-Unterhaltung (sogar 84.000 Nachrichten)

Irgendwo jenseits von ein paar tausend Nachrichten ist „die ganze Unterhaltung drucken“ kein Häkchen in einer Funktionsliste mehr, sondern ein technisches Problem. Viele merken das auf die harte Tour: Foren sind voll von Exporten, die ewig hängen, nach Seite 500 leere Seiten liefern oder einfach abstürzen. Wir haben es auch auf die harte Tour gemerkt, also hier, was im Inneren tatsächlich passiert und was nötig war, damit sich eine Unterhaltung mit 84.000 Nachrichten drucken lässt.

Warum große Verläufe Exporter zum Scheitern bringen

Fast jedes Werkzeug, das ein schönes Transkript erzeugt, unseres eingeschlossen, lässt am Ende eine Browser-Engine die Unterhaltung setzen und in Seiten umbrechen. Druck-Engines von Browsern wurden für Webseiten gebaut, nicht für ein einziges Dokument mit Jahren an Nachrichten und Tausenden Fotos. Verlangt man von einer, das in einem Durchgang umzubrechen, gehen drei Dinge schief, in steigender Schwere: Es dauert ewig, sie gibt still leere Seiten aus, sobald der Speicher knapp wird, und schließlich geht dem Rendering-Prozess der Speicher aus und er stirbt. Ein Bericht aus der Praxis, der unsere Arbeit geprägt hat: Ein Export von 8.400 Nachrichten ergab eine PDF mit 811 Seiten, die ab Seite 583 leer war. Die Engine meldete keinen Fehler. Sie hörte einfach auf zu zeichnen.

Was funktioniert: aufteilen, prüfen, zusammenfügen

  • Aufteilen. Das Transkript rendert höchstens 1.500 Nachrichten pro Durchgang, und jeder Durchgang druckt in eine eigene Teildatei. Kein einzelner Durchgang wird je groß genug, um an die Kante zu stoßen.
  • Eine Sperre gegen leere Seiten. Jeder Teil wird nach dem Schreiben geprüft: Hat die Engine nichts gezeichnet, wird der Teil verworfen und neu versucht, und ein Teil, der sich immer noch nicht zeichnen lässt, wird halbiert und erneut versucht. Leere Ausgabe kann das fertige Dokument nicht erreichen.
  • Ein gehärtetes Zusammenfügen. Die Teile werden zu einer PDF zusammengesetzt, und die zusammengefügte Datei wird beim Schreiben gegen die Fehlerarten geprüft, auf die echte PDF-Reader achten. Jede Regel in dieser Prüfung gibt es, weil ein echter kaputter Export sie uns beigebracht hat; strenge Reader wie Acrobat lehnen Dateien ab, die nachsichtige ohne Weiteres öffnen.
  • Beschriftung statt Schein. Ein mehrteiliger Export sagt in seinen Kopfzeilen „Teil 3 von 9, Nachrichten 12.001 bis 13.500 von 84.000“. Wurde etwas ausgelassen, sagt das Dokument es.

Die Zahlen

Der Belastungstest für all das ist die Unterhaltung eines echten Nutzers mit 84.000 Nachrichten, Jahre an Texten mit Fotos überall. Sie wird zu einer einzigen, vollständigen, lesbaren PDF exportiert. Zum Maßstab: Derselbe Verlauf ergab in einer frühen Version 1,05 GB; die aktuelle Engine erzeugt ihn mit 164 MB, und eine fotolastige Unterhaltung mit 2.500 Nachrichten exportiert auf einem gewöhnlichen Desktop-Rechner in etwa 17 Sekunden.

Es wirklich ausdrucken

Ein ehrlicher Hinweis: Der Druckdialog selbst hat dieselben Grenzen eines einzigen Durchgangs wie jede Browser-Engine, deshalb leitet dich Text2Store bei sehr langen Verläufen zu Exportieren > PDF, statt den Dialog scheitern zu lassen, und du druckst aus der PDF, alles oder nur die Seiten, die du brauchst. Die Schritt-für-Schritt-Anleitung steht unter iPhone-Textnachrichten als PDF exportieren, und die kürzere Fassung dieser ganzen Seite unter iPhone-Textnachrichten drucken.

Fragen?

Schreib an hello@text2store.com. Wenn du einen Verlauf hast, der dir zu groß vorkommt, würden wir ehrlich gern davon hören.