- Remplacement de DocuSeal par solution souveraine Odentas Sign - Système d'authentification OTP pour signataires (bcryptjs + JWT) - 8 routes API: send-otp, verify-otp, sign, pdf-url, positions, status, webhook, signers - Interface moderne avec canvas de signature et animations (framer-motion, confetti) - Système de templates pour auto-détection des positions de signature (CDDU, RG, avenants) - PDF viewer avec @react-pdf-viewer (compatible Next.js) - Stockage S3: source/, signatures/, evidence/, signed/, certs/ - Tables Supabase: sign_requests, signers, sign_positions, sign_events, sign_assets - Evidence bundle automatique (JSON metadata + timestamps) - Templates emails: OTP et completion - Scripts Lambda prêts: pades-sign (KMS seal) et tsaStamp (RFC3161) - Mode test détecté automatiquement (emails whitelist) - Tests complets avec PDF CDDU réel (2 signataires)
3 KiB
3 KiB
Templates de positions de signature
Ce dossier contient les positions pré-configurées des signatures pour chaque type de document.
Format
{
"templateName": "contrat_cddu",
"description": "Contrat CDDU mono/multi-mois",
"pdfPattern": "contrat_cddu_.*\\.pdf",
"positions": [
{
"role": "Employeur",
"page": 3,
"x": 50,
"y": 150,
"width": 200,
"height": 80
},
{
"role": "Salarié",
"page": 3,
"x": 350,
"y": 150,
"width": 200,
"height": 80
}
]
}
Système de coordonnées PDF
- Origine (0,0) : Coin INFÉRIEUR GAUCHE de la page
- X : De gauche à droite (0 → largeur page)
- Y : De bas en haut (0 → hauteur page)
- Page A4 : 595x842 points
Exemples de positions courantes
Haut de page : y = 750-800
Milieu de page : y = 400-450
Bas de page : y = 50-150
Gauche : x = 50-100
Centre : x = 250-300
Droite : x = 400-500
Création d'un nouveau template
Méthode 1 : Mesure manuelle
- Ouvrir le PDF dans Adobe Acrobat ou un éditeur
- Activer l'outil de mesure
- Noter les coordonnées X,Y du coin inférieur gauche de la zone de signature
- Noter la largeur et hauteur souhaitées
- Créer le fichier JSON
Méthode 2 : Test et ajustement
- Créer un template avec des positions estimées
- Tester avec
create-real-signature.js - Signer le document
- Ajuster les positions si nécessaire
- Re-tester jusqu'à satisfaction
Méthode 3 : Depuis DocuSeal
Si vous avez déjà un document configuré dans DocuSeal:
- Noter où les zones de signature sont placées visuellement
- Convertir en coordonnées PDF (attention: DocuSeal utilise une origine en haut-gauche)
- Formule de conversion:
y_pdf = hauteur_page - y_docuseal - hauteur_signature
Templates disponibles
contrat_cddu.json
Contrat CDDU standard (3 pages)
- Employeur: Page 3, bas gauche
- Salarié: Page 3, bas droite
contrat_rg.json
Contrat Régime Général
- Employeur: Page 2, bas gauche
- Salarié: Page 2, bas droite
avenant.json
Avenant de contrat
- Employeur: Page 1, bas gauche
- Salarié: Page 1, bas droite
Utilisation dans le code
const fs = require('fs');
// Charger un template
const template = JSON.parse(
fs.readFileSync('./signature-templates/contrat_cddu.json', 'utf-8')
);
// Utiliser les positions
const positions = {};
template.positions.forEach(p => {
positions[p.role] = {
page: p.page,
x: p.x,
y: p.y,
width: p.width,
height: p.height,
};
});
Auto-détection
Le script create-real-signature.js peut auto-détecter le template à utiliser basé sur:
- Le nom du fichier (regex pattern matching)
- Le type de document (détecté dans les métadonnées)
- Le nombre de pages
Maintenance
Quand créer un nouveau template:
- Nouveau type de contrat
- Changement de mise en page
- Ajout de nouveaux rôles de signataires
Quand mettre à jour un template existant:
- Les signatures sont mal positionnées
- Changement de format de document
- Feedback utilisateurs