Vérifiez les polices incorporées dans un PDF
Un PDF peut sembler correct sur l’ordinateur où il a été créé, puis changer lorsqu’il est ouvert, imprimé ou traité ailleurs si une police n’est pas incorporée.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Ce contrôle reçoit l’inventaire issu d’un outil d’inspection, avec l’indicateur d’incorporation de chaque entrée, et fournit un bilan explicite. Il répertorie aussi toutes les polices à corriger afin de simplifier et d’automatiser le contrôle en amont.
Pourquoi l’incorporation garantit la portabilité du PDF
Un PDF décrit la mise en page et les polices utilisées pour tracer le texte. Si le programme de police ou un sous-ensemble autorisé est incorporé, le lecteur ou l’imprimante peut reproduire fidèlement les caractères. Sinon, le système destinataire peut choisir une police locale différente par sa forme, sa largeur ou sa couverture linguistique. Les retours à la ligne, symboles et pages risquent alors de changer. Les imprimeurs et services d’archivage vérifient donc ce point. Cette capacité évalue les noms et indicateurs déjà extraits selon une règle constante, sans analyser elle-même les octets du PDF.
Comment fournir la liste et interpréter le résultat
Fournissez au moins une entrée comportant un nom non vide et une valeur booléenne embedded. Utilisez true uniquement si l’outil source confirme l’incorporation, et false s’il signale son absence. Le contrôle conserve l’ordre, compte toutes les entrées et renvoie séparément les noms non incorporés. all_embedded vaut true seulement si tous les indicateurs valent true. Les préfixes de sous-ensemble et les doublons sont conservés, car ils peuvent désigner des ressources distinctes. Une liste vide, un nom incorrect ou une valeur non booléenne est refusé afin d’éviter toute conclusion fondée sur une extraction défaillante.
Intégrez ce contrôle à un examen complet
Lancez le contrôle après l’extraction de l’inventaire et avant de valider le PDF pour l’impression, la diffusion ou l’archivage. Si all_embedded vaut false, utilisez not_embedded_fonts pour établir un rapport de correction. L’auteur peut réexporter avec les polices d’origine, choisir des polices dont la licence autorise l’incorporation ou vectoriser certains textes graphiques. Extrayez ensuite un nouvel inventaire. L’incorporation n’est qu’un aspect du contrôle : couleurs, résolution, fond perdu, zones de page, transparence, chiffrement et norme PDF peuvent aussi compter. Cette capacité ne détermine ni les licences, ni les glyphes disponibles, ni la recherche dans un texte vectorisé.
Cas d’usage
Contrôlez un fichier destiné à l’impression
Refusez un document dès que son inventaire contient une ressource de police non incorporée.
Préservez la portabilité des documents
Vérifiez rapports, manuels et formulaires avant diffusion pour limiter les substitutions typographiques.
Ajoutez un contrôle qualité
Transformez les métadonnées de police d’une inspection existante en résultat déterministe et automatisable.
Questions fréquentes
Cette capacité ouvre-t-elle ou analyse-t-elle le fichier PDF ?
Non. Elle contrôle une liste de polices et des indicateurs fournis par un outil d’inspection ou de prépresse.
Que se passe-t-il si la liste de polices est vide ?
La requête échoue pour entrée incorrecte, car une extraction vide ne permet aucune conclusion fiable.
Les noms de sous-ensembles sont-ils automatiquement réputés incorporés ?
Non. Les noms ne sont que des libellés ; le résultat suit l’indicateur booléen explicite de chaque entrée.
Les noms de polices en double sont-ils supprimés ?
Non. Chaque entrée est comptée et chaque occurrence non incorporée conserve sa position initiale.
Un résultat entièrement incorporé garantit-il que le PDF est prêt à imprimer ?
Non. Il confirme seulement les indicateurs fournis ; d’autres contrôles d’impression peuvent rester nécessaires.
Quel est le prix d’une requête API ?
Chaque requête coûte $0.002. La version pour navigateur applique la même logique déterministe.
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/font-embedding-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"fonts":[{"name":"Helvetica","embedded":false},{"name":"ABCDEE+SourceSansPro-Regular","embedded":true},{"name":"TimesNewRomanPSMT","embedded":false}]}'const res = await fetch("https://api.kit.forhosting.com/pdf/font-embedding-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"fonts": [
{
"name": "Helvetica",
"embedded": false
},
{
"name": "ABCDEE+SourceSansPro-Regular",
"embedded": true
},
{
"name": "TimesNewRomanPSMT",
"embedded": false
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/font-embedding-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"fonts": [
{
"name": "Helvetica",
"embedded": false
},
{
"name": "ABCDEE+SourceSansPro-Regular",
"embedded": true
},
{
"name": "TimesNewRomanPSMT",
"embedded": false
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/font-embedding-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"fonts":[{"name":"Helvetica","embedded":false},{"name":"ABCDEE+SourceSansPro-Regular","embedded":true},{"name":"TimesNewRomanPSMT","embedded":false}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"fonts":[{"name":"Helvetica","embedded":false},{"name":"ABCDEE+SourceSansPro-Regular","embedded":true},{"name":"TimesNewRomanPSMT","embedded":false}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/font-embedding-check", 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
{
"fonts": [
{
"name": "Helvetica",
"embedded": false
},
{
"name": "ABCDEE+SourceSansPro-Regular",
"embedded": true
},
{
"name": "TimesNewRomanPSMT",
"embedded": false
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.font_embedding_check",
"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_items | 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. |