Zum Inhalt springen

Textinhalt mit NextPDF Connect extrahieren (Pro)

Extrahieren Sie Text aus einem vorhandenen PDF zur Indexierung, Analyse oder nachgelagerten Verarbeitung. Das Tool ist extract_text. Es wird gegen den Pro-Tool-Provider geprüft, der new ExtractTextTool() unter dem Protokollnamen extract_text registriert. extract_text ist ein Pro-Tool. Der Server prüft beim Start mit class_exists(), ob es verfügbar ist, und registriert es nur, wenn das Pro-Paket installiert ist. Es unterstützt unformatierte Ausgabe, einen Seitenbereich und seitenweise segmentierte strukturierte Ausgabe.

Terminal-Fenster
composer require nextpdf/server
composer require nextpdf/pro

Binden Sie einen Transport an. Vergewissern Sie sich mit diagnostic.capabilities, dass das Tool verfügbar ist, bevor Sie sich darauf verlassen.

Die Extraktion liest die textanzeigenden Operatoren des Content-Streams in Stream-Reihenfolge (ISO 32000-2 §9.4). Die Ausgabe spiegelt die kodierte Lesereihenfolge wider (ISO 32000-2 §9.10). Ein gescanntes PDF ohne Textebene liefert nur wenig oder gar keinen Text. Das ist eine Eigenschaft der Quelldatei, kein Fehler des Tools. format: "plain" gibt eine einzelne Zeichenkette zurück. format: "structured" gibt Objekte pro Seite mit Zeichenanzahlen zurück. page_range begrenzt die verarbeiteten Seiten.

ToolStufeRolleRisikostufe
extract_textProText extrahieren (plain / strukturiert / Bereich)Sicher
parse_pdfCore (env-gesteuert)Low-Level-Struktur (Seitenanzahl, Metadaten)Sicher

Tool-Namen entsprechen den Protokollnamen der Registry. Der Tool-Katalog ist die maßgebliche Referenz. Welche Tools verfügbar sind, hängt von der installierten Stufe ab.

  1. extract_text mit source (einem vom Server lesbaren Pfad) und format: "plain".
  2. extract_text mit page_range: "1-3" für eine Teilmenge der Seiten.
  3. extract_text mit format: "structured" für eine seitenweise segmentierte Ausgabe.

Verwenden Sie parse_pdf (oder zuvor ein unbegrenztes extract_text), um die Seitenanzahl zu ermitteln, bevor Sie einen Bereich anfordern. Für RAG/Indexierung sollten Sie format: "structured" bevorzugen, damit jede Seite unabhängig in Chunks zerlegt wird. Bei einer verschlüsselten Quelle geben Sie den Passwort-Parameter an. Zeichenanzahlen sind Anzahlen von UTF-8-Codepunkten, keine Bytes.

  • Quelle fehlt. Ein falscher Pfad führt zu einem Datei-nicht-gefunden-Fehler. Verwenden Sie absolute Pfade, die der Server lesen kann.
  • Gescanntes PDF. Ohne Textebene ist der extrahierte Text leer oder nahezu leer. Führen Sie zuerst OCR auf der Quelle aus.
  • Seite außerhalb des Bereichs. Ein Bereich außerhalb des Dokuments wird unter Angabe der tatsächlichen Seitenanzahl abgelehnt.
  • Verschlüsselte Quelle. Geben Sie den Passwort-Parameter an.
  • Pro fehlt. Wenn nur Core installiert ist, wird extract_text nicht registriert. Prüfen Sie dies mit diagnostic.capabilities.

Der Aufwand der Extraktion skaliert mit der Dokumentgröße, und das Budget lässt große Eingaben zu. Für jedes erzeugte Artefakt ist das Profil structural, da dieses Tool Text zurückgibt und kein PDF.

Extrahierter Text kann sensible Inhalte enthalten. Behandeln Sie das Ergebnis als vertraulich und geben Sie es nur über einen vertrauenswürdigen Kanal zurück. Das Tool schreibt nicht ins Dateisystem. Es liest lediglich den Quellpfad mit den Rechten des Servers; beschränken Sie daher, welche Pfade ein Aufrufer übergeben darf.

AussageSpezifikationKlauselreference_id
Text wird von Textoperatoren in Stream-Reihenfolge angezeigt.ISO 32000-2§9.4
Die Extraktion spiegelt die kodierte Lesereihenfolge wider.ISO 32000-2§9.10

Dieses Recipe behauptet nicht, dass der extrahierte Text bei einem nicht getaggten Dokument eine getreue logische Lesereihenfolge darstellt. Maßgeblich ist die kodierte Reihenfolge.

extract_text ist ein Pro-Tool, das nur registriert wird, wenn das Pro-Paket beim Serverstart aufgelöst werden kann.

TransportVerfügbarHinweise
MCP (stdio)Ja (Pro)Großer Text vergrößert den stdio-Frame stark.
RESTJa (Pro)Streamen Sie große Ergebnisse, sofern unterstützt.
gRPCJa (Pro)Für großen Text gelten Begrenzungen der Nachrichtengröße.

extract_text ist Sicher (schreibgeschützt, ohne Seiteneffekt) und ist nie gated.

Schreibgeschützte Extraktion ist nie gated:

{ "allowed": true }