Wie groß darf ein PDF im Browser sein?
Wie groß darf ein PDF sein, damit ein Browser es noch verarbeiten kann?
Speicher deine Lieblings-Tools
Leg ein kostenloses iBuildPDF-Konto an, um deine Lieblings-Tools zu behalten und jederzeit schnell wiederzufinden.
Kostenloses Konto. Die PDF-Tools selbst brauchen nie eins.
Kurze Antwort
Es gibt kein festes Limit — die Grenze ist, wie viel Arbeitsspeicher auf dem Gerät frei ist, nicht eine Zahl in der Software. Auf einem Desktop sind PDFs von einigen zehn Megabyte Alltag; eine Datei von mehreren hundert Megabyte meist nicht, und sie kann auf einem Rechner scheitern, während sie auf einem anderen durchläuft.
Was die Grenze tatsächlich setzt
Die Tools von iBuildPDF laufen in deinem Browser: Die Datei wird lokal gelesen, in JavaScript verarbeitet und wieder gespeichert, hochgeladen wird nichts. Wie PDF-Tools im Browser arbeiten erklärt den Mechanismus. Diese Bauweise hat eine direkte Folge für die Größe — die Grenze ist dein Gerät, kein Serverkontingent.
Warum die Dateigröße die falsche Zahl ist, auf die man schaut
- Die Datei auf der Platte, komprimiert.
- Dieselbe Datei einmal geöffnet. Bilder werden zum Bearbeiten entpackt, das kann ein Vielfaches der Größe auf der Platte sein.
- Die Grenze ist der Speicher deines Geräts, keine Zahl, die wir festgelegt haben — deshalb kann dieselbe Datei auf einem Laptop klappen und auf einem Handy scheitern.
Die ganze Datei liegt auf einmal im Speicher
Ein Browser liest die von dir gewählte Datei in einen ArrayBuffer: einen zusammenhängenden Block roher Bytes im Speicher. Es wird nicht von der Festplatte gestreamt und nicht Stück für Stück durch das Dokument geblättert. Ein 60-MB-PDF bedeutet 60 MB Speicher, bevor überhaupt Arbeit beginnt. Das Ergebnis wird als Blob zurückgegeben, den der Browser auf die Platte auslagern kann, der aber ebenfalls im Speicher entsteht.
Die Verarbeitung braucht eine zweite Kopie
PDF-Bearbeitung geschieht nicht an Ort und Stelle. Die Bibliothek liest die Eingabe in JavaScript-Objekte ein, ändert, was zu ändern ist, und schreibt dann ein neues Dokument in ein frisches Byte-Array. Für einen Moment existieren Eingabe, eingelesener Objektgraph und Ausgabe gleichzeitig, der Speicherhöchststand ist also eher ein Vielfaches der Dateigröße als gleich groß. Deshalb kann eine Datei, die sich in einem PDF-Betrachter problemlos öffnet, zum Verarbeiten trotzdem zu groß sein: Beim Betrachten wird eine Seite nach der anderen gerendert, beim Verarbeiten nicht.
Nicht jedes Gerät hat denselben Spielraum
Ein 64-Bit-Desktop-Browser mit mehreren freien Gigabyte verhält sich völlig anders als ein Handy. Ein 32-Bit-Browserprozess kann ohnehin nur wenig Speicher adressieren, und ein mobiles Betriebssystem beendet einen Tab, der zu schnell wächst, lieber, als ihn auslagern zu lassen. Dieselbe Datei, dasselbe Tool und dieselbe Website können auf einem Laptop gelingen und auf einem Smartphone scheitern. Keines der beiden Ergebnisse ist ein Fehler.
Canvas hat seine eigene, davon getrennte Obergrenze
Alles, was eine Seite rastert — Seite in Bild, Kompression auf Maximalstufe, Miniaturansichten —, zeichnet auf ein HTML-Canvas, und Browser erzwingen eine maximale Canvas-Größe: eine Obergrenze für Breite, Höhe und Gesamtfläche. Chromium setzt eine solche Grenze durch, und sie hat nichts damit zu tun, wie groß die Datei ist. Eine einzelne sehr große Seite — eine Bauzeichnung, ein Plakat, ein breiter Tabellenexport — kann sie schon allein überschreiten, weshalb das Rendern einer einzigen übergroßen Seite scheitern kann, während ein großes mehrseitiges Dokument anstandslos durchläuft.
Das Scheitern ist außerdem stumm. Jenseits der Grenze erzeugt das Canvas schlicht nichts: toBlob() gibt null zurück, und der Vorgang bricht ab, ohne dass ein Fehler das erklärt. iBuildPDF begrenzt den Render-Maßstab genau deshalb, um unter der Obergrenze zu bleiben — etwas Ausgabeauflösung gegen einen Vorgang getauscht, der zu Ende läuft.
Was wir tatsächlich gemessen haben
Eine Zahl aus unseren eigenen Tests gibt ein Gefühl für die Größenordnung. Ein 49,4 MB großes PDF mit 23 großen Fotos wurde in 2,9 Sekunden komprimiert, in Chromium auf dem Desktop.
Nimm das für das, was es ist. Es ist eine einzelne Datei, auf einem Rechner, aus einem Korpus, den wir selbst gebaut haben — die Dokumente waren synthetisch und so gewählt, dass sie reproduzierbar statt repräsentativ sind. Es zeigt, dass eine Datei im zweistelligen Megabyte-Bereich für einen Browser auf dem Desktop gewöhnliche Arbeit ist. Es ist kein Versprechen für deine Datei auf deinem Gerät, und ein langsamerer oder älterer Rechner braucht länger oder schafft es womöglich gar nicht.
Die Methode und die übrigen Ergebnisse sind unter dem Kompressions-Benchmark dokumentiert.
Wie es aussieht, wenn der Speicher ausgeht
Browser melden Speichermangel nicht besonders hilfreich, deshalb lohnt es sich, die Erscheinungsformen zu kennen:
- Der Tab reagiert nicht mehr. Die Seite friert ein, die Fortschrittsanzeige bleibt stehen, und der Browser bietet vielleicht an, zu schließen oder zu warten. Die Arbeit läuft womöglich noch; sie wird vielleicht auch nie fertig.
- Der Tab stürzt ab. Er lädt sich neu oder zeigt eine Absturzseite. Von deiner Originaldatei geht nichts verloren — sie wurde nur gelesen, nie verändert —, aber der Vorgang ist futsch.
- Der Vorgang scheitert ohne Begründung. Kein Fortschritt, kein Download, kein sichtbarer Fehler. Das ist der oben beschriebene Canvas-Fall oder eine Speicheranforderung, die irgendwo dazwischen still gescheitert ist.
Warum es einen Hinweis gibt und keine Obergrenze
Das Kompressions-Tool zeigt bei Dateien über 80 MB einen Hinweis. Das ist eine Warnung, keine Ablehnung: Die Datei wird trotzdem angenommen und trotzdem verarbeitet.
Das ist Absicht. Eine harte Obergrenze müsste eine Zahl sein, die gewählt wird, ohne irgendetwas über den Rechner am anderen Ende zu wissen, und sie läge in beide Richtungen daneben — sie würde Dateien ablehnen, die ein Desktop in Sekunden erledigt, und zugleich Dateien annehmen, die ein ausgelastetes Handy nicht schafft. Dir zu sagen, dass eine große Datei langsam sein kann, und dich entscheiden zu lassen, ist die ehrlichere Variante.
Was tun, wenn eine Datei zu groß ist
Wenn ein großes Dokument scheitert — oder du das lieber gar nicht erst herausfinden willst —, besteht der verlässliche Weg darin, die Aufgabe vor dem Start kleiner zu machen.
- Erst teilen, dann die Teile verarbeiten. Nimm PDF teilen, um das Dokument in Stücke zu zerlegen, oder Seiten extrahieren, um nur den benötigten Bereich herauszuholen. Vier 20-MB-Dateien nacheinander zu verarbeiten, verlangt dem Browser weit weniger ab als eine 80-MB-Datei, und du kannst die Ergebnisse danach wieder zusammenfügen.
- Verschaff dem Tab Luft. Schließ vorher andere Tabs und andere speicherhungrige Programme. Die Grenze teilen sich alle Dinge, die der Rechner gerade tut.
- Nimm für die größten Dateien einen Desktop. Bei allem im dreistelligen Megabyte-Bereich ist ein Laptop oder Desktop etwas grundlegend anderes als ein Handy.
- Bei einem Scan sind die Bilder die Größe. Ein großes PDF ist fast immer wegen eingebetteter Fotos oder gescannter Seiten groß, nicht wegen seines Textes. Wie PDF-Kompression funktioniert erklärt warum, und PDF komprimieren ist oft der Schritt, der alles Folgende bequem macht.
Ein letzter Punkt, der es wert ist, gesagt zu werden: Weil die Datei dein Gerät nie verlässt, kostet dich ein Fehlschlag hier nichts außer Zeit. Es liegt kein halber Upload auf einem Server, und deine Originaldatei auf der Platte bleibt unangetastet.
Tools, um die es in diesem Artikel geht
Quellen
Primärdokumentation zu den Aussagen oben.