Documents · PDF Boîte à outils
Comment un onglet de navigateur lit et réécrit un PDF sans le télécharger
· Comment ça marche
pdf confidentialité web-workers
« S'exécute dans votre navigateur » est une affirmation que vous pouvez comprendre et tester. Cet article fait suite à un PDF du sélecteur de fichiers en mémoire, via un Web Worker, et revient sous forme de téléchargement, expliquant ce que fait chaque étape et pourquoi aucun serveur n'est impliqué.
Le sélecteur de fichiers n'est pas un téléchargement — le moment de confusion lors du choix d'un fichier ressemble à son envoi
Un sélecteur de fichiers ressemble à un contrôle de téléchargement car de nombreux sites envoient immédiatement le fichier choisi. La sélection à elle seule ne nécessite pas ce transfert. Dans cette boîte à outils, le navigateur accorde à la page l'accès à l'objet File sélectionné par l'utilisateur et le contrôleur valide son type et sa taille avant de lire PDF octets dans la mémoire des onglets.
La limite est observable : le choix d'un document modifie l'état de l'interface locale, affiche son nom, sa taille et son nombre de pages, et active l'opération. Il ne publie pas le fichier sur un point de terminaison d'application. La limite PDF est 50 MB et la limite d'image est 30 MB, appliquée avant le début d'un traitement coûteux.
Du disque à la mémoire : comment l'API File transmet à la page un tableau d'octets que le JavaScript du site peut lire
Pour les fichiers PDF, `arrayBuffer()` fournit des octets et un `Uint8Array` les conserve pour les appels des travailleurs. Les lots d'images sont gérés différemment pour éviter une seconde lecture inutile : les objets Fichier bruts sont conservés jusqu'à la préparation de l'image du navigateur. Il s'agit d'opérations de mémoire dans le contexte actuel du navigateur, et non de stockage à distance ou d'historique de compte.
Le premier PDF est inspecté via un appel `info` dans le travailleur afin qu'un document volumineux ne bloque pas la peinture pendant que le nombre de pages est déterminé. L'onglet peut temporairement contenir ensemble les octets sources, l'état de l'analyseur, les ressources préparées et la sortie éventuelle. L'effacement ou la fermeture est important car le traitement local consomme toujours des ressources réelles de l'appareil.
La plupart des transformations PDF utilisent le travailleur de la boîte à outils ; L'analyse PDF et l'encodage du canevas ont une division distincte
Fusionner, diviser, extraire, supprimer, réorganiser, faire pivoter, filigraner et l'assemblage final de l'image vers PDF appelle pdf-lib via le module de travail dédié. Les messages de progression et d'annulation franchissent cette frontière tandis que le travail informatique reste à l'écart du fil d'exécution de l'interface principale. La suppression des fichiers met fin au travail du travailleur au lieu d'attendre le garbage collection.
PDF-to-image est l'exception importante. pdf.js utilise son propre travailleur pour l'analyse, mais l'encodage du canevas du navigateur doit rester sur le thread principal. Le moteur de rendu cède entre les pages afin que les contrôles et la progression puissent être repeints. Dire que chaque transformation s'exécute entièrement sur un seul travailleur serait en contradiction avec l'implémentation livrée.
L'analyse et l'écriture sont des étapes locales, mais la préparation de l'image et l'encodage du canevas peuvent s'exécuter sur le thread principal.
Le pipeline général est lu, interprété, transformé et encodé, mais chaque opération choisit sa propre machinerie concrète. Les opérations de copie de page demandent à pdf-lib de créer un nouveau document. La rotation modifie les métadonnées additives de la page. Les filigranes ajoutent des dessins. PDF-to-image restitue les pages, tandis que images-to-PDF prépare les images décodées par le navigateur avant l'assemblage des travailleurs.
Ces distinctions affectent la fidélité. La copie de pages conserve le contenu sélectionnable ; les rendre en PNG ou JPEG transforme la page en pixels et perd son calque de texte. Les images non PNG/JPEG peuvent être décodées et réencodées en tant que PNG avant l'assemblage PDF. « Local » décrit le mouvement des données, et non un algorithme de transformation universel.
Le téléchargement est un objet local : comment un Blob et une URL d'objet vous donnent un fichier qui n'a jamais existé sur aucun serveur.
Chaque opération renvoie des octets ou un ZIP que l'interface encapsule dans un Blob avec le type de média approprié. L'action de résultat appelle l'assistant partagé `downloadBlob`, qui crée le téléchargement du navigateur plutôt que de naviguer vers un fichier du serveur. L'artefact généré existait en mémoire avant que l'utilisateur ne l'enregistre dans le stockage normal de l'appareil.
Les miniatures de l'organiseur utilisent également des URL d'objets Blob, mais leur cycle de vie est explicite : les anciennes URL sont révoquées avant un nouveau chargement et toutes sont révoquées lors de la destruction ou de l'effacement. Cette distinction empêche une revendication locale de confidentialité de masquer une fuite de mémoire. Une fois téléchargé, le fichier suit les règles ordinaires de sauvegarde et de partage des appareils.
Pourquoi la limite est la mémoire de votre appareil : l'original, la structure analysée et la copie réécrite vivent tous dans la RAM en même temps
Le travail local est limité par les politiques de RAM et de navigateur ainsi que par des limites de saisie explicites. Un PDF peut exister simultanément en tant qu'octets source, modèle objet analysé, tampons de travail transférés, aperçus et sortie sérialisée. Les pages raster ajoutent de grandes toiles, de sorte que le moteur de rendu mesure un budget de pixels et peut réduire l'échelle avant l'allocation.
Un téléphone peut avoir des difficultés plus tôt qu'un ordinateur de bureau, même en dessous de 50 MB, car la taille du fichier compressé en dit peu sur les images de page décodées. Fermez les onglets sans rapport, traitez moins de pages ou utilisez un appareil plus grand pour les tâches exigeantes. Le capuchon rigide reste 50 MB par PDF et 30 MB par image ; la mémoire n’est pas une excuse pour prétendre qu’il n’y a pas de limite fixe.
D'autres produits ToolAcre peuvent utiliser le réseau ; les analyses de production consenties sont également distinctes
Le référentiel indique que deux autres produits ToolAcre contactent le réseau de par leur conception, le comportement local doit donc être vérifié par produit plutôt que généralisé à l'ensemble du site. Le code d'opération PDF n'a aucun point final contenant des documents, et un test d'isolement automatisé vérifie cet invariant pendant le traitement.
Les analyses à l'échelle du site ne peuvent être exécutées que sur l'hôte de production canonique après consentement. Sa liste verte d'événements ToolAcre exclut les noms de fichiers, le contenu, le texte collé, les URL et la taille exacte des fichiers, tandis que les scripts Google restent du code tiers décrit par la politique de confidentialité. Les demandes d’actifs statiques ou d’analyse sont distinctes du téléchargement de documents.
À retenir : chaque étape se déroule sur votre appareil, et la page de la boîte à outils PDF et le panneau Réseau vous permettent de le confirmer
Le cycle de vie complet est visible : choisissez un fichier, validez-le et lisez-le, transformez-le localement avec le chemin de travail ou de rendu approprié, enveloppez la sortie dans un Blob, téléchargez-le, puis effacez les tampons et les URL des objets. Aucun serveur d'applications n'est requis pour effectuer ces opérations de page.
Traitez « dans le navigateur » comme une architecture que vous pouvez inspecter plutôt que comme un slogan. Surveillez les requêtes, lisez la note spécifique à l'opération et utilisez Effacer les fichiers et libérer de la mémoire lorsque vous avez terminé. Ce contrôle libère les images de l'organiseur, supprime les références et met fin au travail, réduisant ainsi à la fois la pression de la mémoire et la durée de vie des documents sensibles dans l'onglet. Téléchargez d'abord, vérifiez le fichier enregistré, puis effacez-le seulement ; le traitement local ne fournit intentionnellement aucune solution de secours à distance pour un résultat rejeté trop tôt.