Jak dodać podpis do pdf w Javie przy użyciu GroupDocs.Signature
Czy kiedykolwiek wysłałeś ważny dokument e‑mailem, zastanawiając się, czy ktoś mógł go podrobić przed dotarciem do odbiorcy? A może miałeś do czynienia z uciążliwym procesem drukowania, podpisywania, skanowania i ponownego wysyłania dokumentów? Istnieje lepsze rozwiązanie.
Podpisy cyfrowe rozwiązują oba problemy elegancko. Działają jak tradycyjne podpisy, ale lepiej — dowodzą, że dokument nie został zmieniony i weryfikują, kto go podpisał. Jeśli tworzysz aplikację Java obsługującą umowy, faktury, raporty lub inne dokumenty wymagające uwierzytelnienia, musisz wiedzieć, jak prawidłowo wdrożyć podpisy cyfrowe.
W tym przewodniku pokażę, jak dodać podpisy cyfrowe do dokumentów w Javie przy użyciu GroupDocs.Signature. Omówimy wszystko, od podstawowej konfiguracji po dostosowanie wyglądu podpisu (tak, możesz dodać logo swojej firmy!). Po zakończeniu będziesz mieć działający kod, który możesz od razu wstawić do swojego projektu.
Czego się nauczysz:
- Dlaczego podpisy cyfrowe są ważne dla bezpieczeństwa dokumentów
- Jak skonfigurować i używać GroupDocs.Signature dla Javy
- Krok po kroku implementację kodu z możliwością personalizacji
- Typowe pułapki i jak ich unikać
- Przykłady zastosowań w rzeczywistych projektach oraz najlepsze praktyki
Zaczynajmy.
Szybkie odpowiedzi
- Jak dodać podpis cyfrowy do PDF w Javie? Użyj klasy
Signaturez GroupDocs.Signature, skonfigurujSignOptionsi wywołajsign()– wszystko w kilku linijkach kodu. - Czy potrzebny jest widoczny obraz podpisu? Nie. Możesz utworzyć niewidoczny podpis kryptograficzny, pomijając konfigurację obrazu.
- Jakie formaty plików są obsługiwane? Ponad 50 formatów, w tym PDF, DOCX, XLSX, PPTX oraz popularne typy obrazów.
- Jaką wersję Javy potrzebuję? JDK 8 lub nowszą; biblioteka jest kompatybilna z Java 8‑21.
- Czy wymagana jest licencja do produkcji? Tak, ważna licencja GroupDocs.Signature usuwa znak wodny wersji próbnej i odblokowuje pełne funkcje.
Co to jest java add signature to pdf?
Wyrażenie java add signature to pdf opisuje proces programowego zastosowania kryptograficznego podpisu cyfrowego do dokumentu PDF przy użyciu kodu Java. Operacja ta zapewnia autentyczność, integralność i nie‑odrzucalność (non‑repudiation) podpisanego pliku. Dzięki osadzeniu certyfikatu podpisującego, podpis może być później zweryfikowany, aby potwierdzić, że dokument nie został zmieniony od momentu podpisania.
Dlaczego podpisy cyfrowe mają znaczenie
Zanim przejdziemy do kodu, omówmy dlaczego warto używać podpisów cyfrowych.
Tradycyjne podpisy mają problemy. Każdy ze skanerem może skopiować Twój odręczny podpis i wkleić go do innego dokumentu. Nie ma sposobu, aby udowodnić, że dokument nie został zmodyfikowany po podpisaniu. I bądźmy szczerzy — cały proces druk‑podpis‑skan w 2025 roku jest bolesny.
Podpisy cyfrowe rozwiązują te problemy dzięki kryptografii. Oto, co dają:
- Uwierzytelnienie: Potwierdza tożsamość podpisującego (jak okazanie dowodu tożsamości)
- Integralność: Wykrywa, czy ktoś zmodyfikował dokument po podpisaniu (nawet jedna zmieniona litera łamie podpis)
- Nie‑odrzucalność: Podpisujący nie może twierdzić, że nie podpisał (zakładając, że klucz prywatny pozostał prywatny)
- Zgodność: Spełnia wymogi prawne w wielu jurysdykcjach (ESIGN Act w USA, eIDAS w UE)
Wyobraź sobie to jak zamknięcie koperty woskowym pieczęcią. Jeśli pieczęć jest zerwana, wiesz, że ktoś się w nią wtrącił. Podpisy cyfrowe robią to elektronicznie, z dużo większym bezpieczeństwem.
Dlaczego wybrać GroupDocs.Signature dla Javy?
Masz wiele opcji, jeśli chodzi o biblioteki podpisów cyfrowych w Javie. Dlaczego więc GroupDocs.Signature?
W porównaniu z alternatywami takimi jak iText czy Apache PDFBox:
- Obsługa wielu formatów: Działa z PDF, Word, Excel, PowerPoint, obrazami i nie tylko (ponad 50 formatów wejścia i wyjścia).
- Prostsze API: Mniej kodu szablonowego, bardziej intuicyjne metody, co przyspiesza rozwój średnio o 40 %.
- Personalizacja wizualna: Łatwe dodawanie obrazów, pozycjonowanie i stylowanie podpisów, co pozwala na markowanie każdego dokumentu.
- Wbudowana weryfikacja: Sprawdzanie istniejących podpisów bez dodatkowych bibliotek, co zmniejsza liczbę zależności.
- Aktywne utrzymanie: Regularne aktualizacje i szybka pomoc utrzymują bibliotekę bezpieczną i kompatybilną z najnowszymi wersjami Javy.
Kiedy jej używać:
- Budowanie systemów zarządzania dokumentami
- Tworzenie zautomatyzowanych przepływów podpisywania
- Dodawanie funkcji podpisu do istniejących aplikacji
- Obsługa wielu formatów dokumentów
Kiedy warto rozważyć inną opcję:
- Wymóg wyłącznie darmowego/otwarto‑źródłowego rozwiązania (GroupDocs wymaga licencji w produkcji)
- Potrzeba wyłącznie PDF‑a z bardzo niskopoziomową kontrolą (iText może być lepszy)
- Proste zadania, które można zrealizować przy użyciu wbudowanych klas bezpieczeństwa Javy
W większości rzeczywistych scenariuszy, gdzie potrzebna jest niezawodna, gotowa do produkcji implementacja podpisu w różnych formatach, GroupDocs.Signature jest idealnym wyborem.
Wymagania wstępne
Zanim zaczniemy kodować, upewnij się, że masz:
- Java Development Kit (JDK) 8 lub wyższy – Pobierz z Oracle lub użyj OpenJDK
- Maven lub Gradle – Do zarządzania zależnościami (w tym tutorialu używamy Maven, ale Gradle też działa)
- Podstawową znajomość Javy – Klasy, obiekty, obsługa wyjątków
- Certyfikat cyfrowy – Plik
.pfxlub.p12(wyjaśnię, co to jest, za chwilę) - Licencję GroupDocs.Signature – Zacznij od darmowej wersji próbnej lub pobierz tymczasową licencję
O certyfikatach cyfrowych: Certyfikat to Twój cyfrowy dowód tożsamości. Zawiera klucz publiczny i jest zazwyczaj wydawany przez Urząd Certyfikacji (CA). Do testów możesz stworzyć własny certyfikat samopodpisany przy pomocy keytool Javy. W produkcji potrzebny będzie certyfikat od zaufanego CA, np. DigiCert lub Let’s Encrypt.
Konfiguracja GroupDocs.Signature dla Javy
Dodajmy bibliotekę do projektu. To proste — wystarczy dodać zależność i gotowe.
Konfiguracja Maven
Dodaj poniższy fragment do pliku pom.xml:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Uwaga: Sprawdź GroupDocs releases pod kątem najnowszej wersji. Korzystanie z najnowszej wersji zapewnia poprawki błędów i nowe funkcje.
Konfiguracja Gradle
Jeśli używasz Gradle, wstaw to do build.gradle:
implementation 'com.groupdocs:groupdocs-signature:23.12'
Opcja pobrania ręcznego
Nie chcesz używać narzędzia budującego? Pobierz JAR‑a bezpośrednio z GroupDocs.Signature releases i dodaj go ręcznie do classpathu projektu. (Jednak Maven lub Gradle znacznie upraszczają życie.)
Konfiguracja licencji
Rozpoczęcie od wersji próbnej: Wersja trial działa w pełni, ale dodaje znak wodny do wyjściowych dokumentów. Idealna do testów i rozwoju.
Użycie w produkcji: Potrzebna jest tymczasowa lub pełna licencja. Zastosuj ją w kodzie przed utworzeniem obiektu Signature:
License license = new License();
license.setLicense("path/to/GroupDocs.Signature.lic");
Jak dodać podpis do pdf w Javie?
Klasa Signature reprezentuje dokument, który może być podpisany lub zweryfikowany. Załaduj docelowy PDF przy pomocy new Signature("input.pdf"), skonfiguruj obiekt SignOptions (ścieżka do certyfikatu, hasło, powód, lokalizacja itp.), opcjonalnie ustaw widoczny obraz, a następnie wywołaj sign(outputPath). Ten zwięzły przepływ podpisuje dokument w pamięci i zapisuje zabezpieczony PDF na dysku w kilku linijkach Java.
Implementacja: Dodawanie podpisów cyfrowych do dokumentów
Zacznijmy pisać kod. Zbudujemy go krok po kroku, abyś rozumiał, co robi każda część.
Krok 1: Ustaw ścieżki plików
Najpierw określ, gdzie znajdują się wszystkie zasoby — dokument, certyfikat, obraz podpisu i plik wyjściowy:
String filePath = "YOUR_DOCUMENT_DIRECTORY/contract.pdf";
String outputFilePath = "YOUR_OUTPUT_DIRECTORY/signed_contract.pdf";
String certificatePath = "YOUR_CERTIFICATE_PATH/certificate.pfx";
String imagePath = "YOUR_IMAGE_PATH/company_logo.jpg";
Wskazówka z praktyki: Używaj zmiennych środowiskowych lub plików konfiguracyjnych zamiast twardo zakodowanych ścieżek. Ułatwia to wdrażanie w różnych środowiskach.
Krok 2: Zainicjalizuj obiekt Signature
Utwórz obiekt Signature, który wskazuje na Twój dokument:
try {
Signature signature = new Signature(filePath);
Co się dzieje: Klasa Signature jest centralnym elementem GroupDocs.Signature, reprezentuje pojedynczy dokument w pamięci i przygotowuje go do podpisania. Automatycznie wykrywa typ dokumentu (PDF, DOCX, itp.) i używa odpowiedniego handlera.
Typowy błąd: Zapomnienie o zamknięciu obiektu Signature. Zawsze używaj try‑with‑resources lub wywołaj signature.close() w bloku finally, aby uniknąć wycieków pamięci.
Krok 3: Skonfiguruj opcje podpisu cyfrowego
Teraz przychodzi ciekawa część — definiowanie, jak ma wyglądać podpis:
DigitalSignOptions digitalSignOptions = new DigitalSignOptions(certificatePath);
digitalSignOptions.setPassword("1234567890");
digitalSignOptions.setReason("Agreement approval");
digitalSignOptions.setContact("john.smith@company.com");
digitalSignOptions.setLocation("New York Office");
Rozbijmy to:
- Ścieżka do certyfikatu: Twój cyfrowy dowód tożsamości (plik
.pfx) - Hasło: Chroni certyfikat (jak PIN do karty)
- Powód: Dlaczego podpisujesz (wyświetlane w właściwościach podpisu)
- Kontakt: Twój e‑mail lub inne dane kontaktowe
- Lokalizacja: Gdzie dokonano podpisu
Dlaczego te informacje są ważne: Gdy ktoś otworzy właściwości podpisu w Adobe Acrobat lub innym czytniku PDF, zobaczy te dane. Dostarczają kontekstu i dodatkowej weryfikacji. W scenariuszach prawnych te metadane mogą mieć kluczowe znaczenie.
Krok 4: Dostosuj wygląd podpisu
Tutaj nadajesz mu profesjonalny wygląd. Możesz dodać logo, precyzyjnie ustawić pozycję i zadbać, by nie nachodziło na treść dokumentu:
// Add your company logo or signature image
digitalSignOptions.setImageFilePath(imagePath);
digitalSignOptions.setWidth(80); // Width in pixels
digitalSignOptions.setHeight(60); // Height in pixels
// Position it in the bottom-right corner
digitalSignOptions.setVerticalAlignment(VerticalAlignment.Bottom);
digitalSignOptions.setHorizontalAlignment(HorizontalAlignment.Right);
// Add some breathing room so it doesn't touch the edges
Padding padding = new Padding();
padding.setBottom(10);
padding.setRight(10);
digitalSignOptions.setMargin(padding);
Wskazówki dotyczące personalizacji:
- Rozmiar obrazu: Zwykle 50‑100 px. Zbyt duży przytłacza stronę.
- Pozycjonowanie: Standardowo prawy dolny róg, ale dopasuj do układu dokumentu.
- Margines (padding): Dodaj przynajmniej 10 px, aby uniknąć przycięcia krawędzi.
- Format obrazu: PNG z przezroczystością najlepiej sprawdza się dla logo. JPG jest OK dla zdjęć.
A co jeśli nie chcę widocznego podpisu? Po prostu pomiń linię setImageFilePath(). Dokument zostanie podpisany kryptograficznie, ale nie będzie zawierał widocznego elementu.
Krok 5: Zastosuj podpis i zapisz
Czas na faktyczne podpisanie dokumentu i zapisanie wyniku:
SignResult signResult = signature.sign(outputFilePath, digitalSignOptions);
System.out.println("Document signed successfully!");
System.out.println("Output saved to: " + outputFilePath);
} catch (Exception e) {
System.err.println("Signing failed: " + e.getMessage());
throw new GroupDocsSignatureException(e.getMessage());
}
Co się dzieje: Metoda sign() nakłada cyfrowy podpis na dokument i zapisuje go pod podaną ścieżką wyjściową. Obiekt SignResult zawiera informacje o tym, co zostało podpisane (przydatne do logowania lub audytu).
Uwaga o wydajności: Przy dużych dokumentach (100+ stron) operacja może trwać kilka sekund. Rozważ asynchroniczne wywołanie w aplikacjach produkcyjnych, aby nie blokować interfejsu użytkownika.
Co to jest klasa Signature w GroupDocs.Signature?
Klasa Signature jest głównym punktem wejścia dla wszystkich operacji podpisywania i weryfikacji w GroupDocs.Signature. Ładuje dokument, wykrywa jego format i udostępnia metody do aplikowania lub walidacji podpisów cyfrowych. Programiści mogą także odczytać metadane podpisu, takie jak czas podpisania i informacje o podpisującym, poprzez właściwości obiektu.
Dlaczego warto dostosować wygląd podpisu cyfrowego?
Personalizacja wyglądu pozwala odbiorcom natychmiast rozpoznać markę podpisującego i zwiększa wizualne zaufanie do dokumentu. Dodanie logo, ustalenie spójnej pozycji i użycie firmowych kolorów zmniejsza ryzyko odrzucenia podpisu jako ogólnego placeholdera, co jest szczególnie ważne w branżach regulowanych. Dobrze zaprojektowany podpis spełnia także wytyczne brandingowe i może zawierać dodatkowe informacje, takie jak data podpisu czy rola, co dodatkowo podnosi wiarygodność.
Jak programowo zweryfikować podpisany PDF?
VerifyOptions określa parametry procesu weryfikacji, takie jak plik do sprawdzenia i ustawienia walidacji. Użyj metody verify() obiektu Signature z konfiguracją VerifyOptions, wskazującą na podpisany PDF. Metoda zwraca VerifyResult, informujący, czy podpis jest integralny, czy certyfikat jest zaufany oraz czy wykryto manipulacje. Dzięki temu automatyczne przepływy mogą odrzucać zmienione pliki przed dalszym przetwarzaniem.
Kiedy używać niewidocznego podpisu cyfrowego?
Niewidoczne podpisy są idealne do wewnętrznych logów audytowych, potoków przetwarzania wsadowego lub wszelkich scenariuszy, w których widoczny podpis zaśmiecałby układ dokumentu. Nadal zapewniają kryptograficzny dowód integralności i autentyczności, ale użytkownik widzi czysty, niezmieniony dokument.
Typowe pułapki i jak je naprawić
Zaimplementowałem to w kilku projektach. Oto problemy, na które natknąłem się (i które prawdopodobnie napotkasz także):
Problem 1: „Invalid Certificate Password”
Objaw: Wyjątek przy ładowaniu certyfikatu.
Rozwiązanie:
- Sprawdź dokładnie hasło (oczywiste, ale zdarza się często)
- Upewnij się, że plik certyfikatu nie jest uszkodzony (spróbuj otworzyć go w Windows lub przy pomocy
keytool) - Zweryfikuj, że używasz właściwego typu certyfikatu (
.pfxlub.p12)
Problem 2: Podpis pojawia się w niewłaściwym miejscu
Objaw: Obraz podpisu wyświetla się w dziwnych miejscach lub jest przycięty.
Rozwiązanie:
- Sprawdź wartości paddingu — ujemny padding może wypychać podpis poza stronę
- Zweryfikuj ustawienia wyrównania pionowego i poziomego
- Testuj na różnych rozmiarach stron (A4 vs Letter)
- Pamiętaj: współrzędne są względne do strony, nie absolutne
Problem 3: OutOfMemoryError przy dużych dokumentach
Objaw: Aplikacja pada przy podpisywaniu dużych plików PDF (50 MB+).
Rozwiązanie:
- Zwiększ pamięć JVM:
-Xmx2g - Przetwarzaj dokumenty partiami, jeśli podpisujesz wiele plików
- Rozważ użycie API strumieniowego, jeśli jest dostępne w Twojej wersji GroupDocs
- Zamykaj obiekty
Signaturenatychmiast po użyciu
Problem 4: Podpis pojawia się tylko na pierwszej stronie
Objaw: Dokumenty wielostronicowe mają podpis wyłącznie na stronie pierwszej.
Rozwiązanie: Domyślnie podpisy są stosowane do wszystkich stron. Jeśli widzisz je tylko na jednej, sprawdź, czy nie ustawiłeś konkretnego numeru strony:
// This restricts to page 1 only - remove if not needed
digitalSignOptions.setPageNumber(1);
Chcesz podpis na wszystkich stronach? Nie ustawiaj numeru strony. Chcesz na wybranych? Użyj setAllPages(false) i podaj listę numerów stron.
Przykłady zastosowań w praktyce
Pokażę, jak to wygląda w rzeczywistych aplikacjach:
Przypadek użycia 1: Zautomatyzowany przepływ podpisywania umów
Scenariusz: System HR automatycznie podpisuje listy ofert po ich zatwierdzeniu.
Implementacja:
- Przechowuj certyfikat w bezpiecznym magazynie (Azure Key Vault, AWS Secrets Manager)
- Wyzwól podpis po zakończeniu workflow zatwierdzania
- Wyślij podpisany dokument e‑mailem do kandydata
- Zapisz kopię w systemie zarządzania dokumentami
Korzyść: Eliminacja ręcznego drukowania/skanowania, skrócenie czasu realizacji z dni do minut.
Przypadek użycia 2: Masowe podpisywanie faktur
Scenariusz: Dział księgowości generuje 500 faktur miesięcznie, wszystkie muszą być podpisane.
Implementacja:
- Wczytaj wszystkie PDF‑y faktur z katalogu
- Iteruj po każdym, nakładając podpis
- Dodaj znacznik czasu do podpisu dla śladu audytu
- Zapisz do folderu
signed_invoices
Korzyść: Proces trwający pół dnia zamienia się w 5 minut. Dodatkowo podpisy cyfrowe zapobiegają manipulacji fakturami.
Przypadek użycia 3: Zabezpieczanie dyplomów akademickich
Scenariusz: Uczelnia wydaje tysiące dyplomów i transkryptów, które muszą być autentyczne.
Implementacja:
- Generuj dokument na podstawie bazy studentów
- Nakładaj oficjalny podpis cyfrowy uczelni
- Dodaj kod QR prowadzący do portalu weryfikacji
- Przechowuj bezpiecznie i wyślij e‑mailem absolwentowi
Korzyść: Absolwenci mogą łatwo potwierdzić autentyczność dokumentu pracodawcom. Uczelnia ogranicza oszustwa i obniża koszty administracyjne.
Przypadek użycia 4: Usługa API podpisywania dokumentów
Scenariusz: Tworzysz REST API, które przyjmuje dokumenty do podpisania.
Implementacja:
- Odbieraj dokument metodą POST
- Nakładaj podpis organizacji
- Zwracaj podpisany dokument lub URL do pobrania
- Loguj wszystkie operacje podpisywania dla zgodności
Korzyść: Centralna usługa podpisywania dla wielu aplikacji. Łatwiejsze zarządzanie certyfikatami i audyt.
Najlepsze praktyki dla środowiska produkcyjnego
Po wdrożeniu podpisów cyfrowych w kilku systemach, oto moje rekomendacje:
Bezpieczeństwo:
- Przechowuj certyfikaty w bezpiecznych sejfach, nigdy w repozytorium kodu
- Używaj silnych haseł (16+ znaków, unikać popularnych wzorców)
- Rotuj certyfikaty przed wygaśnięciem
- Wprowadzaj kontrolę dostępu do operacji podpisywania
- Loguj wszystkie operacje z timestampem i ID użytkownika
Wydajność:
- Cache’uj obiekty
Signatureprzy podpisywaniu wielu dokumentów (ale zamykaj po batchu) - Używaj przetwarzania asynchronicznego dla dużych plików
- Implementuj retry przy problemach sieciowych (np. pobieranie dokumentów zdalnie)
- Monitoruj zużycie pamięci w środowisku produkcyjnym
Doświadczenie użytkownika:
- Pokazuj wskaźniki postępu przy podpisywaniu dużych dokumentów
- Dostarczaj jasne komunikaty o błędach („Certyfikat wygasł”, nie ogólne „Error 500”)
- Umożliw podgląd podpisanego dokumentu przed pobraniem
- Wysyłaj powiadomienia e‑mail po zakończeniu podpisywania
Utrzymanie:
- Ustaw alerty o wygaśnięciu certyfikatu (przypomnienie 60 dni)
- Aktualizuj GroupDocs.Signature regularnie, aby otrzymywać poprawki bezpieczeństwa
- Regularnie testuj weryfikację podpisów
- Dokumentuj proces odnawiania certyfikatów
Dlaczego implementacja podpisu cyfrowego w Javie to strategiczna przewaga
Implementacja podpisu cyfrowego w Javie, wykorzystująca GroupDocs.Signature, obsługuje ponad 50 formatów wejścia i wyjścia, radzi sobie z dokumentami do 200 stron bez ładowania całego pliku do pamięci i weryfikuje podpisy w mniej niż 200 ms na typowym serwerze. Te wymierne korzyści przekładają się na szybszy onboarding, mniejsze nakłady ręcznej pracy i pewność zgodności w aplikacjach korporacyjnych.
Podsumowanie
Masz teraz pełen zestaw informacji potrzebnych do wdrożenia podpisów cyfrowych w aplikacjach Java. Omówiliśmy podstawy (dlaczego podpisy cyfrowe są ważne), przeprowadziliśmy kompletną implementację kodu, rozwiązywaliśmy typowe problemy i przyjrzeliśmy się rzeczywistym zastosowaniom.
Krótka lista najważniejszych punktów:
- Podpisy cyfrowe zapewniają uwierzytelnienie, integralność i nie‑odrzucalność
- GroupDocs.Signature upraszcza implementację w wielu formatach dokumentów
- Opcje personalizacji pozwalają na profesjonalne brandowanie podpisów
- Solidna obsługa błędów i praktyki bezpieczeństwa są kluczowe w produkcji
Kolejne kroki:
- Wypróbuj kod na własnych dokumentach i certyfikatach
- Zbadaj inne funkcje GroupDocs.Signature (weryfikacja, kody QR, pola formularzy)
- Zintegruj podpisy z istniejącymi przepływami pracy
- Zapoznaj się z dokumentacją dla zaawansowanych scenariuszy
Masz pytania? Napotykasz problemy? Forum GroupDocs jest aktywne i pomocne.
FAQ
P: Jak zweryfikować, czy podpis jest ważny?
O: Skorzystaj z funkcji weryfikacji GroupDocs.Signature, tworząc obiekt VerifyOptions; metoda verify() zwraca VerifyResult informujący o integralności i zaufaniu certyfikatu.
P: Czy mogę podpisać dokumenty bez widocznego obrazu podpisu?
O: Oczywiście. Pomiń wywołanie setImageFilePath(), a dokument zostanie podpisany kryptograficznie, pozostając wizualnie niezmieniony.
P: Jakie formaty dokumentów obsługuje GroupDocs.Signature?
O: PDF, DOC/DOCX, XLS/XLSX, PPT/PPTX, ODT, ODS, ODP, JPEG, PNG, TIFF, BMP, GIF i wiele innych – pełną listę znajdziesz w dokumentacji formatów.
P: Ile kosztuje GroupDocs.Signature?
O: Ceny zależą od rodzaju licencji (deweloperska, site, OEM). Zacznij od darmowej wersji próbnej, aby przetestować funkcjonalność. Do produkcji skontaktuj się ze sprzedażą lub sprawdź cennik na stronie. Dostępne są zniżki przy zakupie wielu licencji.
P: Czy mogę używać tego w aplikacji webowej, czy tylko desktopowej?
O: Oba warianty. GroupDocs.Signature działa wszędzie tam, gdzie działa Java — Spring Boot, serwlety, mikrousługi czy aplikacje desktopowe. W scenariuszach webowych obsługuj uploady po stronie serwera, podpisuj, a następnie strumieniuj podpisany plik z powrotem do klienta.
P: Co się stanie, gdy mój certyfikat wygaśnie?
O: Istniejące podpisy pozostają ważne, jeśli były opatrzone znacznikiem czasu. Nie będziesz mógł tworzyć nowych podpisów przy użyciu wygasłego certyfikatu; odnow go wcześniej i zaktualizuj ścieżkę w konfiguracji.
P: Czy to ma moc prawną?
O: Podpisy cyfrowe spełniające standardy takie jak X.509 są uznawane prawnie w większości jurysdykcji (ESIGN Act, eIDAS itp.). Szczegółowe wymogi prawne różnią się w zależności od kraju, więc skonsultuj się z prawnikiem w kontekście konkretnego zastosowania.
Zasoby
- Dokumentacja: GroupDocs.Signature for Java Docs
- Referencja API: Kompletna referencja Java API
- Pobrania: Najnowsza wersja i wydania
- Wsparcie: Forum GroupDocs
- Zakup: Kup licencję
- Darmowa wersja próbna: Pobierz wersję trial
Ostatnia aktualizacja: 2026-06-21
Testowane z: GroupDocs.Signature 23.10 for Java
Autor: GroupDocs
DigitalVerifyOptions verifyOptions = new DigitalVerifyOptions();
VerificationResult result = signature.verify(verifyOptions);
System.out.println("Valid: " + result.isValid());