Lizenzen

PDFGym wird mit Open-Source-Bibliotheken gebaut und schickt ihren Code zum Arbeiten in deinen Browser. Fast alle sind freizügig. Zwei sind Copyleft, und jede lebt auf genau einem Pfad. Unten: jede Bibliothek nach Arbeit gruppiert, mit Lizenz und Leseort.

Lesen und Schreiben

Die zwei Hälften jeder Operation. Die lesende Hälfte prüft auch: Sie öffnet jedes Ergebnis erneut und meldet, was wirklich auf der Seite angekommen ist.

BibliothekRolle hierLizenzQuelle
pdf.js Rolle hierLiest und rendert PDF – und prüft jedes Ergebnis. LizenzApache-2.0 QuelleVolltext
@cantoo/pdf-lib Rolle hierSchreibt PDF. LizenzMIT QuelleVolltext

Fotos und Schriften

Alles, was eine PDF-Seite außer Text formt: der JPEG-Kodierer, die Dekodierer in pdf.js, TIFF-Unterstützung und der Schriftenbeschneider, der eingebettete Schriften klein hält.

BibliothekRolle hierLizenzQuelle
@jsquash/jpeg Rolle hierLässt den JPEG-Kodierer im Browser laufen. LizenzApache-2.0 QuelleVolltext
mozjpeg, libjpeg-turbo Rolle hierDer JPEG-Kodierer selbst. LizenzDrei BSD-artige Lizenzen, IJG inklusive QuelleVolltext
harfbuzzjs Rolle hierBeschneidet eingebettete Schriften auf die Glyphen, die das Dokument zeichnet. LizenzMIT QuelleVolltext
UTIF.js Rolle hierDekodiert normale und mehrseitige TIFFs. LizenzMIT QuelleVolltext
pako Rolle hierEntpackt komprimierte TIFF-Daten für UTIF.js. LizenzMIT und Zlib QuelleVolltext
OpenJPEG Rolle hierDekodiert JPEG-2000-Bilder in pdf.js. LizenzBSD-2-Clause QuelleVolltext
JBIG2, aus PDFium Rolle hierDekodiert JBIG2-Bilder in pdf.js. LizenzBSD, die PDFium-Autoren QuelleVolltext
qcms Rolle hierWendet ICC-Farbprofile in pdf.js an. LizenzMIT, Mozilla QuelleVolltext

Private Textvorschläge

Die Privatsphäre-Werkzeuge schlagen vor, was personenbezogene Information sein könnte. Modell und Ausführender reisen in den Browser; die Vorschläge verlassen ihn nie.

BibliothekRolle hierLizenzQuelle
Google BERT Mini Rolle hierVierschichtiges Basismodell zum Vorschlagen privater Information. LizenzApache-2.0 QuelleQuellnachweis
ONNX Runtime Web 1.29.0 Rolle hierLässt diesen Detektor in einem Browser-Worker laufen. LizenzMIT QuelleVolltext

Zwei Gäste mit Hausregeln

Zwei bekannte PDF-Engines, MuPDF und Ghostscript, sind AGPL v3. Wer eine davon hinter einem Webdienst laufen lässt, muss den ganzen Dienst unter denselben Bedingungen veröffentlichen.

PDFGym nutzt keine davon.

Die zwei Copyleft-Komponenten, die es einbindet, bleiben jede auf einem Pfad.

Der HEIC-Dekodierer wird erst geladen, wenn ein HEIC- oder HEIF-Foto auf HEIC zu PDF gewählt wird. Der Preflight-Plattenrenderer antwortet nur von Druck-Preflight und läuft in seinem eigenen Worker.

Kein anderes Werkzeug importiert oder linkt eines davon.

BibliothekRolle hierLizenzQuelle
@discourse/heic Rolle hierLädt den HEIC-Dekodierer nur auf dem HEIC-zu-PDF-Pfad. LizenzApache-2.0 QuelleVolltext
libheif 1.19.7 Rolle hierLiest den HEIC-Container im Dekodierer des Pfads. LizenzLGPL-3.0-or-later QuelleExakte Quelle
libde265 1.0.15 Rolle hierDekodiert das HEVC-Bild im Dekodierer des Pfads. LizenzLGPL-3.0-or-later QuelleExakte Quelle
Poppler 26.02.0 Rolle hierRendert Separationsplatten für Preflight, im eigenen Worker. LizenzGPL-2.0-or-later QuelleVolltext
OpenJPEG 2.5.3 Rolle hierDekodiert JPEG 2000 in ebendiesem Worker. LizenzBSD-2-Clause QuelleVolltext

Beide nutzen den offiziell veröffentlichten Code, unverändert.

Der Preflight-Build lässt sich aus veröffentlichten Quellen wiederholen: Der Quellnachweis nennt die exakten Poppler- und OpenJPEG-Dateien mit ihren SHA-256, das Emscripten-Image per Digest sowie Adapter und Skript, die das WebAssembly erzeugt haben.

Häufige Fragen

Darf ich diesen Code in meinem Projekt wiederverwenden?
Jede Bibliothek behält ihre eigene Lizenz – oben jeweils mit Volltext. Die freizügigen (MIT, BSD, Apache-2.0) erlauben Wiederverwendung mit Zuschreibung; der LGPL-Dekodierer und der GPL-Renderer bringen die Copyleft-Pflichten ihrer Texte mit.
Warum lebt das Copyleft eingezäunt auf einem Pfad?
Damit seine Pflichten klein und prüfbar bleiben. Der HEIC-Dekodierer lädt nur, wo HEIC-Fotos gelesen werden, und der Poppler-Worker antwortet nur auf Preflight. Nichts sonst importiert oder linkt eines davon.
Wurden die Bibliotheken verändert?
Nein. Alles reist, wie es veröffentlicht wurde: Darum sind die Versionsnummern und Nachweise oben exakt. Reparaturen der Community kommen mit dem nächsten Update, statt in einem privaten Fork zu leben.
Wo ist der eigene Code der Seite?
Die Werkzeuge, die diese Bibliotheken verbinden (der Workspace, die Prüfungen, die Seiten), sind eigene Arbeit des Projekts. Die Bibliotheken machen die schwere Arbeit unter den Bedingungen oben; die Prüfung, die einen schlechten Download ablehnt, ist unsere.

Wohin jetzt