tadata
← Retour à l'accueil

Comment fonctionnent les annotations PDF

#architecture#tools#open-source#best-practices

Vous surlignez une phrase dans une application, ouvrez le fichier dans une autre, et le surlignage a disparu, ou il est là mais impossible à modifier. Tout se joue sur un choix : les notes sont-elles écrites dans le PDF sous forme d'objets standard, ou conservées dans une base de données à part ? Cet article explique ce que prévoit la norme PDF et pourquoi c'est important.

La norme : ISO 32000

Le PDF est une norme ISO ouverte : ISO 32000-1 (PDF 1.7, 2008) et ISO 32000-2 (PDF 2.0, 2017, révisée en 2020). Un fichier PDF est un ensemble d'objets numérotés (dictionnaires, tableaux, flux) accompagné d'une table de références croisées (xref) qui indique où commence chaque objet dans le fichier. Une page est un dictionnaire ; son entrée /Annots est un tableau qui pointe vers les objets annotation.

tadata

Les types d'annotations qui comptent

Sous-typeCe que c'estEntrées clés
/Highlight (et /Underline, /StrikeOut, /Squiggly)Marquage de texte sur une zone/QuadPoints (les quadrilatères qui couvrent le texte), /C (couleur), /Contents (commentaire facultatif)
/InkTracés au stylet/InkList (un tableau de points par tracé), /BS (épaisseur)
/TextLa « note autocollante » classique/Contents (texte), /Open, /Name (icône)
/PopupLa fenêtre qui affiche le texte d'une note/Parent (l'annotation à laquelle elle appartient)
/FreeTextTexte écrit directement sur la page/DA (police et taille), /Contents
/FileAttachmentUn fichier intégré à un endroit de la page/FS (spécification de fichier avec un flux intégré : une image, une note vocale…)
/Square, /Circle, /Line, /PolygonFormesGéométrie, couleurs

Chaque annotation possède aussi un /Rect (son cadre sur la page), et généralement /M (date de modification), /T (auteur) et /NM (nom unique), ce qui permet aux lecteurs de suivre et de modifier les annotations de façon fiable.

Les flux d'apparence : pourquoi le rendu est identique partout

L'entrée la plus importante est /AP, le flux d'apparence : un petit dessin qui décrit exactement l'aspect de l'annotation. Un lecteur qui ne comprend pas parfaitement un sous-type peut tout de même dessiner son flux d'apparence. Les annotations dotées d'un /AP correct s'affichent de la même manière dans Adobe Acrobat, Aperçu sur Mac, les lecteurs des navigateurs (PDFium dans Chrome, PDF.js dans Firefox) et la plupart des lecteurs mobiles. Sans lui, chaque lecteur interprète à sa façon : d'où le fameux « mon surlignage n'a pas la même tête dans une autre appli ».

Mises à jour incrémentales : ajouter plutôt que réécrire

La norme permet de modifier un fichier en ajoutant des données à la fin plutôt qu'en le réécrivant :

tadata
  1. Fichier d'origine — objets, xref, trailer (octets inchangés)
  2. Mise à jour 1 — objets nouveaux/modifiés uniquement ; section xref, trailer ; /Prev → xref précédente
  3. Mise à jour 2 — …
Mises à jour incrémentales : les octets d'origine restent intacts, chaque enregistrement est ajouté à la fin

Chaque mise à jour ne contient que les objets nouveaux ou modifiés (une nouvelle annotation, le tableau /Annots de la page mis à jour), une petite section de références croisées et un trailer qui renvoie au précédent via /Prev. Les lecteurs partent de la fin du fichier et remontent la chaîne.

AvantagePourquoi
Sauvegardes légèresAjouter un surlignage écrit quelques objets, souvent quelques kilo-octets, pas le fichier entier
Gros fichiers sans risqueUn livre scanné de 200 Mo n'est pas réécrit à chaque note
Synchronisation facilitéeMoins d'octets à envoyer ; le contenu d'origine reste identique à l'octet près
Signatures préservéesUne signature numérique couvre une plage d'octets ; ajouter à la fin garde les signatures antérieures valides, c'est pourquoi les PDF signés sont toujours mis à jour de façon incrémentale
HistoriqueLes versions précédentes restent dans le fichier (point d'attention pour la confidentialité : un contenu « supprimé » peut subsister jusqu'à une réécriture complète)

La contrepartie : après de nombreuses mises à jour, le fichier grossit, et une réécriture complète périodique (« enregistrer sous », « optimiser ») le compacte.

Les signets aussi sont standard

La table des matières affichée dans le panneau latéral d'un lecteur est le plan du document (outline) : l'entrée /Outlines du catalogue pointe vers un arbre d'éléments reliés par /First, /Last, /Next, /Prev, /Parent, chacun doté d'un /Title et d'une destination (/Dest : page et position). Une application qui ajoute des signets en écrivant des éléments de plan les rend visibles dans tous les lecteurs.

Objets standard ou base de données à part

ApprochePortabilitéRisque
Annotations écrites dans le PDFLisibles dans tout lecteur conforme, survivent à un envoi par e-mail, une sauvegarde, un changement d'applicationIl faut les écrire correctement (/AP, /NM, xref valide)
Notes stockées dans la base de l'applicationVisibles uniquement dans cette applicationPerdues ou bloquées si vous changez d'application, d'appareil, ou si l'éditeur ferme

Pour qui lit, étudie ou relit des documents pendant des années, la première approche est la plus sûre : le fichier est l'archive.

Vérifications pratiques

  1. Annotez une page dans votre application, puis ouvrez le fichier dans Acrobat, Aperçu et un navigateur. Les notes sont-elles présentes et modifiables ?
  2. Regardez la taille du fichier après un seul surlignage : une légère hausse signale une sauvegarde incrémentale ; une taille qui double presque signale une réécriture complète.
  3. Si vous utilisez des PDF signés, vérifiez que la signature reste valide après annotation.
  4. Exportez ou copiez le fichier hors de l'application : les notes suivent-elles ?

Un mot sur memo

C'est l'approche retenue pour memo, l'application de notes PDF de waiyers (memo.waiyers.com). Notes, surlignages, tracés au stylet, images et notes vocales sont écrits dans le PDF sous forme d'annotations et de pièces jointes standard, et restent donc lisibles dans les autres lecteurs. Les fichiers restent dans le dossier Google Drive de l'utilisateur ou sur l'appareil, et chaque sauvegarde n'ajoute que ce qui a changé, environ 2 Ko par modification. memo fonctionne sur le web, l'iPhone, l'iPad et Android.

Nous utilisons des cookies analytiques pour améliorer votre expérience. Aucune donnée personnelle n'est collectée.