PDF-INSPECTOR : parser des PDF localement, jusque dans le navigateur

https://github.com/firecrawl/pdf-inspector

📌 PDF-INSPECTOR est une bibliothèque Rust open source qui classe les PDF, extrait leur texte et les convertit en Markdown, avec des bindings Python, Node.js et WebAssembly pour l’exécuter côté navigateur.

Tous les PDF ne se traitent pas de la même manière. Certains contiennent du texte exploitable, d’autres sont des scans, des images ou un mélange des deux. Avant de lancer de l’OCR sur chaque document, pdf-inspector peut déterminer le type du fichier et orienter uniquement les pages qui en ont besoin vers un traitement plus lourd.

Le moteur analyse les flux de contenu du PDF, détecte les opérateurs texte et image, puis renvoie une classification avec un score de confiance. Pour un document textuel, il extrait le contenu en tenant compte des coordonnées, des polices, des colonnes et de l’ordre de lecture. La sortie Markdown peut conserver les titres, listes, blocs de code, tableaux, liens et sauts de page.

Les points qui ressortent :

  • 🔎 Distinguer les PDF textuels, scannés, image-based ou mixtes
  • ⚡ Classer rapidement un document avant de décider s’il faut de l’OCR
  • 📝 Extraire le texte avec coordonnées et ordre de lecture multi-colonnes
  • 📊 Détecter et convertir certains tableaux en Markdown
  • 🌐 Exécuter le même parseur dans un navigateur ou un Web Worker via WASM
  • 🧰 Utiliser Rust, Python, Node.js, npm, PyPI ou une CLI pdf2md

La version WebAssembly est le point qui change vraiment le déploiement. Le fichier PDF peut être chargé dans le navigateur, passé au parseur local et converti sans aller-retour vers un serveur. Pour un outil de prévisualisation, une application documentaire ou un workflow où les fichiers sont sensibles, cela réduit à la fois la latence et la surface de transfert.

Le projet annonce un benchmark sur 200 PDF où pdf-inspector atteint 0,470 seconde pour le corpus, contre 0,750 seconde pour LiteParse et 2,569 secondes pour OpenDataLoader. Le message X de Firecrawl compare aussi un parsing de 200 pages passé de 2,8 secondes à 0,47 seconde. Ces chiffres sont ceux du projet et dépendent du corpus, du matériel et du mode de mesure. Ils ne disent pas que chaque PDF sera traité en 470 millisecondes.

La vitesse ne suffit pas pour un parseur. Un échange visible sous l’annonce signale que la précision reste perfectible sur certains documents, notamment les titres, notes de bas de page, tableaux, mathématiques et paragraphes. C’est une réserve importante : pdf-inspector semble très intéressant pour le routage et les PDF textuels réguliers, mais il faut vérifier le Markdown produit avant de l’utiliser comme source fiable sans validation.

Je trouve l’idée particulièrement pertinente dans un pipeline de documents. Classer en quelques millisecondes, extraire localement les PDF qui contiennent déjà du texte et réserver l’OCR aux pages réellement scannées est une architecture plus raisonnable que de tout envoyer au même service. Le navigateur WASM ajoute un usage concret pour les applications qui veulent garder les fichiers côté client.

Pdf-inspector est distribué sous licence MIT et ne dépend ni d’un modèle ML ni d’un service externe pour son parseur. À essayer si vous construisez un outil documentaire et que vous avez besoin de savoir rapidement ce qu’il y a réellement dans un PDF.

Sources

Dépôt GitHub

Annonce et vidéo de démonstration

Publication X

Publications similaires

Laisser un commentaire