Bilder in PDF auflisten: Seite, Index und Abmessungen
Wandeln Sie verschachtelte PDF-Bildmetadaten in ein übersichtliches Inventar um, das sich leicht prüfen, filtern und speichern lässt.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Übergeben Sie für jede Seite die Bildbeschreibungen einschließlich Seitennummer und Pixelmaßen. Das Ergebnis ist eine einzige flache Liste in der Reihenfolge der Quelle; der Bildindex beginnt auf jeder Seite wieder bei eins. Dies ist sinnvoll, nachdem ein PDF-Parser eingebettete Bilder erkannt hat und bevor ein anderes System sie prüfen, auswählen, extrahieren oder dokumentieren soll.
Bereiten Sie Bildbeschreibungen je Seite vor
Verwenden Sie die Metadaten aus Ihrem PDF-Leser oder Extraktionsablauf. Die Eingabe ist ein Seiten-Array; jeder Eintrag enthält eine positive Seitennummer und ein Bilder-Array. Jedes Bild benötigt Breite und Höhe in Pixeln als positive Ganzzahlen. Behalten Sie die vom Parser gelieferte Reihenfolge bei, denn daraus entsteht der Bildindex. Er beginnt auf jeder Seite bei eins und eignet sich daher für verständliche Angaben wie „Seite 4, Bild 2“. Eine Seite darf keine Bilder enthalten; übergeben Sie dafür ein leeres Bilder-Array. Seitennummern müssen nicht fortlaufend sein, sodass Sie ausgewählte Seiten ohne Platzhalter verarbeiten können. Innerhalb einer Anfrage müssen sie jedoch eindeutig sein. Die ausdrückliche Struktur verhindert, dass ein fehlender Seitenbezug ein Bild unbemerkt der falschen Stelle zuordnet.
Verstehen Sie das flache Ergebnis
Die Antwort enthält ein Bilder-Array mit einem Datensatz für jede Beschreibung auf den übergebenen Seiten. Jeder Datensatz umfasst genau vier Felder: Seite, Index, Breite und Höhe. Die Seite wird aus dem übergeordneten Eintrag übernommen. Der Index ergibt sich aus der Position des Bildes und beginnt auf der nächsten Seite erneut bei eins. Breite und Höhe werden geprüft und ohne Skalierung, Rundung, Drehung oder Einheitenumrechnung kopiert. Die Datensätze behalten sowohl die Reihenfolge der Seiteneinträge als auch die Reihenfolge der Bilder bei. Dieser stabile Durchlauf liefert deterministische Ergebnisse und erleichtert den Vergleich mehrerer Inventare. Die Funktion öffnet keine PDF-Datei und extrahiert keine Binärdaten, sondern normalisiert vorhandene Parser-Beschreibungen. Gleiche Abmessungen bleiben getrennte Datensätze, da sie unterschiedliche Ressourcen oder Platzierungen bezeichnen können.
Prüfen und verwenden Sie das Inventar
Nutzen Sie das flache Inventar überall dort, wo verschachtelte Seitenmetadaten hinderlich sind. Eine Qualitätskontrolle kann Bilder unterhalb einer Mindestauflösung markieren, ein Extraktionsauftrag kann nur Elemente oberhalb der Größe eines Vorschaubilds auswählen und ein Bericht kann Bilder je Seite zählen, ohne Arrays wiederholt zu durchlaufen. Speichern Sie Seite und Index gemeinsam als lesbare Position. Beachten Sie dabei, dass der Index die übergebene Reihenfolge und keine interne PDF-Objektkennung beschreibt. Die Prüfung ist bewusst streng: Die Anfrage scheitert bei fehlenden oder leeren Seiten, ungültigen oder doppelten Seitennummern, einem Wert für Bilder, der kein Array ist, sowie nicht positiven ganzzahligen Abmessungen. Ein Fehler ist besser als ein unvollständiges Inventar, das vollständig wirkt. Der Ablauf ist deterministisch, nutzt kein Netzwerk und speichert keine Beschreibungen. Sie können ihn im Browser ausführen oder die API für $0.002 pro Anfrage aufrufen.
Anwendungsfälle
Bildauflösung prüfen
Flachen Sie Parser-Metadaten ab und finden Sie Bilder, deren Breite oder Höhe Ihre Qualitätsvorgaben unterschreitet.
Gezielte Extraktion planen
Erstellen Sie ein Seiten-Index-Manifest, um später große Bilder auszuwählen und kleine Schmuckelemente auszulassen.
PDF-Ressourcenbericht erstellen
Wandeln Sie verschachtelte Seitenergebnisse in einfache Zeilen für Tabellen, Datenbanken oder Verarbeitungsprotokolle um.
Häufige Fragen
Liest oder lädt diese Funktion die PDF-Datei selbst?
Nein. Sie erhält die Bildbeschreibungen je Seite, die Ihr PDF-Parser bereits erzeugt hat.
Wie werden die Bildindizes vergeben?
Sie beginnen bei eins, folgen der übergebenen Reihenfolge und starten auf jeder Seite neu.
Darf eine Seite keine Bilder enthalten?
Ja. Übergeben Sie diese Seite mit einem leeren Bilder-Array; sie fügt dem Ergebnis keine Datensätze hinzu.
Müssen die Seitennummern fortlaufend sein?
Nein. Sie können ausgewählte Seiten senden, doch jede Nummer muss eine eindeutige positive Ganzzahl sein.
Was kostet eine API-Anfrage?
Der API-Preis beträgt $0.002 pro Anfrage. Für interaktive Aufgaben steht die Browser-Ausführung bereit.
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/extract-images-list \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages":[{"page":1,"images":[{"width":1200,"height":800},{"width":64,"height":64}]},{"page":2,"images":[{"width":1920,"height":1080}]}]}'const res = await fetch("https://api.kit.forhosting.com/pdf/extract-images-list", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages": [
{
"page": 1,
"images": [
{
"width": 1200,
"height": 800
},
{
"width": 64,
"height": 64
}
]
},
{
"page": 2,
"images": [
{
"width": 1920,
"height": 1080
}
]
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/extract-images-list",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages": [
{
"page": 1,
"images": [
{
"width": 1200,
"height": 800
},
{
"width": 64,
"height": 64
}
]
},
{
"page": 2,
"images": [
{
"width": 1920,
"height": 1080
}
]
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/extract-images-list", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages":[{"page":1,"images":[{"width":1200,"height":800},{"width":64,"height":64}]},{"page":2,"images":[{"width":1920,"height":1080}]}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages":[{"page":1,"images":[{"width":1200,"height":800},{"width":64,"height":64}]},{"page":2,"images":[{"width":1920,"height":1080}]}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/extract-images-list", 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": [
{
"page": 1,
"images": [
{
"width": 1200,
"height": 800
},
{
"width": 64,
"height": 64
}
]
},
{
"page": 2,
"images": [
{
"width": 1920,
"height": 1080
}
]
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.extract_images_list",
"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_pages | 10000 |
max_images_per_page | 10000 |
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. |