Licences
pdfgym est assemblé à partir de bibliothèques open source et envoie leur code à ton navigateur pour faire le travail. La plupart sont sous licence permissive. Deux sont copyleft, et chacune vit sur exactement une route. Ci-dessous, chaque bibliothèque est regroupée par tâche, avec sa licence et où la lire.
Lire et écrire
Les deux moitiés de chaque opération. Le lecteur est aussi le vérificateur : il rouvre chaque résultat et rapporte ce qui a vraiment atteint la page.
| Bibliothèque | Rôle ici | Licence | Source |
|---|---|---|---|
| pdf.js | Rôle iciLit et rend les PDF, et vérifie chaque résultat. | LicenceApache-2.0 | SourceTexte intégral |
| @cantoo/pdf-lib | Rôle iciÉcrit les PDF. | LicenceMIT | SourceTexte intégral |
Images et polices
Tout ce qui compose une page PDF à part le texte : l'encodeur JPEG, les décodeurs cachés dans pdf.js, le support TIFF, et le coupeur de polices qui garde les polices embarquées petites.
| Bibliothèque | Rôle ici | Licence | Source |
|---|---|---|---|
| @jsquash/jpeg | Rôle iciFait tourner l'encodeur JPEG dans le navigateur. | LicenceApache-2.0 | SourceTexte intégral |
| mozjpeg, libjpeg-turbo | Rôle iciL'encodeur JPEG lui-même. | LicenceTrois licences de style BSD, IJG incluse | SourceTexte intégral |
| harfbuzzjs | Rôle iciRéduit les polices embarquées aux glyphes qu'un document dessine. | LicenceMIT | SourceTexte intégral |
| UTIF.js | Rôle iciDécode les fichiers TIFF standard et multipages. | LicenceMIT | SourceTexte intégral |
| pako | Rôle iciDécompresse les données d'image TIFF compressées pour UTIF.js. | LicenceMIT et Zlib | SourceTexte intégral |
| OpenJPEG | Rôle iciDécode les images JPEG 2000 dans pdf.js. | LicenceBSD-2-Clause | SourceTexte intégral |
| JBIG2, from PDFium | Rôle iciDécode les images JBIG2 dans pdf.js. | LicenceBSD, The PDFium Authors | SourceTexte intégral |
| qcms | Rôle iciApplique les profils de couleur ICC dans pdf.js. | LicenceMIT, Mozilla | SourceTexte intégral |
Suggérer du texte privé
Les outils de confidentialité suggèrent ce qui pourrait être une information personnelle. Le modèle et son exécuteur sont tous deux livrés au navigateur ; les suggestions ne le quittent jamais.
| Bibliothèque | Rôle ici | Licence | Source |
|---|---|---|---|
| Google BERT Mini | Rôle iciModèle de base à quatre couches pour les suggestions d'informations privées. | LicenceApache-2.0 | SourceRelevé de source |
| ONNX Runtime Web 1.29.0 | Rôle iciFait tourner ce détecteur dans un worker de navigateur. | LicenceMIT | SourceTexte intégral |
Deux invités avec un règlement
Deux moteurs PDF bien connus, MuPDF et Ghostscript, sont sous AGPL v3. Faire tourner l'un d'eux derrière un service web oblige l'opérateur à publier tout le service sous les mêmes conditions.
pdfgym n'utilise ni l'un ni l'autre.
Les deux composants copyleft qu'il embarque restent chacun sur une seule route.
Le décodeur HEIC n'est récupéré qu'une fois qu'une photo HEIC ou HEIF est choisie sur HEIC en PDF. Le moteur de plaques du Contrôle prépresse n'est appelé que depuis Contrôle prépresse et tourne dans son propre worker.
Aucun autre outil n'importe ni ne lie l'un ou l'autre.
| Bibliothèque | Rôle ici | Licence | Source |
|---|---|---|---|
| @discourse/heic | Rôle iciCharge le décodeur HEIC uniquement sur la route HEIC en PDF. | LicenceApache-2.0 | SourceTexte intégral |
| libheif 1.19.7 | Rôle iciLit le conteneur HEIC dans le décodeur limité à sa route. | LicenceLGPL-3.0-or-later | SourceSource exacte |
| libde265 1.0.15 | Rôle iciDécode l'image HEVC dans le décodeur limité à sa route. | LicenceLGPL-3.0-or-later | SourceSource exacte |
| Poppler 26.02.0 | Rôle iciRend les plaques de séparation pour le Contrôle prépresse, dans son propre worker. | LicenceGPL-2.0-or-later | SourceTexte intégral |
| OpenJPEG 2.5.3 | Rôle iciDécode les images JPEG 2000 dans ce même worker. | LicenceBSD-2-Clause | SourceTexte intégral |
Les deux utilisent le code amont publié sans changements.
La compilation du Contrôle prépresse peut être refaite depuis des sources publiées : le relevé de source nomme les archives exactes de Poppler et OpenJPEG avec leurs sommes SHA-256, l'image Emscripten par digest, ainsi que l'adaptateur et le script de compilation qui ont produit le WebAssembly.
Questions fréquentes
- Puis-je réutiliser ce code dans mon propre projet ?
- Chaque bibliothèque garde sa propre licence, listée ci-dessus avec son texte intégral. Les licences permissives (MIT, BSD, Apache-2.0) permettent la réutilisation avec attribution ; le décodeur LGPL et le moteur de plaques GPL portent les devoirs copyleft décrits dans leurs textes.
- Pourquoi les parties copyleft sont-elles cantonnées à une seule route ?
- Pour que leurs devoirs restent petits et vérifiables. Le décodeur HEIC ne se charge que là où des photos HEIC sont lues, et le worker Poppler ne répond qu'au Contrôle prépresse. Rien d'autre n'importe ni ne lie l'un ou l'autre.
- Les bibliothèques ont-elles été modifiées ?
- Non. Tout est livré tel que publié en amont : les numéros de version et les relevés de source ci-dessus sont donc exacts. Les corrections de la communauté arrivent avec la mise à jour suivante au lieu de vivre dans un fork privé.
- Où est le code propre du site ?
- Les outils qui relient ces bibliothèques — l'espace de travail, les vérifications, les pages — sont le travail propre du projet. Les bibliothèques font le gros du travail selon les conditions ci-dessus ; la vérification qui refuse un mauvais téléchargement est la nôtre.
Où aller ensuite
- Tous les outils PDF en ligne Retrouve tous les outils PDF du site sur une seule page, regroupés par tâche. Tous gratuits, tous dans ton navigateur, et ton fichier n'est jamais envoyé.
- À propos Pourquoi pdfgym existe, ce qu'il refuse de faire, et qui répond aux e-mails.
- Comment ça marche Comprends ce qui tourne dans l'onglet du navigateur, ce qu'il vérifie et ce qu'il n'envoie jamais.
- Confidentialité Sache exactement ce qui quitte le navigateur et ce qui ne le quitte jamais.