Zum Inhalt springen
Compress PDF
Deutsch

Eine Komprimierungs-Engine, die in Ihrem Tab läuft.

Keine Worker-Warteschlangen, keine Upload-Endpunkte, kein „Verarbeitung auf unseren Servern“-Text. Hier ist genau, was mit einem PDF zwischen Ablegen und Download passiert.

An Ihrem PDF ausprobieren

Schritt 1

Datei lesen und verstehen

Die Datei wird mit der File.arrayBuffer()-API des Browsers gelesen. Nichts wird irgendwohin geschickt; die Bytes leben im Speicher des Tabs.

PDF.js öffnet das Dokument und zählt die Seiten. Eine Handvoll über die Datei verteilter Seiten wird auf Textdichte untersucht. Enthält eine untersuchte Seite fast keine Zeichen, ist das Dokument wahrscheinlich ein Scan. Hat sie viele, ist es textbasiert. Diese Klassifizierung bestimmt, ob Bilderneukomprimierung oder Rasterisierung zuerst versucht wird.

Die Analyse erkennt auch Passwortschutz. Verschlüsselte Dateien stoppen hier mit klarer Meldung, statt beschädigten Output zu erzeugen.

Schritt 2

Drei eskalierende Durchläufe

Jeder Durchlauf ist ein kompletter Neuaufbau. Die Engine misst das Ergebnis, bevor sie entscheidet, ob der nächste, destruktivere Durchlauf nötig ist.

Durchlauf eins — strukturelle Bereinigung

pdf-lib lädt das Dokument und schreibt es mit aktivierten Objekt-Streams neu. Seiten-Miniaturbilder, verwaiste Objekte und identifizierende Metadaten werden entfernt. Schriften, Bilder und Seiteninhalt bleiben unberührt, dieser Durchlauf ist also praktisch verlustfrei.

Verlustfrei

Durchlauf zwei — Bilderneukomprimierung

Die Engine durchläuft das Ressourcenverzeichnis jeder Seite, einschließlich in Form-XObjects verschachtelter Bilder, und findet JPEG-Bild-Streams. Jeder wird mit createImageBitmap dekodiert, auf eine kleinere Größe auf eine Canvas gezeichnet und mit niedrigerer Qualität neu kodiert.

Der neue Stream ersetzt das alte Objekt an Ort und Stelle, sodass Seitenlayout, Text, Links und Vektorgrafik unverändert bleiben. Bilder mit Softmasks, CMYK-Farbräumen, JPX- oder JBIG2-Komprimierung werden übersprungen, statt ein kaputtes Rendering zu riskieren.

Text beibehalten

Durchlauf drei — Rasterisierung

Wenn das Ziel noch außer Reichweite ist — oder die Quelle ein Scan ist — rendert PDF.js jede Seite auf eine Offscreen-Canvas mit 36–160 DPI. Die JPEGs werden mit pdf-lib in ein neues Dokument zusammengesetzt. Das macht Text zu Pixeln, daher läuft es zuletzt und das Ergebnispanel sagt das.

Letzter Ausweg

Schritt 3

Das beste Ergebnis suchen, das passt

Bildeinstellungen werden als Leiter sortiert nach erwartetem Ausgabegewicht durchlaufen: Skalierung zum Quadrat multipliziert mit JPEG-Qualität. Der erste Schritt, der unter Ihr Ziel misst, gewinnt. Liegt das Ergebnis deutlich unter dem Ziel, versucht die Engine einen Schritt besser für eine schärfere Datei und behält, was passt.

Die Rasterisierung nutzt eine separate Leiter von 160 DPI bis 36 DPI. Auflösung zu reduzieren ist der schnellste Weg, einen Scan zu verkleinern, daher tauscht die Leiter Auflösung und JPEG-Qualität gemeinsam, statt eine bis ins Extreme zu senken.

Die Ehrlichkeitsregel: Erfolg bedeutet outputBytes <= targetBytes, gemessen an der fertigen Datei. Passt nichts, zeigt das Werkzeug das kleinste reale Ergebnis und wie weit über dem Ziel es liegt. Es rundet nie ab, schätzt nicht und bezeichnet keine Überschreitung als Erfolg.

Schritt 4

Warum die Oberfläche nie einfriert

Web Worker

PDF-Parsing und JPEG-Kodierung laufen in einem dedizierten Worker, sodass Scrollen, Auswählen und Tippen reaktionsschnell bleiben, während eine große Datei verarbeitet wird.

OffscreenCanvas

Bildarbeit geschieht auf einer Offscreen-Canvas, die das DOM nicht berührt. Browser ohne sie fallen auf einen stückweisen Hauptthread-Pfad zurück.

Begrenzter Speicher

Seiten werden in Stapeln verarbeitet, Bitmaps nach Gebrauch geschlossen, Objekt-URLs widerrufen und große Dateien vor dem Erschöpfen des Telefonspeichers markiert.

Was es nicht kann

Grenzen, die wir lieber zugeben

  • Kein OCR. Gescannte Seiten bleiben gescannt; das Werkzeug kann ihren Text nicht durchsuchbar machen.
  • Keine Passwort-Entschlüsselung. Verschlüsselte PDFs werden erkannt und abgelehnt.
  • Keine Signatur-Erhaltung. Jede Komprimierung macht kryptografische Signaturen ungültig.
  • Keine JBIG2- oder JPX-Neukodierung. Diese Bilder werden unberührt gelassen, um Beschädigung zu vermeiden.
  • Keine garantierte Größenreduktion. Ein gut optimiertes Text-PDF schrumpft nur leicht.
  • Keine Cloud-Verarbeitung. Wenn Ihr Gerät den Speicher erschöpft, hilft kein Server.

Engine-Fragen

Tiefere Antworten dazu, wie sich der Kompressor verhält.

Warum probiert der Kompressor mehrere Einstellungen statt einer?

Weil die Beziehung zwischen Bildqualität und Dateigröße nicht linear ist und jedes PDF anders ist. Die Engine durchläuft eine Leiter von hoher Qualität bis zu aggressiver Komprimierung, speichert bei jedem Schritt ein echtes PDF, misst es und stoppt beim ersten Ergebnis, das Ihr Ziel passt. Dieses Ergebnis ist die bestaussehende Datei, die die Grenze einhält.

Warum nicht immer rasterisieren? Es erzeugt die kleinsten Dateien.

Rasterisierung macht Text zu Pixeln. Die Datei wird kleiner, aber Text kann nicht mehr ausgewählt werden, Links brechen und kleine Schrift verschwimmt. Sie wird als letzter Ausweg für Scans angeboten, und das Ergebnispanel sagt Ihnen immer, wenn sie verwendet wurde.

Unterstützt das Werkzeug passwortgeschützte PDFs?

Noch nicht. PDF.js kann eine verschlüsselte Datei mit Passwort öffnen, aber die Bibliothek, die Dokumente neu aufbaut, kann das Ergebnis nicht wieder verschlüsseln. Statt eine kaputte Datei zu erzeugen, erkennt das Werkzeug die Verschlüsselung und bittet Sie, das Passwort zuerst in einem PDF-Reader zu entfernen.

Warum ist ein textbasiertes PDF kaum geschrumpft?

Text und Vektorgrafik sind bereits kompakt. Wenn 95 % einer Datei Text und Schriften sind, gibt es wenig redundante Daten zu entfernen. Werkzeuge, die bei solchen Dateien riesige Einsparungen melden, rasterisieren meist die Seiten, weshalb dieses Werkzeug die verwendete Methode angibt.

Was ist mit digitalen Signaturen?

Jede Änderung macht eine kryptografische Signatur ungültig. Kein Komprimierungswerkzeug kann eine erhalten. Bewahren Sie das signierte Original und komprimieren Sie eine Kopie, wenn Sie eine kleinere Version versenden müssen.

Sehen Sie es an Ihrer eigenen Datei arbeiten.

PDF ablegen, Ziel wählen und das gemessene Ergebnis beobachten.

PDF komprimieren