Un fichier PDF est un ensemble d'objets (pages, polices, images, annotations) indexés par une table de références croisées (xref). Lorsque cette table est corrompue (suite à un téléchargement incomplet, un enregistrement raté ou une perte de données), le lecteur ne parvient pas à localiser les objets et signale le fichier comme illisible. Le moteur de réparation de LuraPDF utilise pdf-lib avec un analyseur syntaxique de bas niveau personnalisé qui ignore la table xref corrompue et parcourt le flux d'octets bruts, identifiant les limites des objets grâce à leurs signatures d'en-tête. À partir de ces objets, il reconstruit une table xref et une arborescence de pages valides, générant ainsi un nouveau PDF conforme.
Lorsque le flux d'objets est trop fragmenté pour permettre une reconstruction structurelle, LuraPDF utilise PDF.js en mode tolérant, qui accepte les syntaxes incorrectes et tente de générer ou d'extraire le texte des flux de contenu restants. Le mode de récupération de texte capture directement les opérateurs de texte, en contournant le rendu des glyphes lorsque les polices sont manquantes. On obtient ainsi un PDF en texte brut ou par couches de texte qui préserve le texte même en cas de perte de mise en page. Cette approche par couches – réparation de la structure, récupération des pages, puis récupération du texte – optimise la récupération pour un large éventail de types de corruption.