Listez les images d’un PDF : page, index et dimensions
Transformez les métadonnées imbriquées des images d’un PDF en un inventaire clair, facile à consulter, filtrer et conserver.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Fournissez les descripteurs de chaque page, avec son numéro et les dimensions en pixels de toutes ses images. Vous obtenez une liste unique dans l’ordre source, dotée d’un index qui commence à un sur chaque page. Ce traitement intervient après la détection des images intégrées par un analyseur PDF et avant leur audit, leur sélection, leur extraction ou leur intégration dans un rapport.
Préparez les descripteurs image par page
Partez des métadonnées produites par votre lecteur de PDF ou votre chaîne d’extraction. L’entrée est un tableau de pages ; chaque élément contient un numéro de page positif et un tableau d’images. Chaque image doit comporter une largeur et une hauteur en pixels exprimées par des entiers positifs. Conservez l’ordre fourni par l’analyseur, car il détermine l’index dans le résultat. Cet index commence à un sur chaque page, ce qui permet de citer facilement « page 4, image 2 » dans un rapport. Une page sans image reste valide avec un tableau d’images vide. Les numéros de page ne doivent pas nécessairement se suivre, mais ils doivent être uniques dans la requête. Cette structure explicite empêche qu’une page omise rattache discrètement une image au mauvais emplacement.
Interprétez la liste mise à plat
La réponse contient un tableau d’images avec un enregistrement pour chaque descripteur trouvé dans les pages fournies. Chaque enregistrement présente quatre champs : page, index, largeur et hauteur. La page vient de l’élément parent ; l’index dépend de la position de l’image et revient à un à la page suivante. La largeur et la hauteur sont validées puis recopiées sans redimensionnement, arrondi, rotation ni conversion. Les enregistrements respectent l’ordre des pages reçues et celui des images qu’elles contiennent. Ce parcours stable garantit un résultat déterministe et facilite la comparaison de plusieurs inventaires. La capacité n’ouvre pas le PDF et n’extrait aucune donnée binaire : elle normalise des descripteurs déjà disponibles. Des dimensions identiques restent des enregistrements distincts, car elles peuvent correspondre à des ressources ou emplacements différents.
Validez et exploitez l’inventaire
Employez cet inventaire plat dès que des métadonnées imbriquées deviennent difficiles à exploiter. Un contrôle qualité peut signaler les images trop petites, une tâche d’extraction peut ne retenir que les éléments plus grands qu’une vignette, et un rapport peut compter les images par page sans parcourir plusieurs fois les tableaux. Conservez ensemble la page et l’index comme emplacement lisible, tout en sachant que l’index décrit l’ordre reçu et non l’identifiant interne d’un objet PDF. La validation est stricte : la requête échoue si les pages manquent ou sont vides, si un numéro est invalide ou répété, si images n’est pas un tableau, ou si une dimension n’est pas un entier positif. Une erreur vaut mieux qu’un inventaire partiel qui semble complet. L’opération est déterministe, sans réseau ni conservation des données. Vous pouvez l’exécuter dans le navigateur ou appeler l’API à $0.002 par requête.
Cas d’usage
Contrôler la résolution des images
Aplatissez les métadonnées de l’analyseur et repérez les images qui ne respectent pas vos dimensions minimales.
Préparer une extraction sélective
Créez un manifeste page-index pour sélectionner ensuite les grandes images et ignorer les petits éléments décoratifs.
Produire un rapport sur les ressources PDF
Convertissez les résultats imbriqués en lignes simples pour un tableur, une base de données ou un journal de traitement.
Questions fréquentes
Cette capacité lit-elle ou téléverse-t-elle le PDF ?
Non. Elle reçoit les descripteurs par page que votre analyseur PDF a déjà produits.
Comment les index des images sont-ils attribués ?
Ils commencent à un, suivent l’ordre fourni et recommencent à un sur chaque page.
Une page peut-elle ne contenir aucune image ?
Oui. Fournissez cette page avec un tableau d’images vide ; elle n’ajoutera aucun enregistrement.
Les numéros de page doivent-ils se suivre ?
Non. Vous pouvez fournir certaines pages seulement, mais chaque numéro doit être un entier positif unique.
Quel est le prix d’une requête API ?
Le tarif de l’API est de $0.002 par requête. L’exécuteur du navigateur convient aux usages interactifs.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"pages": [
{
"page": 1,
"images": [
{
"width": 1200,
"height": 800
},
{
"width": 64,
"height": 64
}
]
},
{
"page": 2,
"images": [
{
"width": 1920,
"height": 1080
}
]
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.extract_images_list",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_pages | 10000 |
max_images_per_page | 10000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |