Comparer deux PDF
Cette capacité met deux PDF côte à côte et signale leurs différences : passages ajoutés, retirés ou modifiés d’une version à l’autre. Au lieu de relire deux documents ligne à ligne, vous obtenez la liste des écarts, page par page — précieux quand un contrat ou un devis revient corrigé.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Deux versions, un enjeu : qu’a-t-on changé ?
Un contrat qui fait des allers-retours, un devis renvoyé « avec quelques ajustements », un règlement intérieur mis à jour : à chaque tour, la vraie question est de savoir ce qui a bougé. Relire l’intégralité à la main est lent et risqué, car une virgule déplacée dans une clause peut tout changer. La comparaison automatique lit les deux fichiers et isole les écarts, pour que votre attention se porte sur les passages réellement modifiés plutôt que sur les pages identiques.
Ce que le rapport met en évidence
Le résultat pointe le texte ajouté, le texte supprimé et les segments remaniés, en indiquant la page concernée. Vous voyez si un montant a changé, si un article a été retiré ou si un paragraphe a été réécrit. C’est une lecture ciblée : vous partez de la liste des différences, puis vous vérifiez chacune dans le document. L’outil compare le contenu textuel ; il ne juge pas le fond, il vous montre où regarder.
Fonctionnement et tarif
Vous soumettez les deux PDF, une tâche est créée, vous récupérez le rapport des différences. Le prix est de $0.002 par requête, en dollars US — un tarif volontairement plat, pensé pour être lancé aussi souvent que nécessaire. Cette capacité est en version bêta : elle fonctionne, et nous continuons d’en affiner le rendu sur les documents à mise en page complexe.
Cas d’usage
Contrat revenu corrigé
Sophie Nguyen reçoit la version signée d’un contrat annoncée comme « inchangée ». La comparaison révèle qu’une clause de délai a été modifiée : elle le voit avant de parapher, pas après.
Devis renégocié
Atelier Garnier SARL compare le devis initial et la version renvoyée par le client. Les lignes de prix retouchées ressortent aussitôt, sans recompter chaque poste à la main.
Mise à jour d’un règlement
Une copropriété diffuse une nouvelle version de son règlement. Le syndic compare avec l’ancienne pour lister précisément les articles amendés à l’ordre du jour.
Questions fréquentes
L’outil détecte-t-il aussi les petites modifications ?
Oui, jusqu’au mot ou au montant près : un chiffre changé, une négation ajoutée, une date déplacée sont signalés. Ce sont souvent ces détails discrets qui comptent le plus dans un document contractuel.
Peut-il comparer deux scans, ou faut-il du vrai texte ?
La comparaison porte sur le texte des PDF. Pour deux documents scannés en image, il faut d’abord leur ajouter une couche de texte par OCR ; sur des PDF déjà textuels, la comparaison est directe.
Le rapport indique-t-il la page de chaque différence ?
Oui. Chaque écart est rattaché à sa page, ce qui vous permet d’aller vérifier le passage concerné dans le document d’origine sans le parcourir en entier.
Pourquoi cette capacité est-elle en bêta ?
Elle est pleinement utilisable, mais nous en peaufinons le rendu sur les documents aux mises en page les plus retorses. Nous préférons l’afficher comme bêta plutôt que de survendre un résultat parfait en toutes circonstances.
Combien coûte une comparaison ?
$0.002 par requête, en dollars US, quel que soit le nombre de pages. Paiement par PayPal, sans inscription, avec facture sur demande pour vos frais professionnels.
Mes deux fichiers restent-ils confidentiels ?
Oui. La comparaison est automatisée, sans lecture humaine ; les fichiers transitent chiffrés et ne sont conservés que le temps de produire le rapport que vous récupérez.
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/compare \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/compare", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/compare",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/compare", 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"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/compare", 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"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.compare",
"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. |
413 | input_too_large | Entrée trop volumineuse : consultez la limite de taille de cette capacité. |