Application web Symfony pour signer des PDF avec une experience visuelle complete:
- upload et preview du PDF
- signature par dessin
- signature par image
- signature texte avec police handwriting
- signatures multiples (ajout/suppression)
- placement libre en live (déplacer + redimensionner)
- Upload d'un PDF (max 15 MB)
- Preview du PDF dans l'interface
- Edition de signatures:
- Dessin au canvas
- Import image (
png,jpg,jpeg) - Texte avec polices signature:
- Pacifico
- Dancing Script
- Great Vibes
- Sacramento
- Caveat
- Satisfy
- Gestion de plusieurs signatures:
- Ajouter une signature sur une page
- Sélectionner une signature
- Déplacer la signature dans la preview
- Redimensionner la signature (poignée)
- Supprimer la signature sélectionnée
- Supprimer toutes les signatures
- Export final du PDF signe en téléchargement direct
- Symfony 7.4
- Twig
- TailwindCSS (via CDN)
- PDF.js (preview canvas cote client)
- FPDI + FPDF (incrustation des signatures cote serveur)
- PHP >= 8.2
- Composer >= 2
- Symfony CLI (recommande pour le serveur local)
Extensions PHP utiles:
fileinfombstringctype
Depuis le dossier du projet:
cd app
composer installPuis configurer l'environnement local:
cp .env .env.localTu peux ensuite ajuster .env.local si besoin (APP_ENV, APP_SECRET, etc.).
cd app
symfony serveOuvrir ensuite l'URL affichée par Symfony CLI (par défaut https://127.0.0.1:8000).
cd app
php -S 127.0.0.1:8000 -t publicPuis ouvrir:
- Importer un PDF.
- Choisir le mode de signature (dessin, image, texte).
- Cliquer sur
Ajouter cette signature. - Positionner/redimensionner la signature dans la preview.
- Refaire les étapes 2-4 pour ajouter plusieurs signatures.
- Cliquer sur
Générer le PDF signé.
src/Controller/PdfSignController.php: endpoints upload/preview/sign/resetsrc/Service/PdfSigner.php: application des signatures dans le PDFtemplates/pdf_sign/index.html.twig: interface principalepublic/js/signature.js: logique front (preview live, drag/resize, multi-signatures)
- Les fichiers uploadés sont stockés temporairement dans
var/storage/pdfs. - Les rendus de signatures et PDF signés transitent par
var/storage/signaturesetvar/storage/signed. - Le fichier signé est supprimé du disque après envoi au navigateur (
deleteFileAfterSend).