Aller au contenu
PDFLove

comment fonctionne la fusion de pdf

Comment fonctionne vraiment la fusion de deux PDF

Les deux fichiers ont un objet numéroté 1. Cette seule collision est toute la raison pour laquelle fusionner est plus que concaténer, et elle explique tout ce qui survit à l'opération et tout ce qui n'y survit pas.

01

Pourquoi on ne peut pas simplement coller un fichier après l'autre

Un PDF est un ensemble d'objets numérotés plus un index indiquant où chacun commence. Les deux fichiers numérotent leurs objets à partir de 1. Les deux ont un catalogue, un arbre de pages et un dictionnaire de polices appelé F1. Concaténez les octets et vous obtenez deux index concurrents décrivant deux objets 1 concurrents, et le lecteur qui ouvrira cela verra celui qu'il trouve en dernier — c'est-à-dire uniquement le second document.

La fusion doit donc réécrire. Chaque objet du second fichier est copié dans le premier avec un numéro neuf, et chaque référence à l'intérieur de ces objets est réécrite pour pointer vers les nouveaux numéros. Une page qui disait « mon contenu est dans l'objet 12 » dit désormais « mon contenu est dans l'objet 847 ».

Ensuite les deux arbres de pages sont greffés en un seul, une nouvelle table de références croisées est construite avec les décalages corrects pour tout, et un nouveau trailer est écrit qui pointe vers le catalogue survivant.

1. Analyser les deux
Lire les graphes d'objets et les arbres de pages. Rien n'est rendu.
2. Renuméroter et copier
Chaque objet du fichier B reçoit un identifiant neuf, et chaque référence vers lui est réécrite.
3. Greffer les arbres de pages
Construire un seul arbre, dans l'ordre que vous avez demandé. Les pages elles-mêmes ne sont pas touchées.
4. Reconstruire l'index
De nouveaux décalages pour chaque objet, un nouveau trailer, un nouveau fichier.

02

Pourquoi fusionner ne coûte jamais de qualité

Rien n'est décodé. Les flux d'images sont copiés octet par octet, encore dans l'encodage dans lequel ils sont arrivés. Les flux de contenu sont copiés inchangés. Les polices sont copiées inchangées.

C'est là toute la raison pour laquelle la fusion est sans perte et rapide. Fusionner 500 pages est un exercice de comptabilité portant sur quelques centaines de milliers de références entre objets, et une machine moderne le fait en une seconde ou deux. Comparez à la compression, qui doit décoder et réencoder chaque image du fichier.

Cela signifie aussi qu'un fichier fusionné est exactement aussi bon et aussi mauvais que ses entrées. Fusionner un scan flou avec un export net donne un document flou sur la moitié. Rien ne se normalise.

03

Ce qu'il faut réparer en chemin

Renuméroter des objets est mécanique. Tout ce qui référençait ces objets par nom plutôt que par numéro ne l'est pas.

Signets et sommaire
L'arbre des signets pointe vers des objets page. Il faut le reconstruire et le repointer, sinon les signets du second document atterrissent sur les pages du premier — ou disparaissent.
Liens internes
Les renvois et les sauts du sommaire sont des destinations qui pointent vers des objets page, et ils demandent le même remappage que les signets.
Champs de formulaire
Les champs sont adressés par nom. Fusionnez deux exemplaires du même formulaire et vous vous retrouvez avec deux champs nommés `nom`, que la plupart des lecteurs traitent comme un seul champ en remplissant les deux. Aplatir avant l'évite.
Ressources dupliquées
Les deux fichiers embarquent Helvetica en sous-ensemble sous des noms internes différents. Rien ne peut prouver que les sous-ensembles sont interchangeables, alors les deux voyagent — et c'est pourquoi un fichier fusionné pèse parfois plus que la somme de ses parties.

04

Le chiffrement doit sortir en premier

Dans un PDF chiffré, les flux et les chaînes sont chiffrés individuellement, avec une clé par objet dérivée de la clé de chiffrement du fichier combinée au numéro et à la génération de cet objet. Le numéro de l'objet fait partie de la clé.

Ce qui veut dire que renuméroter un objet chiffré l'invalide en silence. Pour fusionner, l'outil doit d'abord déchiffrer avec la clé du fichier, copier les objets en clair, les renuméroter et chiffrer le résultat sous une clé neuve si la sortie doit être protégée. C'est pourquoi un outil de fusion demande le mot de passe au lieu de le contourner, et pourquoi la sortie ressort non chiffrée à moins que vous ne la reprotégiez ensuite.

05

Diviser, c'est la même opération à l'envers

Diviser construit un fichier neuf contenant seulement les pages que vous avez demandées, plus chaque objet que ces pages atteignent : leurs flux de contenu, leurs polices, leurs images, et rien d'autre. C'est un parcours de graphe à partir d'un ensemble de racines.

C'est pourquoi couper en deux un document de 100 pages donne rarement deux fichiers de moitié moins gros. Si une police ou un logo sert sur des pages éparpillées dans le document, les deux moitiés ont besoin de leur propre copie. Les ressources partagées sont dupliquées, pas divisées.

Questions

Questions liées

Fusionner des PDF réduit-il la qualité ?

Non. Rien n'est décodé ni réencodé — les flux d'images et de contenu sont copiés octet par octet. Les pages fusionnées sont identiques bit pour bit aux originales.

Pourquoi mes signets ont-ils disparu après la fusion ?

Parce que l'arbre des signets pointe vers des objets page qui ont été renumérotés, et le repointer est une étape distincte de la copie des pages. Une fusion qui saute cette étape jette le sommaire ou le laisse pointé vers les mauvaises pages.

Puis-je fusionner un PDF protégé par mot de passe ?

Seulement en fournissant le mot de passe. Les objets chiffrés sont clés en partie par leur propre numéro, donc ils ne peuvent pas être renumérotés tant qu'ils sont chiffrés. Déverrouillez, fusionnez et reprotégez le résultat s'il doit rester fermé.

Pourquoi fusionner est-il tellement plus rapide que compresser ?

Parce que fusionner relève de la comptabilité et compresser du traitement d'image. Une fusion réécrit des numéros d'objet et des références ; une passe de compression décode, rééchantillonne et réencode chaque image de chaque page.