Définir les métadonnées PDF
Un titre saisi avec des espaces en trop revient sous la forme Quarterly Report, et les mots-clés Finance et finance n'en font plus qu'un, avec la première graphie. Rangez les propriétés d'un PDF avant son entrée dans une archive ; le fichier n'est pas modifié. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Définissez des métadonnées PDF fiables avant l’entrée d’un document dans une archive, un système éditorial ou un circuit de livraison. Cette capacité vérifie que l’entrée PDF emploie une représentation prise en charge, exige un titre pertinent non vide et normalise l’auteur, le sujet et les mots-clés dans un objet cohérent. Elle supprime les espaces accidentels, réduit les espaces répétés, écarte les mots-clés vides et déduplique leurs variantes tout en conservant la première graphie utile. Le résultat est déterministe et prêt pour un outil d’écriture PDF en aval, sans accès réseau ni modification dépendant de l’état d’exécution.
Préparez un PDF valide et un objet de métadonnées
La capacité valide la représentation, mais ne télécharge pas une URL distante et ne réécrit pas les octets du document. Placez les propriétés proposées dans l’objet de métadonnées. Le titre est obligatoire, car un titre vide empêche d’identifier correctement le fichier dans les résultats de recherche, les archives, les onglets du navigateur et les systèmes de gestion documentaire.
L’auteur, le sujet et les mots-clés sont facultatifs. Chaque propriété scalaire doit être une chaîne ; les mots-clés peuvent être un tableau de chaînes ou une chaîne séparée par des virgules ou des points-virgules. Cette structure explicite facilite le diagnostic avant l’étape d’écriture du PDF.
Elle sépare aussi le transport de l’entrée des données descriptives afin que les mêmes métadonnées normalisées puissent être journalisées, contrôlées, comparées ou transmises à une autre capacité sans nouvelle extraction.
Comprenez précisément le fonctionnement de la normalisation
La normalisation du texte est volontairement prudente. Les espaces de début et de fin sont retirés, et toute suite interne d’espaces, de tabulations ou de sauts de ligne devient une seule espace ordinaire. La casse, la ponctuation, les accents et les formulations utiles restent inchangés.
Si un auteur ou un sujet facultatif devient vide après nettoyage, il est omis de la sortie au lieu d’être renvoyé sous forme de valeur nulle ou d’espace réservé vide. Les mots-clés reçoivent le même traitement. Les entrées vides sont écartées et les doublons sont comparés sans tenir compte de la casse, si bien que « Rapport annuel » et « rapport annuel » ne produisent qu’un mot-clé, avec la graphie de la première occurrence.
Leur ordre suit également la première occurrence utile, ce qui garantit des résultats prévisibles pour les tests et les caches en aval. Le titre suit les mêmes règles, mais ne peut pas disparaître : une valeur absente, non textuelle ou uniquement composée d’espaces provoque une erreur d’entrée non valide.
Intégrez le résultat normalisé dans un circuit documentaire sûr
La réponse renvoie la représentation PDF validée avec un objet de métadonnées contenant le titre normalisé obligatoire et uniquement les champs facultatifs ayant un contenu utile. Il s’agit d’une étape de préparation et de validation, et non d’un éditeur PDF binaire. Un outil d’écriture en aval peut reprendre la réponse, renseigner les champs d’information PDF ou XMP correspondants et appliquer ses propres règles de signature, de chiffrement, de conservation et de sérialisation des octets.
Cette séparation est utile lorsque les métadonnées proviennent de formulaires, de feuilles de calcul, de systèmes de contenu ou d’exports automatisés : rejetez tôt les enregistrements mal formés, contrôlez séparément les valeurs propres et ne lancez le traitement documentaire coûteux que pour les éléments acceptés. Elle aide aussi lors des migrations en masse, où les espaces incohérents et les mots-clés répétés brouillent les facettes de recherche de milliers de documents.
Cette capacité n’effectuant aucune requête réseau et ne stockant aucun état, elle produit le même contrat normalisé dans les environnements navigateur et serveur.
Cas d’usage
Valider des formulaires éditoriaux
Contrôlez les titres fournis par les rédacteurs et normalisez les champs descriptifs avant l’écriture du PDF final.
Nettoyer des migrations d’archives
Supprimez les incohérences d’espacement et les mots-clés en double lors de la préparation d’anciens enregistrements.
Sécuriser la génération automatique de PDF
Arrêtez les rapports sans titre avant une étape coûteuse de rendu ou d’écriture des métadonnées PDF.
Questions fréquentes
Cette capacité modifie-t-elle les octets du PDF ?
Non. Elle valide la représentation PDF et renvoie des métadonnées normalisées à un outil d’écriture en aval.
Quels champs de métadonnées sont pris en charge ?
Le titre, l’auteur, le sujet et les mots-clés. Le titre est obligatoire ; les autres champs sont facultatifs.
Les mots-clés peuvent-ils être fournis dans une seule chaîne ?
Oui. La chaîne est découpée aux virgules ou aux points-virgules. Vous pouvez aussi fournir un tableau de chaînes.
Comment les mots-clés en double sont-ils traités ?
Ils sont supprimés sans tenir compte de la casse après normalisation des espaces, tout en conservant la première graphie et l’ordre.
Que se passe-t-il si le titre est vide ?
L'enregistrement est refusé. Le titre est obligatoire, car un titre vide ne permet pas d'identifier le fichier dans les recherches, les archives ou les onglets du navigateur, et un titre fait d'espaces compte aussi comme vide.
Outils associés
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/set-metadata \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf","metadata":{"title":"Quarterly Report","author":"Ada Lovelace","subject":"Operations","keywords":["finance","quarterly report"]}}'const res = await fetch("https://api.kit.forhosting.com/pdf/set-metadata", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf",
"metadata": {
"title": "Quarterly Report",
"author": "Ada Lovelace",
"subject": "Operations",
"keywords": [
"finance",
"quarterly report"
]
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/set-metadata",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf",
"metadata": {
"title": "Quarterly Report",
"author": "Ada Lovelace",
"subject": "Operations",
"keywords": [
"finance",
"quarterly report"
]
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/set-metadata", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf","metadata":{"title":"Quarterly Report","author":"Ada Lovelace","subject":"Operations","keywords":["finance","quarterly report"]}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf","metadata":{"title":"Quarterly Report","author":"Ada Lovelace","subject":"Operations","keywords":["finance","quarterly report"]}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/set-metadata", 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
{
"pdf": "https://ejemplo.com/documento.pdf",
"metadata": {
"title": "Quarterly Report",
"author": "Ada Lovelace",
"subject": "Operations",
"keywords": [
"finance",
"quarterly report"
]
}
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.set_metadata",
"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_mb | 25 |
max_pages | 200 |
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. |
Notes techniques
Préparez un PDF valide et un objet de métadonnées
Envoyez le PDF sous l’une des formes prises en charge : une URI de données PDF en base64, une chaîne brute commençant par la signature PDF, une URL HTTPS dont le chemin désigne un PDF ou une référence de téléversement du kit.
Comprenez précisément le fonctionnement de la normalisation
Aucune horloge, valeur aléatoire, service externe ou donnée propre à l’environnement n’intervient ; une même entrée JSON produit donc toujours la même sortie.
Intégrez le résultat normalisé dans un circuit documentaire sûr
Chaque appel coûte $0.002 par élément ; le coût évolue donc de manière prévisible avec le nombre d’enregistrements validés.
Questions techniques
Que se passe-t-il si le titre ne contient que des espaces ?
La requête échoue avec une erreur invalid_input, car la normalisation produirait un titre vide.
Combien coûte une requête ?
Chaque élément validé coûte $0.002, sans supplément lié au réseau ou au modèle.