Ga naar inhoud

Tekstinhoud extraheren met NextPDF Connect (Pro)

Gebruik extract_text om tekst uit een bestaand PDF-bestand te extraheren voor indexering, analyse of verdere verwerking. De Pro-toolprovider registreert new ExtractTextTool() onder de protocolnaam extract_text, en deze pagina controleert die binding opnieuw. extract_text is een tool uit de Pro-tier. Bij het opstarten controleert de server dit met class_exists() en registreert de tool alleen wanneer het Pro-pakket is geïnstalleerd. Je kunt platte tekstuitvoer, een paginabereik of gestructureerde uitvoer per pagina opvragen.

Terminal window
composer require nextpdf/server
composer require nextpdf/pro

Koppel een transport. Bevestig de tool met diagnostic.capabilities voordat je erop vertrouwt.

Extractie leest tekstweergevende operatoren uit de content stream in stream-volgorde (ISO 32000-2 §9.4). De uitvoer weerspiegelt de gecodeerde leesvolgorde (ISO 32000-2 §9.10). Een gescand PDF-bestand zonder tekstlaag levert weinig of geen tekst op. Dat komt door het bronbestand, niet door een tekortkoming van de tool. format: "plain" levert één string op. format: "structured" levert objecten per pagina met tekentellingen op. page_range beperkt de verwerkte pagina’s.

ToolTierRolRisiconiveau
extract_textProTekst extraheren (plain / structured / range)Veilig
parse_pdfCore (env-gated)Low-level structuur (paginaaantal, metadata)Veilig

Toolnamen zijn protocolnamen uit het register. De toolcatalogus is de gezaghebbende catalogus. De beschikbare tools hangen af van de geïnstalleerde tier.

  1. extract_text met source (een pad dat de server kan lezen) en format: "plain".
  2. extract_text met page_range: "1-3" voor een subset.
  3. extract_text met format: "structured" voor uitvoer die per pagina is gesegmenteerd.

Gebruik parse_pdf (of een eerdere onbegrensde extract_text) om het paginaaantal op te halen voordat je een bereik opvraagt. Gebruik voor retrieval-augmented generation (RAG) of indexering bij voorkeur format: "structured", zodat elke pagina afzonderlijk in chunks wordt verdeeld. Geef bij een versleutelde bron de password-parameter mee. Tekentellingen zijn aantallen UTF-8-codepunten, geen bytes.

  • Bron ontbreekt. Een onjuist pad levert een file-not-found-fout op. Gebruik absolute paden die de server kan lezen.
  • Gescand PDF-bestand. Zonder tekstlaag levert extractie lege of vrijwel lege tekst op. Voer eerst optische tekenherkenning (OCR) uit op de bron.
  • Pagina buiten bereik. Een bereik dat buiten het document valt, wordt afgewezen met het werkelijke paginaaantal.
  • Versleutelde bron. Geef de password-parameter mee.
  • Pro ontbreekt. Met alleen Core wordt extract_text niet geregistreerd. Controleer dit met diagnostic.capabilities.

Extractie schaalt met de documentgrootte en het budget staat grote invoer toe. Het profiel is structural voor elk geproduceerd artefact, omdat deze tool tekst retourneert in plaats van een PDF.

Geëxtraheerde tekst kan gevoelige inhoud bevatten. Behandel het resultaat als vertrouwelijk en retourneer het alleen via een vertrouwd kanaal. De tool schrijft niet naar het bestandssysteem. De tool leest het bronpad met de rechten van de server; beperk daarom welke paden een aanroeper mag meegeven.

BeweringSpecificatieClausulereference_id
Tekst wordt door tekstoperatoren in stream-volgorde weergegeven.ISO 32000-2§9.4
Extractie weerspiegelt de gecodeerde leesvolgorde.ISO 32000-2§9.10

Dit recipe stelt niet dat geëxtraheerde tekst een getrouwe logische leesvolgorde behoudt voor een niet-getagd document. De volgorde is de gecodeerde volgorde.

extract_text is een tool uit de Pro-tier, die alleen wordt geregistreerd wanneer het Pro-pakket bij het opstarten van de server beschikbaar is.

TransportBeschikbaarOpmerkingen
MCP (stdio)Ja (Pro)Grote tekst vergroot het stdio-frame.
RESTJa (Pro)Stream grote resultaten waar dit wordt ondersteund.
gRPCJa (Pro)Berichtgroottelimieten gelden voor grote tekst.

extract_text is Veilig (alleen-lezen, zonder neveneffect) en activeert nooit een gate.

Alleen-lezen extractie activeert nooit een gate:

{ "allowed": true }