Jak přizpůsobit vzhled podpisu pomocí gradientu v Javě
Všimli jste si někdy, že některé digitálně podepsané dokumenty vypadají, no… nudně? Jen prostý text na bílém pozadí? Pokud vytváříte aplikaci, která potřebuje profesionálně vypadající podpisy dokumentů – například smlouvy, faktury nebo certifikáty – budete chtít něco, co vynikne a zároveň bude funkční. V tomto tutoriálu se naučíte, jak přizpůsobit vzhled podpisu pomocí gradientového štětce v Javě. Vytvoření digitálního podpisu s gradientem nejenže přidává vizuální eleganci, ale také posiluje identitu značky a zlepšuje vnímanou autenticitu.
Rychlé odpovědi
- Co je digitální podpis s gradientem? Vizuelní prvek s digitálním podpisem, který používá barevný gradient pro pozadí nebo výplň textu.
- Která knihovna to podporuje v Javě? GroupDocs.Signature pro Java poskytuje vestavěnou podporu gradientových štětců.
- Ovlivňují gradienty kryptografickou bezpečnost? Ne. Gradient je čistě vizuální; podkladový digitální podpis zůstává nezměněn.
- Jaká verze Javy je vyžadována? JDK 8 nebo vyšší (doporučeno JDK 11+).
- Je pro produkci potřeba licence? Ano – pro ne‑evaluační použití je vyžadována platná licence GroupDocs.Signature.
Jak přizpůsobit vzhled podpisu pomocí gradientového štětce v Javě
V této sekci projdeme celý proces – od nastavení knihovny po aplikaci lineárního gradientového štětce na textový podpis. Na konci budete schopni vytvořit objekty digitálního podpisu s gradientem, které budou vypadat elegantně a budou ladit s barvami vaší značky.
Proč používat gradientové štětce pro digitální podpisy?
Než se ponoříme do kódu, pojďme si promluvit o tom, proč byste vůbec chtěli gradientové efekty.
Konzistence značky: Pokud vaše společnost používá konkrétní barevná schémata, gradientové podpisy pomáhají udržet vizuální konzistenci napříč všemi dokumenty. Finanční služby mohou použít gradienty od modré k bílé pro důvěru, zatímco kreativní agentura může zvolit odvážné přechody s živými barvami.
Hierarchie dokumentů: Gradientové efekty mohou pomoci odlišit typy podpisů. Můžete použít jemné gradienty pro standardní schválení a výraznější pro výkonné podpisy nebo právní autorizace.
Vizuální přitažlivost bez kompromisů: Co je skvělé – získáte profesionální styl bez ohrožení kryptografické bezpečnosti vašeho digitálního podpisu. Gradient je čistě vizuální; platnost vašeho podpisu zůstává nedotčena.
Snížené vnímání padělání: Dokumenty se stylizovanými podpisy často působí uživatelům autentičtěji. I když to nezvyšuje skutečnou bezpečnost, zlepšuje vnímanou legitimitu (což je důležité pro důvěru uživatelů).
Co se naučíte
- Nastavit GroupDocs.Signature pro Java ve vašem projektu (Maven, Gradle nebo ručně)
- Vytvořit textové podpisy s efekty lineárního gradientového štětce
- Přizpůsobit vzhled podpisu, umístění a průhlednost
- Řešit běžné problémy, které zaskočí vývojáře
- Optimalizovat výkon pro produkční aplikace
- Použít osvědčené postupy pro udržovatelný kód podpisů
Předpoklady
Než začnete, ujistěte se, že máte:
- Java Development Kit (JDK): Verze 8 nebo vyšší (doporučuji JDK 11+ pro lepší výkon)
- IDE: IntelliJ IDEA, Eclipse nebo VS Code s rozšířeními pro Javu
- Knihovna GroupDocs.Signature pro Java: Přidáme ji pomocí Maven nebo Gradle
- Základní znalost Javy: Měli byste být obeznámeni s objekty, metodami a zpracováním výjimek
Požadované knihovny
Přidejte GroupDocs.Signature do svého projektu pomocí preferovaného nástroje pro sestavení.
Pro Maven (přidejte do svého pom.xml):
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Pro Gradle (přidejte do svého build.gradle):
implementation 'com.groupdocs:groupdocs-signature:23.12'
Manuální instalace: Pokud nepoužíváte nástroj pro sestavení (i když to doporučuji), můžete si stáhnout soubor JAR přímo z GroupDocs Signatures releases a přidat jej do classpath vašeho projektu.
Získání licence
GroupDocs nabízí bezplatnou zkušební verzi, která je ideální pro testování a vývoj. Pro produkční použití budete potřebovat licenci. Zde je návod, jak začít:
- Bezplatná zkušební verze: Navštivte GroupDocs Free Trial a stáhněte bez jakýchkoli závazků
- Dočasná licence: Získejte 30‑denní dočasnou licenci na GroupDocs Temporary License pro plnohodnotné testování
- Plná licence: Až budete připraveni na produkci, podívejte se na jejich cenové možnosti
Zkušební verze obsahuje vodoznaky pro hodnocení, takže si pořiďte dočasnou licenci, pokud vytváříte něco, co bude vidět klientům.
Nastavení GroupDocs.Signature pro Java
Připravíme vaše vývojové prostředí. Toto nastavení funguje jak při zahájení nového projektu, tak při integraci do existující aplikace.
Kroky instalace
1. Přidejte závislost (už jsme to výše pokryli – Maven nebo Gradle)
2. Ověřte instalaci vytvořením jednoduché testovací třídy:
import com.groupdocs.signature.Signature;
public class SignatureTest {
public static void main(String[] args) {
System.out.println("GroupDocs.Signature loaded successfully!");
}
}
Pokud se to zkompiluje bez chyb, můžete pokračovat.
3. Nastavte strukturu adresářů pro dokumenty. Rád organizuji věci takto:
project-root/
├── src/
├── resources/
│ ├── input/ // Source documents to sign
│ └── output/ // Signed documents
└── pom.xml (or build.gradle)
4. Základní inicializace (tady začíná kouzlo):
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();
}
}
}
Pro tip: Vždy obalte objekt Signature do try‑with‑resources bloku nebo ručně zavolejte dispose(). GroupDocs drží souborové handly a zapomenutí jejich uvolnění způsobí chyby „soubor je používán“ (zeptáte se, jak to vím).
Průvodce implementací: Vytvoření gradientových podpisů
Teď přichází zábavná část – vytvoříme podpis s efektem gradientového štětce. Začneme jednoduše a postupně přidáme složitost.
Krok 1: Inicializace možností podpisu
Nejprve definujeme, co náš podpis bude obsahovat a jak se bude chovat. Třída TextSignOptions zpracovává textové podpisy:
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");
Toto vytvoří základní podpis s textem „John Smith“. Jednoduché, že? Ale samotné by to byl jen černý text na průhledném pozadí – nudné. Zde přicházejí gradienty.
Proč oddělit možnosti od objektu podpisu? Tento návrhový vzor vám umožní znovu použít stejnou konfiguraci podpisu napříč více dokumenty. Nastavíte jednou, použijete všude.
Krok 2: Přizpůsobení pozadí pomocí gradientového štětce
Zde váš podpis začne vypadat profesionálně. Vytvoříme lineární gradient, který přechází ze zelené na bílou:
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);
Rozbor toho, co se zde děje:
- Základní barva:
setColor(Color.GREEN)nastaví pevnou náhradní barvu. Pokud gradient selže (vzácné, ale možné), tato barva se zobrazí místo něj. - Průhlednost:
setTransparency(0.5f)učiní váš podpis poloprůhledným. To je klíčové u dokumentů, kde nechcete zakrýt podkladový text. Hodnoty blíže k 0 jsou méně průhledné (více neprůhledné), blíže k 1 jsou více průhledné. - Úhel gradientu:
45znamená, že gradient teče diagonálně z levého horního rohu do pravého dolního. Použijte0pro horizontální (levý → pravý),90pro vertikální (horní → dolní) nebo libovolný úhel mezi nimi.
Výběr barev má význam: Zelená‑k‑bílé naznačuje schválení nebo potvrzení (myšlenka „jít“). Modrá‑k‑bílé vyjadřuje důvěru a profesionalitu. Červená‑k‑bílé může signalizovat naléhavost nebo důležitost. Vyberte barvy, které odpovídají účelu dokumentu a identitě vaší značky.
Krok 3: Nastavení umístění podpisu
Nyní musíme podpisu říct, kde se má v dokumentu objevit. Umístění je složitější, než vypadá, protože musíte vyvážit viditelnost a nezakrývání důležitého obsahu:
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);
Porozumění zarovnání vs. okraji: Představte si zarovnání jako kotevní bod a okraj jako posun. Pokud nastavíte HorizontalAlignment.Center, podpis se vycentruje na stránce a poté okraj posune relativně k tomuto středu. Tento dvoustupový přístup vám dává přesnou kontrolu.
Běžné vzory umístění:
- Dolní pravý roh:
HorizontalAlignment.Right,VerticalAlignment.Bottom, s negativním horním okrajem - Záhlaví:
VerticalAlignment.Top,HorizontalAlignment.Right, s odsazením - Střed stránky: Obě zarovnání nastavená na
Center, upravte okraje podle potřeby
Úvahy o velikosti: Hodnoty setWidth(100) a setHeight(80) fungují pro většinu standardních dokumentů, ale můžete je upravit podle velikosti dokumentu a délky textu podpisu. Pokud se text ořízne, zvětšete šířku. Pokud vypadá příliš stísněně, zvětšete výšku nebo snižte velikost písma.
Krok 4: Aplikace podpisu a uložení
Nakonec podepíšeme dokument a uložíme výstup. Zde se spojí veškerá vaše konfigurace:
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();
}
Co se děje v metodě sign()? Přijímá váš zdrojový dokument, aplikuje nakonfigurované možnosti podpisu a zapíše nový soubor s vloženým podpisem. Původní soubor zůstane nedotčen (což je dobrá praxe – nikdy přímo neupravujte zdrojové dokumenty).
Objekt SignResult vám říká, co se stalo. Zkontrolujte getSucceeded(), abyste zjistili, které podpisy byly úspěšně aplikovány, a getFailed(), abyste zachytili ty, které nefungovaly.
Kompletní funkční příklad
Zde je vše spojeno v jedné spustitelné třídě, kterou můžete okamžitě zkopírovat a otestovat:
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();
}
}
}
Spusťte tento kód s PDF souborem ve vašem adresáři resources/input/ a získáte podepsanou verzi s krásným gradientním efektem.
Běžné případy použití
Podívejme se, kdy a kde mají gradientové podpisy největší smysl v reálných aplikacích.
1. Podnikové systémy správy smluv
Scénář: Vytváříte workflow schvalování smluv, kde více zúčastněných stran podepisuje dokumenty v různých fázích.
Aplikace: Použijte různé barvy gradientu k reprezentaci různých úrovní schválení – vedoucí oddělení získají gradient od modré k bílé, právní revizoři gradient od zlaté k bílé, výkonný management gradient od tmavě modré k světle modré. Tato vizuální hierarchie pomáhá uživatelům okamžitě vidět, kdo podepsal a na jaké úrovni.
2. Automatizované zpracování faktur
Scénář: Váš účetní systém automaticky podepisuje generované faktury před jejich odesláním klientům.
Aplikace: Jemný gradient v barvách značky (odpovídající barvám vaší společnosti) dodá fakturám profesionální vzhled a ztíží jejich padělání. Udržujte gradient decentní, aby faktura zůstala čitelná.
3. Generování certifikátů
Scénář: Generujete certifikáty o dokončení online kurzů nebo školení.
Aplikace: Živé, slavnostní gradienty (zlatá‑k‑žluté nebo modrá‑k‑fialové) dodají certifikátům oficiální a sdíletelný vzhled. Vizuální přitažlivost zvyšuje vnímanou hodnotu a podporuje sdílení na sociálních sítích.
4. Vodoznakování dokumentů
Scénář: Potřebujete označit dokumenty jako „Návrh“, „Důvěrné“ nebo „Schválené“.
Aplikace: I když nejde přímo o podpis, můžete techniku gradientu znovu použít s průhledným textem k vytvoření poutavých vodoznaků, které nezakrývají podkladový obsah. Nastavte průhlednost na 0.7‑0.8 pro jemný efekt.
Řešení běžných problémů
Zde jsou problémy, na které jsem narazil (a vyřešil) při práci s gradientovými podpisy. Ušetříte si tak čas na ladění.
Problém 1: „Soubor je používán jiným procesem“
Příznaky: Vaše aplikace vyhodí výjimku, že nemůže přistupovat k souboru, i když žádný jiný program není otevřený.
Příčina: Zapomněli jste zavolat signature.dispose() nebo řádně uzavřít objekt Signature. Java drží souborový handle, dokud není objekt uvolněn garbage collectorem.
Řešení:
// 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
Nebo ručně:
Signature signature = null;
try {
signature = new Signature("path/to/document.pdf");
// Your signing code
} finally {
if (signature != null) {
signature.dispose();
}
}
Problém 2: Podpis se zobrazí, ale gradient není vidět
Příznaky: Vidíte text podpisu, ale je jen jednobarevný.
Možné příčiny:
- Prohlížeč PDF nepodporuje gradienty – otestujte v Adobe Acrobat, Foxit Reader nebo moderním prohlížeči.
- Průhlednost nastavena příliš vysoká –
setTransparency(1.0f)učiní gradient neviditelným. Zkuste 0.3‑0.7. - Štětec nebyl aplikován – ujistěte se, že jste zavolali
background.setBrush(brush)aoptions.setBackground(background).
Tip pro ladění: Nejprve použijte vysokokontrastní barvy (např. Color.RED na Color.BLUE). Pokud stále nevidíte gradient, je špatná konfigurace, ne barvy.
Problém 3: Podpis překrývá důležitý obsah dokumentu
Příznaky: Váš gradientní podpis vypadá skvěle, ale překrývá důležitý text nebo pole formuláře.
Řešení: Dynamicky upravte umístění na základě obsahu dokumentu. Zde je vzor, který používám:
// 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);
Lepší přístup: Nejprve analyzujte dokument a najděte volná místa, poté programově umístěte podpisy tam.
Problém 4: Problémy s výkonem u velkých dokumentů
Příznaky: Podepisování trvá dlouho u PDF s mnoha stránkami nebo vysokým rozlišením obrázků.
Příčina: GroupDocs zpracovává celý dokument a složité gradienty přidávají renderovací zátěž.
Řešení:
- Podepisujte pouze konkrétní stránky místo celého souboru.
- Používejte jednodušší gradienty – dvoubarevné lineární gradienty jsou rychlejší než radiální nebo vícebarevné gradienty.
- Zmenšete velikost podpisu – menší šířka/výška znamená méně renderovací práce.
- Zpracovávejte asynchronně – neblokujte hlavní vlákno během podepisování.
Příklad výkonu:
// 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ém 5: Barva neodpovídá očekáváním
Příznaky: Gradient vypadá jinak, než jste v kódu specifikovali.
Příčiny:
- Rozdíly v barevném prostoru RGB –
Colorv Javě používá sRGB, ale PDF může renderovat v jiném prostoru. - Interakce průhlednosti – Poloprůhledné gradienty se mísí s pozadím dokumentu, což mění vnímanou barvu.
- Kalibrace monitoru – To, co vidíte na svém monitoru, se může lišit od ostatních.
Řešení: Testujte podepsané dokumenty na různých zařízeních a PDF prohlížečích. Pokud je konzistence značky kritická, použijte přesné RGB hodnoty a ověřte napříč platformami. Udržujte průhlednost kolem 0.3‑0.5, aby se minimalizovaly posuny barev.
Osvědčené postupy pro produkční aplikace
Zde je, co jsem se naučil při používání gradientových podpisů v reálných systémech.
1. Centralizujte konfiguraci podpisu
Nerostete stylování po celém kódu. Vytvořte pomocnou třídu:
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
}
Nyní můžete styly znovu použít konzistentně: SignatureStyles.getApprovalSignature("Jane Doe").
2. Ověřte dokumenty před podepsáním
Vždy zkontrolujte, že zdrojový dokument je platný:
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. Logujte operace podpisu
Udržujte auditní stopu:
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. Ošetřujte výjimky elegantně
Nikdy nenechte selhání podepisování zhrouznout vaši službu:
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. Testujte s reálnými dokumenty
Nespoléhejte se jen na ukázkové PDF. Používejte skutečné soubory z vašeho workflow:
- Formuláře s existujícími poli
- Vícestránkové smlouvy
- Naskenované obrázky (PDF založené na obrázcích)
- Dokumenty, které již obsahují podpisy
Každý typ se může chovat odlišně při renderování gradientu.
Pro tipy pro pokročilé uživatele
Připraveni na další úroveň? Zde je několik pokročilých technik.
Tip 1: Vytvořte vlastní barevné schémata
Definujte palety značky jednou a znovu je použijte:
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);
}
}
Tip 2: Dynamická průhlednost podle typu dokumentu
public static float getOptimalTransparency(Signature signature) {
if (hasComplexBackground(signature)) {
return 0.6f; // More transparent for image‑heavy docs
}
return 0.4f;
}
Tip 3: Dávkové zpracování s vlákny (Thread Pools)
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);
Tip 4: Podmíněné stylování podle typu podpisu
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;
}
Často kladené otázky
Q: Můžu to použít ve webové Java službě?
A: Ano. GroupDocs.Signature je čistá Java a funguje v jakémkoli Java‑založeném backendu, včetně Spring Boot nebo Jakarta EE služeb.
Q: Ovlivňuje gradient velikost podepsaného PDF?
A: Pouze mírně. Gradient je uložen jako součást vizuálního proudu, typicky přidává několik kilobajtů.
Q: Jak podepíšu PDF chráněné heslem?
A: Při vytváření objektu Signature předáte heslo: new Signature("file.pdf", "password").
Q: Je možné aplikovat gradient na obrázkový podpis místo textového?
A: Rozhodně. Použijte ImageSignOptions a nastavte jeho Background pomocí LinearGradientBrush stejně jako v textovém příkladu.
Q: Co když potřebuji radiální gradient místo lineárního?
A: GroupDocs v současnosti podporuje LinearGradientBrush. Pro radiální efekty můžete předem vytvořit obrázek s radiálním gradientem a použít jej jako obrázek pozadí.
Poslední aktualizace: 2026-03-14
Testováno s: GroupDocs.Signature 23.12 pro Java
Autor: GroupDocs