Aller au contenu

Extraire du contenu textuel avec NextPDF Connect (Pro)

Extrais le texte d’un PDF existant pour l’indexation, l’analyse ou un traitement en aval. L’outil est extract_text. Il est sondé via le fournisseur d’outils Pro, qui enregistre new ExtractTextTool() sous le nom de protocole extract_text. extract_text est un outil de la formule Pro. Le serveur le sonde avec class_exists() au démarrage et ne l’enregistre que lorsque le paquet Pro est installé. Il prend en charge une sortie en texte brut, une plage de pages et une sortie structurée segmentée par page.

Fenêtre de terminal
composer require nextpdf/server
composer require nextpdf/pro

Associe un transport. Vérifie la présence de l’outil avec diagnostic.capabilities avant d’en dépendre.

L’extraction lit les opérateurs d’affichage de texte du flux de contenu dans l’ordre du flux (ISO 32000-2 §9.4). La sortie reflète l’ordre de lecture encodé (ISO 32000-2 §9.10). Un PDF numérisé sans couche de texte ne produit que peu, voire pas, de texte. C’est une propriété de la source, pas un défaut de l’outil. format: "plain" renvoie une seule chaîne. format: "structured" renvoie des objets par page accompagnés du nombre de caractères. page_range limite les pages traitées.

OutilFormuleRôleNiveau de risque
extract_textProExtraire du texte (brut / structuré / plage)Sûr
parse_pdfCore (conditionné par l’environnement)Structure de bas niveau (nombre de pages, métadonnées)Sûr

Les noms d’outils sont les noms de protocole du registre. Le catalogue d’outils sert de référence. Les outils disponibles dépendent de la formule installée.

  1. extract_text avec source (un chemin lisible par le serveur) et format: "plain".
  2. extract_text avec page_range: "1-3" pour un sous-ensemble.
  3. extract_text avec format: "structured" pour une sortie segmentée par page.

Utilise parse_pdf (ou un appel à extract_text sans limite préalable) pour connaître le nombre de pages avant de demander une plage. Pour le RAG ou l’indexation, privilégie format: "structured" afin que chaque page soit découpée indépendamment. Pour une source chiffrée, fournis le paramètre de mot de passe. Le nombre de caractères correspond au nombre de points de code UTF-8, et non aux octets.

  • Source manquante. Un chemin erroné renvoie une erreur de fichier introuvable. Utilise des chemins absolus que le serveur peut lire.
  • PDF numérisé. L’absence de couche de texte se traduit par un texte vide ou quasi vide. Applique d’abord l’OCR à la source.
  • Page hors plage. Une plage dépassant le document est rejetée en indiquant le nombre réel de pages.
  • Source chiffrée. Fournis le paramètre de mot de passe.
  • Pro absent. Avec Core seul, extract_text n’est pas enregistré. Sonde avec diagnostic.capabilities.

L’extraction évolue avec la taille du document, et le budget autorise des entrées volumineuses. Le profil est structural pour tout artefact produit, puisque cet outil renvoie du texte, pas un PDF.

Le texte extrait peut contenir des informations sensibles. Traite le résultat comme confidentiel et ne le renvoie que sur un canal de confiance. L’outil n’effectue aucune écriture sur le système de fichiers. Il ne fait que lire le chemin source avec les privilèges du serveur ; restreins donc les chemins qu’un appelant peut transmettre.

ÉnoncéNormeClausereference_id
Le texte est affiché par les opérateurs de texte dans l’ordre du flux.ISO 32000-2§9.4
L’extraction reflète l’ordre de lecture encodé.ISO 32000-2§9.10

Cette recette n’affirme pas que le texte extrait constitue un ordre de lecture logique fidèle pour un document non balisé. L’ordre est l’ordre encodé.

extract_text est un outil de la formule Pro, enregistré uniquement lorsque le paquet Pro est résolu au démarrage du serveur.

TransportDisponibleNotes
MCP (stdio)Oui (Pro)Un texte volumineux gonfle la trame stdio.
RESTOui (Pro)Diffuse les résultats volumineux en flux lorsque cela est pris en charge.
gRPCOui (Pro)Les limites de taille des messages s’appliquent aux textes volumineux.

extract_text est Sûr (en lecture seule, sans effet de bord) et ne déclenche jamais de validation.

L’extraction en lecture seule ne déclenche jamais de validation :

{ "allowed": true }