Calculateur d'étiquettes par feuille, marges et espacements
Ce calculateur de grille transforme les dimensions physiques d’une feuille en une disposition pratique de rangées et de colonnes.
Lancer gratuitement
Indiquez la largeur et la hauteur de la page, les dimensions d’une étiquette, les quatre marges extérieures ainsi que les espacements horizontal et vertical. Le résultat précise combien d’étiquettes entières tiennent, quelle surface utile la grille occupe et quel espace reste disponible. Vous pouvez employer des millimètres, pouces, points ou toute autre unité, à condition de conserver la même partout. Le calcul est déterministe, sans accès réseau, et refuse toute configuration incapable de recevoir une seule étiquette.
Définissez le rectangle imprimable avant le comptage
Une feuille d’étiquettes est rarement exploitable jusqu’aux bords. Les imprimantes possèdent des zones non imprimables, les supports prédécoupés peuvent commencer en retrait et les gabarits de production réservent souvent une place aux repères. Saisissez d’abord la largeur et la hauteur totales, puis décrivez cette réserve avec les marges gauche, droite, supérieure et inférieure. Le calculateur soustrait les marges opposées afin d’obtenir le rectangle utile. Toutes les valeurs doivent partager une unité : si la feuille est en millimètres, les étiquettes, marges et espacements doivent l’être aussi. Les pouces ou points conviennent également, sans conversion. La largeur commande les colonnes et la hauteur les rangées. Les dimensions de l’étiquette décrivent le produit fini, pas le pas jusqu’à l’étiquette suivante. Une étiquette plus grande que la feuille provoque une erreur explicite. La demande est également refusée si elle tient sur la feuille brute mais plus dans la zone réduite par les marges.
Comprenez l’influence des espacements sur la grille
Les espacements sont les vides entre étiquettes voisines ; ils n’apparaissent qu’entre les éléments, jamais après le premier ou le dernier bord. Pour les colonnes, le calcul détermine combien de répétitions largeur d’étiquette plus espace horizontal tiennent, tout en restituant l’espace final inutile. Il prend la partie entière de la largeur utile augmentée d’un espace, divisée par la largeur d’étiquette augmentée du même espace. Les rangées suivent la formule analogue. Cette méthode évite d’ajouter à tort un vide après la dernière étiquette et de sous-estimer un agencement exactement ajusté. Un espacement nul convient aux étiquettes jointives. Les valeurs négatives sont refusées, car le chevauchement relève d’un autre modèle. Les dimensions occupées comprennent toutes les étiquettes complètes et seulement les espaces intérieurs. L’espace restant est mesuré dans le rectangle utile ; vous pouvez donc centrer ensuite la grille ou comparer des supports sans confondre marges extérieures et réserve intérieure.
Exploitez le résultat pour vos gabarits et automatisations
La valeur principale, labels_per_sheet, multiplie les colonnes complètes par les rangées complètes. Servez-vous de cet entier pour estimer le nombre de feuilles d’un tirage, en sachant que l’outil conserve une orientation fixe et ne fait pivoter aucune étiquette. Les champs de colonnes et rangées indiquent aussi à un générateur PDF, un logiciel graphique ou un tableur combien de cellules répétées créer sur chaque axe. Les dimensions occupées et restantes constituent une trace vérifiable du choix. Si le vide paraît excessif, vérifiez que vous avez saisi uniquement l’intervalle libre, et non le pas complet comprenant déjà l’étiquette. La même fonction déterministe s’exécute dans le navigateur et via l’API, pour des résultats cohérents entre essais et production. L’utilisation sur cette page est gratuite ; une requête API réussie coûte $0.002. Aucune dimension n’est conservée et aucun catalogue commercial n’est interrogé. Avant un grand tirage, contrôlez les tolérances, le fond perdu, le repérage de découpe et le gabarit du fabricant.
Cas d’usage
Préparer une feuille d’autocollants personnalisée
Convertissez page, marges de sécurité, format et intervalles de coupe en rangées et colonnes avant de créer le visuel.
Estimer les feuilles d’un tirage
Utilisez la capacité par feuille pour acheter le support et planifier les lots d’impression.
Produire des grilles documentaires reproductibles
Transmettez colonnes, rangées et dimensions occupées à un flux PDF ou de mise en page sans refaire les calculs de bord.
Questions fréquentes
Quelles unités dois-je employer ?
Choisissez toute unité de longueur, notamment millimètres ou pouces, mais gardez-la identique pour la feuille, l’étiquette, les marges et les espacements.
Le calculateur fait-il pivoter les étiquettes ?
Non. Il respecte la largeur et la hauteur saisies. Intervertissez ces deux valeurs pour tester l’orientation tournée.
Les espacements sont-ils ajoutés aux bords ?
Non. Ils existent uniquement entre étiquettes voisines ; le dégagement périphérique se règle avec les quatre marges.
Que se passe-t-il si une étiquette dépasse la feuille ?
Le calcul renvoie une erreur de saisie au lieu d’une grille vide. Une zone utile trop petite après marges est également refusée.
Quel est le prix du calcul par API ?
Chaque requête API réussie coûte $0.002. Vous pouvez aussi exécuter gratuitement le même calcul déterministe dans votre navigateur.
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/doc/label-sheet-layout-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"sheet_width":210,"sheet_height":297,"label_width":63.5,"label_height":38.1}'const res = await fetch("https://api.kit.forhosting.com/doc/label-sheet-layout-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"sheet_width": 210,
"sheet_height": 297,
"label_width": 63.5,
"label_height": 38.1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/label-sheet-layout-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"sheet_width": 210,
"sheet_height": 297,
"label_width": 63.5,
"label_height": 38.1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/label-sheet-layout-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"sheet_width":210,"sheet_height":297,"label_width":63.5,"label_height":38.1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"sheet_width":210,"sheet_height":297,"label_width":63.5,"label_height":38.1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/label-sheet-layout-calc", 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
{
"sheet_width": 210,
"sheet_height": 297,
"label_width": 63.5,
"label_height": 38.1
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.label_sheet_layout_calc",
"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. |