TK TaskKit
Outils PDF

Extraire le texte

Sors le texte lisible d'un PDF. Le fichier est parsé en local ; nous ne recevons jamais un octet.

Les fichiers restent sur ton appareil. Les PDFs sont lus, fusionnés et sauvegardés entièrement dans ton navigateur. Nous ne recevons jamais un seul octet de ton fichier.

Ce que fait cet outil

Cet extracteur sort le contenu textuel d'un PDF. Dépose un fichier, active optionnellement « préserver les sauts de ligne », et tu obtiens le texte brut à droite — chaque page introduite par un petit marqueur (--- Page N ---). Le texte peut être copié dans le presse-papier ou téléchargé comme fichier UTF-8 .txt. Le parsing se fait entièrement dans ton navigateur via pdf.js ; le PDF n'est jamais uploadé.

Quand l'utiliser

  • Chercher une phrase à travers un long rapport, contrat ou thèse sans payer pour une suite desktop.
  • Donner le corps d'un PDF à un summarizer, traducteur ou prompt LLM qui veut du texte plat.
  • Sortir l'abstract ou les références d'un papier académique pour les coller dans un gestionnaire de citations.
  • Exporter des transcripts de chat ou d'email arrivés en PDF dans un format que tes scripts peuvent grep.
  • Vérifier la couche OCR d'un document scanné — l'absence de texte reconnaissable ici veut dire que le PDF est image-only et a besoin d'OCR d'abord.

Comment ça marche

pdf.js expose une méthode getTextContent() sur chaque page qui retourne les runs de texte de la page dans l'ordre où ils apparaissent dans le content stream du document, avec la matrice de transformation de chaque run (un tableau à six éléments dont l'index 5 est la coordonnée y). Avec le toggle off, les items sont joints avec des espaces simples — rapide et cohérent, mais les newlines que le PDF original exprimait visuellement sont perdues. Avec Préserver les sauts de ligne activé, l'outil parcourt les items et insère un \n chaque fois que la coordonnée y saute de plus de ~5 pixels — une heuristique qui récupère étonnamment bien les frontières de paragraphe et de ligne sur des PDFs basés texte.

Les pages sont séparées par un marqueur littéral --- Page N --- pour que quand tu colles le résultat dans une boîte de recherche ou que tu le greps, tu puisses encore trouver la page que tu veux. L'encodage est UTF-8, ce qui veut dire que les diacritiques latins, le cyrillique, le CJK et l'arabe round-trippent tous sans mojibake.

Le worker pdf.js est embarqué comme asset same-origin émis par Vite à la build. Pas d'appel CDN tiers, pas de télémétrie et pas de copie de ton texte conservée après que l'onglet se ferme.

Notes

Pourquoi le résultat est-il vide pour certains PDFs ? Les PDFs viennent en deux saveurs : ceux avec une vraie couche texte (le genre que produisent des exporteurs comme Word, LaTeX et Chrome) et ceux qui sont des images de pages (scans, fax, certains vieux rapports). pdf.js ne peut extraire que de la première sorte. Si le panneau ne renvoie rien, ton PDF est image-only et tu as besoin d'OCR — essaie un outil comme Tesseract.js ou un pipeline OCR desktop avant de réextraire.

Pourquoi les colonnes s'entrelacent-elles parfois ? Les PDFs ne stockent pas de paragraphes ; ils stockent des runs de glyphes à des coordonnées spécifiques. Les layouts à deux colonnes peuvent avoir l'air bien à l'écran mais nous donnent des runs entrelacés parce que les items apparaissent dans l'ordre du stream, pas l'ordre visuel. L'heuristique de coordonnée y aide pour les documents en colonne unique ; pour des PDFs multi-colonnes délicats, tu peux avoir besoin de nettoyer la sortie à la main.

Les tableaux sont-ils préservés ? Les cellules passent comme du texte mais la structure de colonnes non — il n'y a pas de concept « cette cellule s'aligne avec cette cellule » dans le stream sous-jacent. Pour des données tabulaires, cherche un export CSV depuis la source si possible.

Le résultat est-il le même que « Affichage → Tout sélectionner → Copier » dans un lecteur PDF ? Proche, mais pas identique. La copie au niveau lecteur utilise la stack de gestion de texte de l'OS, qui ajoute parfois des espaces et des sauts différemment. Cet outil reste proche du stream d'items brut de pdf.js, avec une heuristique de newline optionnelle par-dessus.

Outils liés