Erste und letzte Seite einer PDF extrahieren
Der Extraktor für die erste und letzte PDF-Seite wandelt die bekannte Seitenzahl eines Dokuments in eine eindeutige, deterministische Extraktionsanweisung um.
Im Browser ausführen – kostenlos
Geben Sie die Gesamtzahl an; daraufhin werden Seite 1 und die Schlussseite ermittelt und als Manifest für eine zweiseitige PDF mit festem Dateinamen und Medientyp ausgegeben. Das Dokument muss mindestens zwei Seiten besitzen, da eine einseitige Datei keine zwei unterschiedlichen Randseiten hat. Das Ergebnis eignet sich, wenn ein vorheriger Schritt die Seitenzahl bereits kennt und eine zweifelsfreie Auswahl für die weitere PDF-Verarbeitung benötigt.
Bewahren Sie die beiden Rahmenseiten eines Dokuments auf
Lange PDF-Dateien enthalten wichtige Rahmeninformationen häufig an entgegengesetzten Enden. Auf der ersten Seite können Deckblatt, Titel, Kontokennung, Berichtszeitraum oder Einreichungsreferenz stehen; die letzte Seite kann Unterschriften, Freigaben, Summen, Anhänge oder Eingangsvermerke enthalten. Diese Fähigkeit bildet den gängigen Vorgang ab, beide Randseiten zu erhalten, ohne dass Sie die letzte Seitennummer gesondert berechnen müssen. Geben Sie die Gesamtseitenzahl der PDF an; das Ergebnis nennt Quellseite 1 und die Quellseite, deren Nummer dieser Gesamtzahl entspricht. Das Manifest beschreibt stets eine zweiseitige PDF in der Reihenfolge des Originals: zuerst die Anfangsseite, danach die Schlussseite. Zusätzlich liefert es den PDF-Medientyp und einen vorhersehbaren Downloadnamen, sodass sich das Ergebnis einfach an einen dateierzeugenden Ablauf übergeben lässt. Das Originaldokument bleibt unverändert. Da die Auswahl ausschließlich auf Seitenpositionen beruht, werden die Inhalte der gewählten Seiten weder untersucht noch klassifiziert, zusammengefasst oder umgedeutet.
Verstehen Sie Prüfung und Seitennummerierung
Die Nummerierung beginnt wie in üblichen PDF-Werkzeugen bei eins: Die Anfangsseite ist Seite 1 und nicht Seite 0. Der Wert `page_count` muss eine endliche ganze Zahl von mindestens 2 sein. Brüche, numerische Zeichenketten, fehlende Werte, Arrays und Objekte werden abgewiesen und nicht stillschweigend umgewandelt. Diese strenge Prüfung verhindert, dass eine Anfrage trotz fehlerhafter Quelldaten gültig erscheint. Eine einseitige PDF wird ebenfalls abgelehnt, weil ihre erste und letzte Seite physisch identisch sind, diese Fähigkeit jedoch zwei verschiedene Randseiten zusichert. Bei einem Dokument mit 2 Seiten lautet die Auswahl 1 und 2, bei 300 Seiten lautet sie 1 und 300. Die Ausgabe nennt sowohl die ursprüngliche Gesamtzahl als auch die neue Seitenzahl 2. Nachgelagerter Code muss daher nicht erraten, welche Zahl welches Dokument beschreibt. Außerdem werden die gewählten Quellseiten ausdrücklich aufgelistet, damit Protokolle, Oberflächen und weitere Verarbeitungsschritte die Anforderung genau darstellen können.
Nutzen Sie das Manifest sicher in automatisierten PDF-Abläufen
Diese Fähigkeit ist bewusst deterministisch und begrenzt. Sie führt keine Netzwerkanfragen aus, liest keine Geheimnisse, speichert kein Dokument und verwendet weder die aktuelle Uhrzeit noch Zufallswerte. Dieselbe gültige Seitenzahl erzeugt deshalb bei jedem Aufruf genau dasselbe Manifest. Ein typischer Ablauf ermittelt bei der PDF-Prüfung eine verlässliche Seitenzahl, ruft diese Fähigkeit zur Festlegung der Randseiten auf und übergibt `extracted_pages` an die Komponente, die diese Seiten aus den Quelldaten in eine neue PDF kopiert. Die Trennung von Auswahl und Datenübertragung hilft bei Browserwerkzeugen, Warteschlangen und Prüfsystemen, in denen Dateizugriff und Geschäftsregeln in unterschiedlichen Phasen liegen. Stellen Sie sicher, dass die Seitenzahl zu derselben PDF gehört, die der Kopierschritt erhält; ein veralteter Wert könnte über das Ende einer neueren Datei hinausweisen. Die Automatisierung per API kostet $0.002 je Anfrage, während die reine Auswahllogik auch im Browser läuft. Die Quelle wird nie verändert; legen Sie die Aufbewahrung der Ergebnisdatei separat fest.
Anwendungsfälle
Deckblatt und Unterschriftsseite vorbereiten
Wählen Sie aus einem Vertragspaket das erste Deckblatt und die letzte Unterschriftsseite für eine kompakte Prüfdatei aus.
Randseiten eines Berichts archivieren
Erfassen Sie Titelblatt und abschließende Bestätigung eines langen Berichts, ohne die letzte Position im Code zu berechnen.
Einen PDF-Verarbeitungsablauf erstellen
Wandeln Sie Seitenzahldaten in eine ausdrückliche Auswahl zweier Seiten für eine nachgelagerte PDF-Kopierkomponente um.
Häufige Fragen
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Die deterministische Auswahllogik kann auch im Browser ausgeführt werden.
Warum werden einseitige PDF-Dateien abgelehnt?
Bei einer einseitigen PDF sind die erste und letzte Seite gleich. Diese Fähigkeit verlangt zwei verschiedene Quellseiten.
Beginnt die Seitennummerierung bei null oder eins?
Sie beginnt bei eins. Die erste Quellseite ist 1, die letzte entspricht `page_count`.
Wird die ursprüngliche PDF verändert?
Nein. Die Antwort beschreibt deterministisch eine neue zweiseitige PDF und lässt die Quelle unverändert.
Kann ich die Seitenzahl als Zeichenkette übergeben?
Nein. Übergeben Sie `page_count` als ganze Zahl. Numerische Zeichenketten und Brüche werden zur Vermeidung von Mehrdeutigkeit abgewiesen.
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/first-last-page-extract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page_count":12}'const res = await fetch("https://api.kit.forhosting.com/pdf/first-last-page-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page_count": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/first-last-page-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page_count": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/first-last-page-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page_count":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page_count":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/first-last-page-extract", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"page_count": 12
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.first_last_page_extract",
"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. |