Comment personnaliser l’apparence d’une signature avec un dégradé en Java
Vous avez déjà remarqué que certains documents signés numériquement ont l’air, eh bien… ennuyeux ? Juste du texte simple sur un fond blanc ? Si vous développez une application qui nécessite des signatures de documents à l’aspect professionnel — pensez aux contrats, factures ou certificats — vous voudrez quelque chose qui se démarque tout en restant fonctionnel. Dans ce tutoriel, vous apprendrez à personnaliser l’apparence d’une signature en appliquant un pinceau à dégradé en Java. Créer une signature numérique à dégradé ajoute non seulement une finition visuelle, mais renforce également l’identité de marque et améliore l’authenticité perçue.
Réponses rapides
- Qu’est-ce qu’une signature numérique à dégradé ? Un élément visuel signé numériquement qui utilise un dégradé de couleur pour son arrière‑plan ou le remplissage du texte.
- Quelle bibliothèque prend en charge cela en Java ? GroupDocs.Signature for Java fournit une prise en charge native des pinceaux à dégradé.
- Les dégradés affectent-ils la sécurité cryptographique ? Non. Le dégradé est purement visuel ; la signature numérique sous‑jacente reste inchangée.
- Quelle version de Java est requise ? JDK 8 ou supérieur (JDK 11+ recommandé).
- Une licence est‑elle nécessaire pour la production ? Oui — une licence valide GroupDocs.Signature est requise pour une utilisation non‑évaluation.
Comment personnaliser l’apparence d’une signature avec un pinceau à dégradé en Java
Dans cette section, nous parcourrons l’ensemble du processus — de l’installation de la bibliothèque à l’application d’un pinceau à dégradé linéaire sur une signature texte. À la fin, vous serez capable de créer des objets de signature numérique à dégradé qui ont l’air soignés et qui correspondent aux couleurs de votre marque.
Pourquoi utiliser des pinceaux à dégradé pour les signatures numériques ?
Avant de plonger dans le code, parlons des raisons pour lesquelles vous pourriez vouloir des effets de dégradé dès le départ.
Cohérence de la marque : Si votre entreprise utilise des palettes de couleurs spécifiques, les signatures à dégradé aident à maintenir la cohérence visuelle sur tous les documents. Une société de services financiers pourrait utiliser des dégradés bleu‑vers‑blanc pour inspirer la confiance, tandis qu’une agence créative pourrait opter pour des transitions de couleur vibrantes.
Hiérarchie du document : Les effets de dégradé peuvent aider à distinguer les types de signatures. Vous pourriez utiliser des dégradés subtils pour les approbations standard et des dégradés plus marqués pour les validations exécutives ou les autorisations légales.
Attrait visuel sans compromis : Voici le point fort — vous obtenez un style professionnel sans sacrifier la sécurité cryptographique de votre signature numérique. Le dégradé est purement visuel ; la validité de votre signature reste intacte.
Réduction de la perception de falsification : Les documents avec des signatures stylisées semblent souvent plus authentiques aux yeux des utilisateurs finaux. Bien que cela n’augmente pas la sécurité réelle, cela améliore la légitimité perçue (ce qui compte pour la confiance des utilisateurs).
Ce que vous allez apprendre
À la fin de ce guide, vous serez capable de :
- Configurer GroupDocs.Signature for Java dans votre projet (Maven, Gradle ou manuel)
- Créer des signatures basées sur du texte avec des effets de pinceau à dégradé linéaire
- Personnaliser l’apparence de la signature, son positionnement et sa transparence
- Résoudre les problèmes courants qui bloquent les développeurs
- Optimiser les performances pour les applications en production
- Appliquer les meilleures pratiques pour un code de signature maintenable
Prérequis
Avant de commencer, assurez‑vous d’avoir :
- Java Development Kit (JDK) : version 8 ou supérieure (je recommande JDK 11+ pour de meilleures performances)
- IDE : IntelliJ IDEA, Eclipse ou VS Code avec les extensions Java
- GroupDocs.Signature for Java Library : nous l’ajouterons via Maven ou Gradle
- Connaissances de base en Java : vous devez être à l’aise avec les objets, les méthodes et la gestion des exceptions
Bibliothèques requises
Ajoutez GroupDocs.Signature à votre projet en utilisant l’outil de construction de votre choix.
Pour Maven (ajoutez à votre pom.xml) :
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Pour Gradle (ajoutez à votre build.gradle) :
implementation 'com.groupdocs:groupdocs-signature:23.12'
Installation manuelle : si vous n’utilisez pas d’outil de construction (bien que je le recommande), vous pouvez télécharger le fichier JAR directement depuis GroupDocs Signatures releases et l’ajouter au classpath de votre projet.
Acquisition de licence
GroupDocs propose un essai gratuit idéal pour les tests et le développement. Pour une utilisation en production, vous aurez besoin d’une licence. Voici comment démarrer :
- Essai gratuit : visitez GroupDocs Free Trial pour télécharger sans engagement
- Licence temporaire : obtenez une licence temporaire de 30 jours depuis GroupDocs Temporary License pour des tests complets
- Licence complète : lorsque vous êtes prêt pour la production, consultez leurs options tarifaires
La version d’essai comporte des filigranes d’évaluation, donc procurez‑vous une licence temporaire si vous créez quelque chose destiné aux clients.
Configuration de GroupDocs.Signature pour Java
Préparons votre environnement de développement. Cette configuration fonctionne que vous démarriez un nouveau projet ou que vous l’intégriez à une application existante.
Étapes d’installation
1. Ajouter la dépendance (déjà abordé ci‑dessus — Maven ou Gradle)
2. Vérifier l’installation en créant une classe de test simple :
import com.groupdocs.signature.Signature;
public class SignatureTest {
public static void main(String[] args) {
System.out.println("GroupDocs.Signature loaded successfully!");
}
}
Si cela compile sans erreur, vous êtes prêt à continuer.
3. Configurer la structure de répertoires de vos documents. J’aime organiser les choses ainsi :
project-root/
├── src/
├── resources/
│ ├── input/ // Source documents to sign
│ └── output/ // Signed documents
└── pom.xml (or build.gradle)
4. Initialisation de base (c’est ici que la magie commence) :
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
public class BasicSignatureSetup {
public static void main(String[] args) {
try {
// Initialize with your source document path
Signature signature = new Signature("resources/input/sample.pdf");
// Your signing code will go here
signature.dispose(); // Always clean up resources
} catch (GroupDocsSignatureException e) {
System.err.println("Signature error: " + e.getMessage());
e.printStackTrace();
} catch (Exception e) {
System.err.println("General error: " + e.getMessage());
e.printStackTrace();
}
}
}
Astuce pro : enveloppez toujours votre objet Signature dans une instruction try‑with‑resources ou appelez manuellement dispose(). GroupDocs conserve des poignées de fichiers, et les oublier entraîne des erreurs « file in use » (demandez‑moi comment je le sais).
Guide de mise en œuvre : créer des signatures à dégradé
Passons maintenant à la partie amusante — construisons une signature avec un effet de pinceau à dégradé. Nous commencerons simplement et ajouterons de la complexité au fur et à mesure.
Étape 1 : initialiser les options de signature
Tout d’abord, nous définissons ce que notre signature dira et comment elle se comportera. La classe TextSignOptions gère les signatures basées sur du texte :
import com.groupdocs.signature.domain.enums.HorizontalAlignment;
import com.groupdocs.signature.domain.enums.VerticalAlignment;
import com.groupdocs.signature.domain.signatures.TextSignOptions;
TextSignOptions options = new TextSignOptions("John Smith");
Cela crée une signature basique avec le texte « John Smith ». Simple, non ? Mais telle quelle, ce serait juste du texte noir sur un fond transparent — ennuyeux. C’est là que les dégradés entrent en jeu.
Pourquoi séparer les options de l’objet signature ? Ce modèle de conception vous permet de réutiliser la même configuration de signature sur plusieurs documents. Configurez‑la une fois, appliquez‑la partout.
Étape 2 : personnaliser l’arrière‑plan avec un pinceau à dégradé
Voici où votre signature commence à paraître professionnelle. Nous créerons un dégradé linéaire qui passe du vert au blanc :
import com.groupdocs.signature.domain.Background;
import com.groupdocs.signature.domain.extensions.brushes.LinearGradientBrush;
import java.awt.Color;
// Create the background container
Background background = new Background();
background.setColor(Color.GREEN); // Fallback color (rarely seen)
background.setTransparency(0.5f); // 50% transparency (0.0 = opaque, 1.0 = invisible)
// Define the gradient: start color, end color, and angle
LinearGradientBrush brush = new LinearGradientBrush(
Color.GREEN, // Start color (left/top)
Color.WHITE, // End color (right/bottom)
45 // Angle in degrees (45 = diagonal)
);
// Apply the brush to the background
background.setBrush(brush);
options.setBackground(background);
Décomposons ce qui se passe :
- Couleur de base :
setColor(Color.GREEN)définit une couleur de secours solide. Si le dégradé échoue (rare, mais possible), cette couleur apparaît. - Transparence :
setTransparency(0.5f)rend votre signature semi‑transparente. C’est crucial pour les documents où vous ne voulez pas masquer le texte sous‑jacent. Des valeurs proches de 0 sont plus opaques ; proches de 1 sont plus transparentes. - Angle du dégradé : le
45signifie que le dégradé s’écoule diagonalement du coin supérieur gauche au coin inférieur droit. Utilisez0pour un dégradé horizontal (gauche → droite),90pour vertical (haut → bas), ou tout angle intermédiaire.
Le choix des couleurs compte : vert‑vers‑blanc suggère une approbation ou une confirmation (pensée « go »). Bleu‑vers‑blanc transmet confiance et professionnalisme. Rouge‑vers‑blanc peut indiquer urgence ou importance. Choisissez des couleurs qui correspondent à l’objectif du document et à l’identité de votre marque.
Étape 3 : définir le positionnement de la signature
Nous devons maintenant indiquer où la signature doit apparaître dans le document. Le positionnement est plus délicat qu’il n’y paraît, car il faut équilibrer visibilité et non‑obstruction du contenu important :
import com.groupdocs.signature.domain.Padding;
// Set signature dimensions (in pixels or points, depending on document)
options.setWidth(100);
options.setHeight(80);
// Center the signature both horizontally and vertically
options.setVerticalAlignment(VerticalAlignment.Center);
options.setHorizontalAlignment(HorizontalAlignment.Center);
// Add margins to fine‑tune positioning
Padding padding = new Padding();
padding.setTop(20); // 20 units from the alignment point
padding.setRight(20); // 20 units from the right edge
options.setMargin(padding);
Comprendre l’alignement vs. la marge : pensez à l’alignement comme le point d’ancrage et à la marge comme le décalage. Si vous définissez HorizontalAlignment.Center, la signature se centre sur la page, puis la marge la décale par rapport à ce point central. Cette approche en deux étapes vous donne un contrôle précis.
Modèles de positionnement courants :
- Coin inférieur droit :
HorizontalAlignment.Right,VerticalAlignment.Bottom, avec une marge supérieure négative - Zone d’en‑tête :
VerticalAlignment.Top,HorizontalAlignment.Right, avec un remplissage - Centre de la page : les deux alignements à
Center, ajustez les marges à votre goût
Considérations de taille : les valeurs setWidth(100) et setHeight(80) conviennent à la plupart des documents standards, mais vous pourriez devoir les ajuster selon la taille du document et la longueur du texte de la signature. Si votre texte est tronqué, augmentez la largeur. S’il paraît trop à l’étroit, augmentez la hauteur ou réduisez la taille de police.
Étape 4 : appliquer la signature et enregistrer
Enfin, signons le document et sauvegardons le résultat. C’est ici que toutes vos configurations se combinent :
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.domain.SignResult;
try {
// Initialize signature with source document
Signature signature = new Signature("resources/input/sample.pdf");
// Apply the signature options we configured above
SignResult result = signature.sign("resources/output/SignedWithGradient.pdf", options);
// Check the result
if (result.getSucceeded().size() > 0) {
System.out.println("Document signed successfully!");
System.out.println("Signed with " + result.getSucceeded().size() + " signature(s)");
} else {
System.out.println("No signatures were applied.");
}
// Clean up
signature.dispose();
} catch (Exception e) {
System.err.println("Error signing document: " + e.getMessage());
e.printStackTrace();
}
Que fait la méthode sign() ? Elle prend votre document source, applique les options de signature configurées, puis écrit un nouveau fichier contenant la signature intégrée. Le fichier original reste intact (bonne pratique : ne jamais modifier directement les documents source).
L’objet SignResult vous indique ce qui s’est passé. Vérifiez getSucceeded() pour voir quelles signatures ont été appliquées avec succès et getFailed() pour détecter les éventuels échecs.
Exemple complet fonctionnel
Voici tout rassemblé dans une classe unique, exécutable, que vous pouvez copier et tester immédiatement :
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.domain.Background;
import com.groupdocs.signature.domain.Padding;
import com.groupdocs.signature.domain.SignResult;
import com.groupdocs.signature.domain.enums.HorizontalAlignment;
import com.groupdocs.signature.domain.enums.VerticalAlignment;
import com.groupdocs.signature.domain.extensions.brushes.LinearGradientBrush;
import com.groupdocs.signature.domain.signatures.TextSignOptions;
import java.awt.Color;
public class GradientSignatureExample {
public static void main(String[] args) {
try {
// Initialize signature object with source document
Signature signature = new Signature("resources/input/sample.pdf");
// Configure text signature options
TextSignOptions options = new TextSignOptions("John Smith");
// Create gradient background
Background background = new Background();
background.setColor(Color.GREEN);
background.setTransparency(0.5f);
LinearGradientBrush brush = new LinearGradientBrush(
Color.GREEN, // Start color
Color.WHITE, // End color
45 // Angle
);
background.setBrush(brush);
options.setBackground(background);
// Set positioning
options.setWidth(100);
options.setHeight(80);
options.setVerticalAlignment(VerticalAlignment.Center);
options.setHorizontalAlignment(HorizontalAlignment.Center);
Padding padding = new Padding();
padding.setTop(20);
padding.setRight(20);
options.setMargin(padding);
// Sign and save
SignResult result = signature.sign(
"resources/output/SignedWithGradient.pdf",
options
);
System.out.println("Success! Signatures applied: " +
result.getSucceeded().size());
signature.dispose();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
}
}
}
Exécutez ce code avec un fichier PDF placé dans votre répertoire resources/input/, et vous obtiendrez une version signée avec un bel effet de dégradé.
Cas d’utilisation courants
Examinons quand et où les signatures à dégradé sont les plus pertinentes dans des applications réelles.
1. Systèmes de gestion de contrats d’entreprise
Scénario : Vous construisez un flux de travail d’approbation de contrats où plusieurs parties signent les documents à différentes étapes.
Application : Utilisez des couleurs de dégradé différentes pour représenter les niveaux d’approbation — les chefs de département obtiennent un dégradé bleu‑vers‑blanc, les juristes un dégradé or‑vers‑blanc, les cadres un dégradé bleu‑foncé‑vers‑bleu‑clair. Cette hiérarchie visuelle aide les utilisateurs à voir instantanément qui a signé et à quel niveau.
2. Traitement automatisé des factures
Scénario : Votre système comptable signe automatiquement les factures générées avant de les envoyer aux clients.
Application : Un dégradé subtil aux couleurs de votre marque rend les factures plus professionnelles et plus difficiles à falsifier. Gardez le dégradé discret afin que la facture reste lisible.
3. Génération de certificats
Scénario : Vous créez des certificats de réussite pour des cours en ligne ou des programmes de formation.
Application : Des dégradés vibrants (or‑vers‑jaune ou bleu‑vers‑violet) donnent aux certificats un aspect officiel et partageable. L’attrait visuel augmente la valeur perçue et encourage le partage sur les réseaux sociaux.
4. Filigrane de documents
Scénario : Vous devez marquer les documents comme « Brouillon », « Confidentiel » ou « Approuvé ».
Application : Bien que ce ne soit pas une signature à proprement parler, vous pouvez réutiliser la technique du dégradé avec du texte transparent pour créer des filigranes accrocheurs qui n’obscurcissent pas le contenu sous‑jacent. Réglez la transparence à 0,7‑0,8 pour un effet subtil.
Dépannage des problèmes courants
Voici les problèmes que j’ai rencontrés (et résolus) en travaillant avec les signatures à dégradé. Gagnez du temps de débogage.
Problème 1 : « Le fichier est utilisé par un autre processus »
Symptômes : votre application lève une exception indiquant qu’elle ne peut pas accéder au fichier, même si aucun autre programme ne l’a ouvert.
Cause : vous avez oublié d’appeler signature.dispose() ou de fermer correctement l’objet Signature. Java conserve le handle du fichier jusqu’à la collecte des ordures.
Solution :
// Always use try‑with‑resources (Java 7+)
try (Signature signature = new Signature("path/to/document.pdf")) {
// Your signing code here
} catch (Exception e) {
// Handle errors
}
// File handle automatically released when try block exits
Ou manuellement :
Signature signature = null;
try {
signature = new Signature("path/to/document.pdf");
// Your signing code
} finally {
if (signature != null) {
signature.dispose();
}
}
Problème 2 : La signature apparaît mais le dégradé ne s’affiche pas
Symptômes : le texte de la signature est visible, mais il est d’une couleur unie.
Causes possibles :
- Le lecteur PDF ne supporte pas les dégradés – testez avec Adobe Acrobat, Foxit Reader ou un navigateur moderne.
- Transparence trop élevée –
setTransparency(1.0f)rend le dégradé invisible. Essayez 0.3‑0.7. - Le pinceau n’a pas été appliqué – assurez‑vous d’appeler
background.setBrush(brush)etoptions.setBackground(background).
Astuce de débogage : commencez avec des couleurs à fort contraste (par ex. Color.RED à Color.BLUE). Si le dégradé n’apparaît toujours pas, la configuration est incorrecte, pas les couleurs.
Problème 3 : La signature chevauche du contenu important du document
Symptômes : votre signature à dégradé est belle mais masque du texte ou des champs de formulaire cruciaux.
Solution : ajustez le positionnement de façon dynamique selon le contenu du document. Voici un modèle que j’utilise :
// For documents with content primarily at the top
options.setVerticalAlignment(VerticalAlignment.Bottom);
Padding padding = new Padding();
padding.setBottom(30); // Leave space from bottom edge
options.setMargin(padding);
// For documents that need signatures in specific locations
options.setVerticalAlignment(VerticalAlignment.Top);
options.setHorizontalAlignment(HorizontalAlignment.Left);
padding.setTop(600); // Absolute Y position
padding.setLeft(400); // Absolute X position
options.setMargin(padding);
Approche améliorée : analysez d’abord le document pour repérer les espaces vides, puis positionnez les signatures automatiquement via le code.
Problème 4 : Problèmes de performances avec de gros documents
Symptômes : la signature prend beaucoup de temps sur des PDF contenant de nombreuses pages ou des images haute résolution.
Cause : GroupDocs traite l’ensemble du document, et les dégradés complexes ajoutent une surcharge de rendu.
Solutions :
- Signer uniquement les pages spécifiques au lieu du fichier complet.
- Utiliser des dégradés plus simples – les dégradés linéaires à deux couleurs sont plus rapides que les radiaux ou à multiples arrêts.
- Réduire la taille de la signature – une largeur/hauteur plus petite diminue le travail de rendu.
- Traiter de façon asynchrone – ne bloquez pas le thread principal pendant la signature.
Exemple de performance :
// Faster configuration
TextSignOptions options = new TextSignOptions("Approved");
options.setWidth(80); // Smaller than default 100
options.setHeight(60); // Smaller than default 80
// Simple horizontal gradient (fastest)
LinearGradientBrush brush = new LinearGradientBrush(
Color.BLUE,
Color.WHITE,
0 // Horizontal gradient
);
Problème 5 : La couleur ne correspond pas aux attentes
Symptômes : le dégradé apparaît différemment de ce que vous avez spécifié dans le code.
Causes :
- Différences d’espace colorimétrique RGB –
Coloren Java utilise le sRGB, mais les PDF peuvent rendre dans un autre espace. - Interactions de transparence – les dégradés semi‑transparents se mélangent avec le fond du document, modifiant la couleur perçue.
- Calibration de l’écran – ce que vous voyez sur votre moniteur peut différer de celui des autres utilisateurs.
Solution : testez les documents signés sur plusieurs appareils et visionneuses PDF. Si la cohérence de la marque est cruciale, utilisez des valeurs RGB exactes et vérifiez sur différentes plateformes. Gardez l’opacité autour de 0.3‑0.5 pour minimiser les variations de couleur.
Bonnes pratiques pour les applications en production
Voici ce que j’ai appris en utilisant les signatures à dégradé dans des systèmes réels.
1. Centraliser la configuration des signatures
Ne dispersez pas le style dans tout le code. Créez une classe utilitaire :
public class SignatureStyles {
public static TextSignOptions getApprovalSignature(String signerName) {
TextSignOptions options = new TextSignOptions(signerName);
Background background = new Background();
background.setTransparency(0.4f);
LinearGradientBrush brush = new LinearGradientBrush(
new Color(0, 102, 204), // Brand blue
Color.WHITE,
45
);
background.setBrush(brush);
options.setBackground(background);
// Standard positioning
options.setWidth(100);
options.setHeight(70);
return options;
}
// Add more style methods as needed
}
Vous pourrez ainsi réutiliser les styles de façon cohérente : SignatureStyles.getApprovalSignature("Jane Doe").
2. Valider les documents avant de signer
Toujours vérifier que le document source est valide :
try {
Signature signature = new Signature("path/to/document.pdf");
// Validate format
if (!"PDF".equalsIgnoreCase(signature.getDocumentInfo().getFileType())) {
throw new IllegalArgumentException("Only PDF files supported");
}
// Ensure at least one page
if (signature.getDocumentInfo().getPageCount() < 1) {
throw new IllegalArgumentException("Document has no pages");
}
// Proceed with signing...
} catch (Exception e) {
// Handle validation errors
}
3. Consigner les opérations de signature
Conservez une trace d’audit :
SignResult result = signature.sign(outputPath, options);
logger.info("Document signed: " + outputPath);
logger.info("Signatures applied: " + result.getSucceeded().size());
logger.info("Signer: " + signerName);
logger.info("Timestamp: " + LocalDateTime.now());
if (!result.getFailed().isEmpty()) {
logger.warn("Failed signatures: " + result.getFailed().size());
}
4. Gérer les exceptions de façon élégante
Ne laissez jamais un échec de signature faire planter votre service :
try {
SignResult result = signature.sign(outputPath, options);
return result.getSucceeded().size() > 0;
} catch (GroupDocsSignatureException e) {
logger.error("Signature error: " + e.getMessage());
return false;
} catch (IOException e) {
logger.error("File I/O error: " + e.getMessage());
return false;
} catch (Exception e) {
logger.error("Unexpected error during signing: " + e.getMessage());
return false;
}
5. Tester avec des documents réels
Ne vous fiez pas uniquement aux PDF d’exemple. Utilisez les fichiers réels de votre flux de travail :
- Formulaires contenant déjà des champs
- Contrats multi‑pages
- Images scannées (PDF basés sur des images)
- Documents déjà signés
Chaque type peut se comporter différemment avec le rendu du dégradé.
Astuces pro pour les utilisateurs avancés
Prêt à passer au niveau supérieur ? Voici quelques techniques avancées.
Astuce 1 : créer des palettes de couleurs personnalisées
Définissez les palettes de votre marque une fois, puis réutilisez‑les :
public class BrandColors {
public static final Color PRIMARY = new Color(0, 102, 204);
public static final Color SECONDARY = new Color(102, 178, 255);
public static final Color ACCENT = new Color(255, 193, 7);
public static LinearGradientBrush getPrimaryGradient(int angle) {
return new LinearGradientBrush(PRIMARY, Color.WHITE, angle);
}
}
Astuce 2 : transparence dynamique selon le type de document
public static float getOptimalTransparency(Signature signature) {
if (hasComplexBackground(signature)) {
return 0.6f; // More transparent for image‑heavy docs
}
return 0.4f;
}
Astuce 3 : traitement par lots avec des pools de threads
ExecutorService executor = Executors.newFixedThreadPool(4);
List<String> files = getDocumentsToSign();
for (String file : files) {
executor.submit(() -> {
try {
signDocument(file);
} catch (Exception e) {
logger.error("Failed to sign: " + file, e);
}
});
}
executor.shutdown();
executor.awaitTermination(5, TimeUnit.MINUTES);
Astuce 4 : style conditionnel selon le type de signature
public static TextSignOptions getStyledSignature(String name, SignatureType type) {
TextSignOptions options = new TextSignOptions(name);
LinearGradientBrush brush;
switch (type) {
case APPROVAL: brush = new LinearGradientBrush(Color.GREEN, Color.WHITE, 45); break;
case REJECTION: brush = new LinearGradientBrush(Color.RED, Color.WHITE, 45); break;
case REVIEW: brush = new LinearGradientBrush(Color.ORANGE,Color.WHITE,45); break;
default: brush = new LinearGradientBrush(Color.BLUE, Color.WHITE,45);
}
Background bg = new Background();
bg.setBrush(brush);
bg.setTransparency(0.5f);
options.setBackground(bg);
return options;
}
Questions fréquemment posées
Q : Puis‑je utiliser cela dans un service Java basé sur le web ?
R : Oui. GroupDocs.Signature est du Java pur et fonctionne dans n’importe quel backend Java, y compris les services Spring Boot ou Jakarta EE.
Q : Le dégradé affecte‑t‑il la taille du PDF signé ?
R : Seulement marginalement. Le dégradé est stocké dans le flux d’apparence visuelle, ajoutant généralement quelques kilo‑octets.
Q : Comment signer des PDF protégés par mot de passe ?
R : Passez le mot de passe lors de la création de l’objet Signature : new Signature("file.pdf", "password").
Q : Est‑il possible d’appliquer le dégradé à une signature basée sur une image plutôt qu’à du texte ?
R : Absolument. Utilisez ImageSignOptions et définissez son Background avec un LinearGradientBrush comme dans l’exemple texte.
Q : Et si j’ai besoin d’un dégradé radial au lieu d’un linéaire ?
R : GroupDocs prend actuellement en charge LinearGradientBrush. Pour des effets radiaux, vous pouvez créer une image de dégradé radial à l’avance et l’utiliser comme image d’arrière‑plan.
Dernière mise à jour : 2026-03-14
Testé avec : GroupDocs.Signature 23.12 for Java
Auteur : GroupDocs