PDF-Text aus einem Seitenbereich extrahieren
Extrahieren Sie PDF-Text aus einem Seitenbereich, wenn Ihnen bereits für jede Seite ein Textblock vorliegt und Sie nur einen bestimmten Abschnitt benötigen.
Im Browser ausführen – kostenlos
Übergeben Sie die geordneten Blöcke sowie die erste und letzte Seite. Die Funktion prüft den ab eins nummerierten Bereich anhand der Gesamtseitenzahl, schließt beide Grenzen ein und verbindet den ausgewählten Text in der richtigen Reihenfolge mit einer sichtbaren Seitenmarke. Dies eignet sich für Berichte, Verträge, Handbücher und andere lange Dokumente, bei denen nachfolgende Prozesse nur einen gezielten Auszug erhalten sollen.
Übergeben Sie geordneten Text und einen inklusiven Bereich
Beginnen Sie mit dem Text, den ein PDF-Extraktor oder OCR-Verfahren für jede Seite erzeugt hat. Ordnen Sie die Objekte wie im Originaldokument an und lassen Sie auch Seiten stehen, deren extrahierter Text eine leere Zeichenfolge ist. Legen Sie danach start_page und end_page mit einer Nummerierung ab eins fest. Beide Grenzen zählen mit: Der Bereich 3 bis 5 liefert den dritten, vierten und fünften Block. Leere Seiten müssen erhalten bleiben, weil deren Entfernung alle späteren Seitenzahlen verschieben würde. Jede Seite muss ein Objekt mit einer text-Zeichenfolge sein; fehlende oder andersartige Werte werden abgelehnt. Die Eingabe unterstützt bis zu zehntausend Blöcke. Diese Funktion öffnet oder decodiert keine PDF-Datei. Sie verarbeitet zuvor gewonnenen Seitentext und hält die Auswahl dadurch ausdrücklich, vorhersehbar und leicht prüfbar.
Beachten Sie Prüfung und Seitengrenzen
Seitenbereiche beginnen bei eins, schließen beide Grenzen ein und werden streng geprüft. Anfang und Ende müssen ganze Zahlen ab eins sein; der Anfang darf nicht hinter dem Ende liegen. Keine Grenze darf die Zahl der übergebenen Blöcke überschreiten. Endet ein Bereich bei Seite vier, obwohl das Dokument nur drei Seiten hat, entsteht ein Fehler wegen ungültiger Eingabe statt eines unvollständigen Ergebnisses. So werden Abweichungen zwischen Metadaten, Auswahl und Extraktion sichtbar. Die gewählten Zeichenfolgen werden durch eine beständige, von Leerzeilen umgebene Marke verbunden, ohne den Text zu kürzen oder auszulegen. Bei nur einer Seite ist keine Trennmarke nötig. Die Ausgabe nennt außerdem die ausgewählte Anzahl und die akzeptierten Grenzen. Netzwerk, Zufall, Uhrzeit, Sprachmodelle und Schlussfolgerungen spielen keine Rolle: Gleiche Eingaben erzeugen stets gleiche Ergebnisse.
Nutzen Sie das Ergebnis in gezielten Dokumentabläufen
Die Auswahl ist besonders nützlich zwischen einer seitentreuen Extraktion und einem nachfolgenden System, das nicht das gesamte Dokument erhalten soll. Ein Vertragsablauf kann Anlagen vor der Klauselprüfung isolieren, eine Finanzverarbeitung nur den Lagebericht übernehmen und ein Supportsystem ein Handbuchkapitel indexieren. Da Text statt einer binären PDF-Datei eingegeben wird, lässt sich die Funktion sowohl mit OCR für Scans als auch mit normaler Extraktion für digitale Dateien kombinieren. Bewahren Sie die ursprüngliche Liste bis zur Prüfung auf und protokollieren Sie die zurückgegebenen Grenzen, wenn Nachvollziehbarkeit wichtig ist. Die Seitenmarke kann für Zitate erhalten oder später wieder getrennt werden. Das Werkzeug fasst Inhalte nicht zusammen, korrigiert, klassifiziert oder normalisiert sie nicht. Solche Änderungen gehören in eigene Schritte, während dieser Vorgang eine deterministische und reproduzierbare Grundlage für genaue Dokumentautomatisierung bleibt.
Anwendungsfälle
Berichtsabschnitt isolieren
Wählen Sie genau die Seiten mit dem Lagebericht aus, bevor Sie den Text analysieren oder vergleichen lassen.
Vertragsanlagen weiterleiten
Extrahieren Sie nur den inklusiven Bereich einer Anlage und bewahren Sie die Seitengrenzen für die Prüfung.
Handbuchkapitel indexieren
Wählen Sie ein Kapitel aus dem Seitentext und senden Sie den gezielten Auszug an Suche oder Support.
Häufige Fragen
Sind die Anfangs- und Endseite enthalten?
Ja. Der Bereich ist inklusiv; die Seiten 2 bis 4 liefern daher drei Textblöcke.
Was geschieht, wenn der Bereich über das Dokument hinausgeht?
Die Anfrage meldet eine ungültige Eingabe, sobald eine Grenze die übergebene Seitenzahl überschreitet.
Liest diese Funktion eine PDF-Datei?
Nein. Sie übernimmt geordneten Seitentext, der zuvor bereits aus einer PDF-Datei extrahiert wurde.
Wie werden die ausgewählten Seiten getrennt?
Benachbarte Seitentexte werden mit einer beständigen, von Leerzeilen umgebenen Seitenmarke verbunden.
Was kostet eine Anfrage?
Der API-Preis beträgt $0.002 pro Anfrage. Die deterministische Browserausführung ist auf der Funktionsseite kostenlos.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/pdf/text-extract-by-page-range \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages":[{"text":"Cover page"},{"text":"Executive summary\nRevenue increased."},{"text":"Risk analysis\nSupply remains constrained."},{"text":"Appendix"}],"start_page":2,"end_page":3}'const res = await fetch("https://api.kit.forhosting.com/pdf/text-extract-by-page-range", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages": [
{
"text": "Cover page"
},
{
"text": "Executive summary\nRevenue increased."
},
{
"text": "Risk analysis\nSupply remains constrained."
},
{
"text": "Appendix"
}
],
"start_page": 2,
"end_page": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/text-extract-by-page-range",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages": [
{
"text": "Cover page"
},
{
"text": "Executive summary\nRevenue increased."
},
{
"text": "Risk analysis\nSupply remains constrained."
},
{
"text": "Appendix"
}
],
"start_page": 2,
"end_page": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/text-extract-by-page-range", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages":[{"text":"Cover page"},{"text":"Executive summary\\nRevenue increased."},{"text":"Risk analysis\\nSupply remains constrained."},{"text":"Appendix"}],"start_page":2,"end_page":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages":[{"text":"Cover page"},{"text":"Executive summary\nRevenue increased."},{"text":"Risk analysis\nSupply remains constrained."},{"text":"Appendix"}],"start_page":2,"end_page":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/text-extract-by-page-range", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"pages": [
{
"text": "Cover page"
},
{
"text": "Executive summary\nRevenue increased."
},
{
"text": "Risk analysis\nSupply remains constrained."
},
{
"text": "Appendix"
}
],
"start_page": 2,
"end_page": 3
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.text_extract_by_page_range",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
max_pages | 200 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |