write_object_streams.json
Le fichier JSON de l'exemple « Réduire la taille du fichier ». Le même document écrit deux fois, en clair puis rangé, avec ce que pèse chacun et ce que le rangement a fait gagner.
Ce fichier est une requête : une application l'envoie par le réseau au serveur, qui crée le PDF et le renvoie. Il donne la même page que les versions Rust et Python de cet exemple. Une requête nomme chaque fichier qu'elle emploie, jamais le contenu de ces fichiers ; l'appel porte la requête et les fichiers ensemble. Une police que le serveur détient déjà, comme DejaVuSans, se nomme sans rien y joindre. Envoyez la requête à l'adresse que donne la page de l'API.
Cette demande écrit en toutes lettres les trois poids que la bibliothèque compte toute seule : ce que pèse le document en clair, ce que pèse le document rangé, et l'écart entre les deux. La bibliothèque les lit sur les deux fichiers qu'elle vient d'écrire, donc ils suivent tout ce qui entre dans un document ; ici ils sont tapés à la main, et il faudrait les retaper.
À quoi sert cet exemple
Ce que pèse un PDF se voit lorsqu'il part vers deux mille personnes, qu'il est encore conservé dans des dizaines d'années, ou qu'il s'ouvre sur une liaison téléphonique au fond d'un champ. Un document dépense une large part de lui-même en écritures — où commence chaque page, quelle police va où, quelle zone est cliquable — et chacun de leurs caractères est écrit en clair.
Ce que montre cet exemple
- Les mêmes vingt-quatre pages pesées à plat, puis pesées une fois tassées.
- Pas une marque de différence entre les deux, sur aucune page.
- Le tassement reste désactivé tant que vous ne le demandez pas, et ne s'active jamais en douce.