ConTeXt/Enveloppes et mise en page postale
← Publipostage et étiquettes
• Page suivante →
Retour vers le sommaire du Wikilivre
Enveloppes et mise en page postale (ConTeXt)
[modifier | modifier le wikicode]Objectifs de cette section
- comprendre les contraintes de mise en page postale (fenêtres, zones d'adresses) ;
- savoir créer une enveloppe imprimable (DL, C5, C6, etc.) ;
- positionner correctement adresse du destinataire et adresse expéditeur ;
- gérer différentes normes postales (France, Suisse, formats internationaux) ;
- produire automatiquement enveloppes et courriers à partir de données externes (CSV, publipostage) ;
- maîtriser deux exemples complets : enveloppe simple et enveloppe automatisée.
L’impression d’enveloppes ou d’adresses de courrier fait partie des usages courants de ConTeXt. Ce système permet de :
- composer des enveloppes standard (DL, C6, C5, ou personnalisées) ;
- positionner précisément l’adresse du destinataire ;
- produire des envois en série grâce au publipostage ;
- imprimer des enveloppes à fenêtre (fenêtres 90×45 mm, placements normalisés).
Cette page expose les principes essentiels ainsi que des exemples complets reproductibles.
1. Les formats d’enveloppes les plus utilisés
[modifier | modifier le wikicode]Voici les formats les plus courants en France et en Europe :
| Format | Dimensions | Usage |
|---|---|---|
| DL | 110 × 220 mm | Correspondance A4 pliée en 3 |
| C6 | 114 × 162 mm | Invitation, carte, A4 plié en 4 |
| C5 | 162 × 229 mm | A5 ou A4 plié en 2 |
| C4 | 229 × 324 mm | A4 non plié |
ConTeXt permet de créer des pages de la taille de ces enveloppes.
2. Principes généraux de mise en page postale
[modifier | modifier le wikicode]Les enveloppes à fenêtre ou les lettres destinées à être mises sous pli obéissent à des contraintes typographiques simples :
- 2.1 Position de l'adresse destinataire
La fenêtre standard française mesure environ :
- 90 mm × 45 mm
- située à environ :
* 20 mm du bord gauche * 45 mm du haut
Les courriers suisses ou allemands peuvent avoir des marges légèrement différentes.
- 2.2 Adresse expéditeur
Elle peut être placée :
- en haut à gauche,
- dans une zone petite (bloc expéditeur),
- ou au-dessus de l’adresse destinataire (selon la charte).
- 2.3 Police et lisibilité
Les recommandations générales :
- police sans serif propre (TeX Gyre Adventor, Helvetica, etc.) ;
- pas de gras ;
- pas d’italique ;
- pas de souligné ;
- interlignage simple ;
- éviter les abréviations ambiguës.
Astuce
Pour tester l’alignement de la fenêtre : activez \showframe ou \setuplayout[grid=yes] pour visualiser l’emplacement exact des blocs.
3. Exemple simple : Enveloppe DL (110 × 220 mm)
[modifier | modifier le wikicode]Créons une enveloppe au format réel (pour impression directe).
\setuppapersize[envelope][envelope] % page = enveloppe
\definepapersize[envelope][width=220mm,height=110mm]
\setuplayout[
location=middle,
backspace=20mm, % marge gauche
topspace=45mm, % marge avant la fenêtre
]
\setupbodyfont[10pt]
\starttext
% Adresse destinataire
{\bf Marie Durand} \par
12 rue des Lilas \par
75005 Paris
\stoptext
Ce code crée une enveloppe :
- de taille réelle ;
- avec un bloc adresse parfaitement placé pour une fenêtre standard.
4. Exemple avancé : enveloppe automatisée avec lecture depuis CSV
[modifier | modifier le wikicode]Nous allons générer une enveloppe par adresse, en utilisant un fichier `adresses.csv` :
Fichier CSV : adresses.csv
[modifier | modifier le wikicode]Nom,Adresse,CPVille
Marie Durand,12 rue des Lilas,75005 Paris
Jean Martin,5 avenue de Lyon,69002 Lyon
Claire Moreau,10 place des Arts,33000 Bordeaux
Comment fonctionne ce fichier CSV ?
[modifier | modifier le wikicode]Le fichier adresses.csv comporte trois colonnes séparées par des virgules :
| Colonne | Contenu | Exemple |
|---|---|---|
Nom |
Nom complet du destinataire | Marie Durand |
Adresse |
Rue + numéro | 12 rue des Lilas |
CPVille |
Code postal + ville | 75005 Paris |
Chaque ligne représente une adresse complète.
Voici comment l’interpréter :
Nom,Adresse,CPVille ← ligne d’en-têtes (toujours ignorée)
Marie Durand,12 rue...,75005 Paris
Jean Martin,5 avenue...,69002 Lyon
Claire Moreau,10 place...,33000 Bordeaux
Le script Lua utilise cette structure pour découper chaque ligne en trois parties grâce à la fonction :
nom, adr, cpville = string.match(ligne,"([^,]+),([^,]+),(.+)")
Explication détaillée :
([^,]+)signifie : “tous les caractères jusqu'à la prochaine virgule”.- Le CSV est donc découpé en :
*nom→ partie avant la 1ère virgule *adr→ partie entre la 1ère et la 2e virgule *cpville→ le reste de la ligne
ConTeXt/Lua ignore la première ligne (les en-têtes) grâce à :
if nom ~= "Nom" then
...
end
Une fois la ligne découpée, Lua stocke chaque entrée sous la forme d’un tableau :
{ nom="Marie Durand", adr="12 rue des Lilas", cpville="75005 Paris" }
Toutes les entrées sont ensuite collectées dans :
adresses = { entrée1, entrée2, entrée3, ... }
et ConTeXt génère une enveloppe par entrée.
Fichier enveloppes.tex
[modifier | modifier le wikicode]\setuplanguage[fr]
\mainlanguage[fr]
% définition du format de l’enveloppe
\definepapersize[envelope][width=220mm,height=110mm]
\setuppapersize[envelope][envelope]
\setuplayout[
backspace=20mm,
topspace=45mm, % bloc adressage standard
]
\setupbodyfont[10pt]
\startluacode
function lire_csv()
local f = io.open("adresses.csv","r")
local lignes = {}
for ligne in f:lines() do
local nom, adr, cpville = string.match(ligne,"([^,]+),([^,]+),(.+)")
if nom ~= "Nom" then
lignes[#lignes+1] = {nom=nom, adr=adr, cpville=cpville}
end
end
f:close()
return lignes
end
adresses = lire_csv()
\stopluacode
\starttext
\startluacode
for i,d in ipairs(adresses) do
context.startpage()
context(bold(d.nom)) context.par()
context(d.adr) context.par()
context(d.cpville) context.par()
context.stoppage()
end
\stopluacode
\stoptext
Résultat : 🟦 Un PDF avec autant de pages que d’adresses → une enveloppe par personne.
5. Ajouter l’adresse expéditeur
[modifier | modifier le wikicode]On peut définir un bloc expéditeur en haut à gauche :
\framed[frame=off,align=flushleft,width=50mm]{%
Société Exemple\crlf
24 boulevard Saint-Michel\crlf
75006 Paris
}
À placer avant le bloc destinataire.
6. Mise en page postale pour lettres à fenêtre
[modifier | modifier le wikicode]Beaucoup de lettres doivent s’aligner parfaitement avec une fenêtre :
\setuplayout[
backspace=20mm,
topspace=45mm,
]
\starttext
\rightaligned{Société Exemple\crlf 24 boulevard Saint-Michel\crlf 75006 Paris}
\vfill
{\bf Jean Dupont}\par
10 rue Centrale\par
69003 Lyon
\stoptext
Cette méthode garantit que, une fois pliée, la lettre présente l’adresse dans la fenêtre.
7. Erreurs fréquentes à éviter
[modifier | modifier le wikicode]Avertissement
- Ne pas mesurer la fenêtre sur l’enveloppe : utilisez les normes (20 mm gauche / 45 mm haut).
- Ne pas utiliser de polices fantaisistes → privilégier une sans serif.
- Ne pas ajouter de couleurs inutiles → risque de mauvaise lisibilité.
- Éviter les césures dans les adresses (forcer
\setupalign[nothyphenated]si nécessaire). - Ne pas oublier l'encodage UTF-8 pour le CSV → caractères accentués sinon corrompus.
8. Bonnes pratiques
[modifier | modifier le wikicode]- Faire un test sur papier brouillon avant d’utiliser les enveloppes définitives ;
- Utiliser
\showframependant toute la phase de test ; - Préférer des blocs propres et sobres : pas de cadres inutiles ;
- Tester d'abord une seule enveloppe avant le publipostage complet ;
- Documenter les paramètres (marges) dans des commentaires.
← Publipostage et étiquettes
• Page suivante →
Retour vers le sommaire du Wikilivre