Étiquettes par feuille
Le calculateur d’étiquettes par feuille détermine le nombre de lignes, de colonnes et la capacité totale d’une grille rectangulaire avant l’impression ou la commande du support.
Lancer gratuitement
Indiquez les dimensions de la feuille et de l’étiquette dans une même unité, puis réservez les marges supérieure, droite, inférieure et gauche requises par l’imprimante. Les espacements horizontal et vertical facultatifs représentent la distance entre les étiquettes. Le résultat fournit aussi les dimensions utiles, occupées et inutilisées afin de vérifier la disposition sans mise à l’échelle implicite.
Saisissez toutes les dimensions dans la même unité
Commencez par la largeur et la hauteur physiques de la feuille et d’une étiquette finie. Vous pouvez employer des millimètres, des pouces, des points ou une autre unité, car le calcul conserve les valeurs sans les convertir. Tous les champs doivent impérativement utiliser la même unité : ne combinez pas une feuille en millimètres et une étiquette en pouces. Saisissez le format de découpe réel, et non celui du visuel après redimensionnement par le pilote d’impression. Chaque dimension doit être un nombre fini strictement positif, ce qui permet de détecter une valeur absente, négative ou textuelle avant d’obtenir un résultat trompeur. L’orientation compte également : sheet_width et label_width désignent l’axe horizontal, tandis que les champs de hauteur désignent l’axe vertical. Si une rotation est autorisée, effectuez un second calcul en échangeant la largeur et la hauteur de l’étiquette, puis comparez les totaux. Le calculateur ne choisit pas automatiquement, car le visuel, le sens du matériau, l’applicateur ou la lecture peuvent imposer une orientation.
Réservez les marges et espacements avant le comptage
Les marges représentent les zones de la feuille qui ne peuvent recevoir aucune étiquette. Renseignez séparément les valeurs supérieure, droite, inférieure et gauche afin de reproduire une zone non imprimable asymétrique ou des chutes différentes sur chaque bord. Toute marge omise vaut zéro. La somme des marges gauche et droite peut égaler la largeur de la feuille, mais jamais la dépasser ; la même règle s’applique verticalement. horizontal_gap indique la distance libre entre deux colonnes voisines et vertical_gap celle entre deux lignes. Un espacement existe uniquement entre les étiquettes, jamais après la dernière : trois étiquettes sur une ligne produisent donc deux espacements horizontaux. Ces deux valeurs sont nulles par défaut et ne peuvent être négatives. La largeur utile correspond à la largeur de feuille diminuée des marges latérales ; la hauteur utile suit le même principe. Cette méthode évite l’erreur fréquente consistant à ajouter un espacement après la dernière étiquette et à sous-estimer une disposition qui tient exactement.
Interprétez la capacité et l’espace restant
Le résultat contient columns, rows et labels_per_sheet. Les nombres de colonnes et de lignes sont entiers, puisqu’une étiquette qui ne tient que partiellement est inutilisable ; leur produit donne la capacité totale. Une disposition valide peut renvoyer zéro si l’espace disponible est plus petit qu’une étiquette : il s’agit d’un résultat géométrique, pas d’une erreur de saisie. Les dimensions utiles décrivent la surface restante après les marges. Les dimensions occupées couvrent les étiquettes et leurs espacements internes, tandis que les dimensions inutilisées mesurent le reliquat. Ce reliquat n’est ni réparti ni centré automatiquement. Pour centrer la grille, ajoutez la moitié de unused_width à la marge gauche et la moitié de unused_height à la marge supérieure lors du placement initial. Le calcul suppose des étiquettes rectangulaires alignées sur les axes dans une grille régulière. Il n’ajoute ni fond perdu, ni traits de coupe, ni tolérance d’imprimante, ni dégagement pour les coins arrondis ou repères de calage, sauf si vous les intégrez aux dimensions, marges ou espacements.
Cas d’usage
Planifier un support personnalisé
Comparez les dimensions et espacements à la feuille choisie avant de commander formes, support ou production.
Configurer un modèle d’impression
Obtenez des comptes exacts et l’espace restant pour placer les étiquettes dans un document ou logiciel de mise en page.
Comparer les orientations
Calculez les orientations normale et tournée afin de retenir la grille valide offrant la meilleure capacité.
Questions fréquentes
Quel est le tarif ?
Chaque requête API coûte $0.002. Le même calcul déterministe peut aussi s’exécuter dans le navigateur.
Quelles unités de mesure puis-je employer ?
Toute unité linéaire convient, notamment les millimètres et les pouces, si toutes les dimensions utilisent la même unité.
Un espacement suit-il la dernière étiquette ?
Non. Les espacements se trouvent seulement entre étiquettes voisines ; n étiquettes en exigent n moins un.
Que se passe-t-il si une étiquette ne tient pas ?
Le calculateur renvoie zéro dans la direction concernée, et labels_per_sheet vaut également zéro.
Le calculateur tourne-t-il les étiquettes pour optimiser la disposition ?
Non. Il respecte l’orientation fournie. Échangez label_width et label_height dans une autre requête pour tester la rotation.
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/labels-per-sheet \
-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/labels-per-sheet", {
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/labels-per-sheet",
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/labels-per-sheet", 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/labels-per-sheet", 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.labels_per_sheet",
"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. |