Jak podpisać cyfrowo PDF w Javie
Podpisywanie cyfrowe PDF-a w Javie z IronPDF pozwala na zastosowanie podpisów kryptograficznych, które weryfikują autentyczność dokumentu i wykrywają nieautoryzowane zmiany. IronPDF obsługuje PdfSignature do dołączania podpisów opartych na certyfikatach PFX do dowolnego pliku PDF, ustawiania widocznych obrazów podpisów, kontrolowania poziomów certyfikacji PDF za pomocą PdfCertificationLevel oraz łączenia się z serwerem Timestamp Authority w celu zapewnienia długoterminowej ważności podpisu.
Szybki start: Podpisuj cyfrowo PDF-a w Javie
- Zainstaluj IronPDF dla Java poprzez Maven lub Gradle
- Ustaw swój klucz licencyjny za pomocą
License.setLicenseKey() - Załaduj plik PDF za pomocą
PdfDocument.fromFile() - Utwórz plik
PdfSignaturez plikiem certyfikatu PFX i hasłem - Dodaj sygnaturę
signDigitalSignature() - Zapisz podpisany plik PDF z
saveAs()
```java :title=Quickstart //:path=/static-assets/ironpdf-java/content-code-examples/how-to/how-to-digitally-sign-pdfs-java-tutorial/quickstart.java import java.io.IOException; import java.nio.file.Path; import com.ironsoftware.IronPdf.License; import com.ironsoftware.IronPdf.PdfDocument; import com.ironsoftware.IronPdf.Signature.PdfSignature;
public class Main { public static void main(String[] args) throws IOException { // Ustaw klucz licencyjny IronPDF License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Załaduj istniejący dokument PDF
PdfDocument pdf = PdfDocument.fromFile(Path.of('document.pdf'));
// Utwórz PdfSignature używając pliku certyfikatu PFX i jego hasła
PdfSignature signature = new PdfSignature('certificate.pfx', 'password123');
// Ustaw metadane podpisu dla ścieżki audytu signature.setSigningContact("John Smith"); signature.setSigningLocation("Nowy Jork"); signature.setSigningReason("Akceptacja dokumentu");
// Zastosuj podpis cyfrowy do pliku PDF pdf.signDigitalSignature(signature);
// Zapisz podpisany plik PDF jako nowy plik pdf.saveAs(Path.of("signed.pdf")); } }
Podpisy cyfrowe nadają dokumentom PDF tożsamość kryptograficzną powiązaną z kluczem prywatnym i certyfikatem. Gdy odbiorca otworzy podpisany PDF w Adobe Acrobat lub innym zgodnym programie, aplikacja weryfikuje, czy łańcuch certyfikatów sięga zaufanego organu oraz czy zawartość dokumentu nie zmieniła się od momentu podpisania. To połączenie uwierzytelnienia i integralności czyni podpisy cyfrowe niezbędnymi dla umów, faktur, zgłoszeń regulacyjnych i wszelkich dokumentów, w których dowód ingerencji ma znaczenie.
Podpisy PDF dzielą się na dwie kategorie: podpisy zatwierdzające i podpisy autora (certyfikacyjne). Podpis zatwierdzający rejestruje akceptację jednego podpisującego w określonym momencie; wiele stron może dodawać podpisy zatwierdzające w kolejności bez unieważniania wcześniejszych. Podpis certyfikacyjny, zastosowany z `certify()`, blokuje dokument zgodnie z `PdfCertificationLevel` i oznacza podpisującego jako autora dokumentu. Podpisy certyfikacyjne muszą być pierwszym podpisem w dokumencie i kontrolują, jakie zmiany mogą wprowadzać kolejni podpisujacy, jeśli w ogóle.
IronPDF obsługuje oba typy podpisów za pomocą spójnego interfejsu API opartego na `PdfSignature` i `PdfDocument`. Dla początkowej konfiguracji, konfiguracji zależności i instrukcji dotyczących kluczy licencyjnych zapoznaj się z [Przegląd Href="https://ironpdf.com/java/docs/">Przegląd Href="https://ironpdf.com/java/docs/">Rozpoczęcie pracy](https://ironpdf.com/java/docs/).
<div class="hsg-featured-snippet">
<h2>Jak Podpisać Cyfrowo Dokument PDF w Java</h2>
<ol>
<li><a href="https://ironpdf.com/java/#download-modal">Zainstaluj bibliotekę IronPDF Java dla podpisów cyfrowych</a></li>
<li>Użyj klasy <strong>PdfDocument</strong> do załadowania pliku PDF</li>
<li>Utwórz <strong>PdfSignature</strong> przy użyciu pliku certyfikatu PFX i hasła</li>
<li>Opcjonalnie ustaw widoczny obraz podpisu za pomocą <code>setSignatureImage</code></li>
<li>Zastosuj podpis za pomocą <code>signDigitalSignature</code></li>
<li>Certyfikuj PDF przy użyciu <code>certify</code> i <code>PdfCertificationLevel</code></li>
<li>Zapisz podpisany plik PDF za pomocą <code>saveAs</code></li>
</ol>
</div>
## Co jest potrzebne przed rozpoczęciem?
Przed podpisaniem plików PDF za pomocą IronPDF, upewnij się, że spełnione są następujące wymagania:
- **Java 8 lub wyższa**: IronPDF wymaga JDK w wersji 8 lub nowszej.
- **IronPDF for Java**: Dodaj zależność do pliku buildowego. Znajdź najnowszą wersję na [Maven Central](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf).
- **Prawidłowy klucz licencyjny**: Ustaw klucz podczas uruchamiania aplikacji za pomocą `License.setLicenseKey()`. Dla szczegółów konfiguracji, odwiedź [przewodnik po kluczach licencyjnych](https://ironpdf.com/java/get-started/license-keys/).
- **Plik certyfikatu PFX lub P12**: Jest to chronione hasłem archiwum zawierające Twój klucz prywatny i certyfikat publiczny w formacie PKCS#12. Certyfikaty samopodpisane nadają się do rozwoju i testowania; dla dokumentów produkcyjnych, które muszą być zaufane przez zewnętrznych odbiorców, użyj certyfikatu wydanego przez uznanego Dostawcę Usług Certyfikacyjnych (CA) takiego jak DigiCert, Comodo, czy GlobalSign.
Dla pełnej konfiguracji zależności i konfiguracji projektu, odnieś się do [Przegląd rozpoczęcia pracy](https://ironpdf.com/java/docs/).
## Jak Zastosować Podpis Cyfrowy do Pliku PDF?
Konstruktor `PdfSignature` przyjmuje ścieżkę do pliku certyfikatu PFX oraz hasło do niego. Po skonstruowaniu, możesz dołączyć opcjonalne metadane przez trzy metody ustawiające:
- `setSigningContact(String)`: imię i nazwisko lub adres e-mail osoby podpisującej
- `setSigningLocation(String)`: fizyczna lub organizacyjna lokalizacja osoby podpisującej
- `setSigningReason(String)`: krótki opis powodu podpisania dokumentu
Te pola pojawiają się w panelu właściwości podpisu w przeglądarkach PDF i tworzą przydatny zapis audytu do celów zgodności. Wywołaj `signDigitalSignature(PdfSignature)` na załadowanym `PdfDocument`, aby osadzić podpis kryptograficzny, a następnie zapisz wynik za pomocą `saveAs()`.
```java
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/how-to-digitally-sign-pdfs-java-tutorial/apply-signature.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;
import com.ironsoftware.IronPdf.Signature.PdfSignature;
public class Main {
public static void main(String[] args) throws IOException {
// Ustaw klucz licencyjny IronPDF
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Load the PDF to sign
PdfDocument pdf = PdfDocument.fromFile(Path.of("contract.pdf"));
// Construct the PdfSignature with the certificate path and password
PdfSignature signature = new PdfSignature('certificate.pfx', 'password123');
// Set metadata that will appear in the signature properties panel
signature.setSigningContact("Jane Doe");
signature.setSigningLocation("Austin, TX");
signature.setSigningReason("Contract Approval");
// Embed the digital signature in the PDF
pdf.signDigitalSignature(signature);
// Save the signed document
pdf.saveAs(Path.of("contract-signed.pdf"));
}
}
Po zakończeniu signDigitalSignature() plik PDF zawiera kryptograficzny skrót treści dokumentu podpisany kluczem prywatnym z pliku PFX. Wszelkie modyfikacje pliku po tym momencie spowodują unieważnienie podpisu.
Jak Dodać Widoczny Obraz Podpisu do Pliku PDF?
Widoczny obraz podpisu umieszcza graficzną reprezentację bezpośrednio na stronie PDF w miejscu pola podpisu. Jest to często używane do wyświetlenia zeskanowanego odręcznego podpisu, pieczęci firmowej lub logotypu, aby dokument wyglądał na podpisany, gdy jest drukowany lub przeglądany, a nie tylko podczas sprawdzania w panelu podpisu czytelnika PDF.
Aby dodać widoczny obraz, otwórz plik obrazu jako FileInputStream i przekaż go do PdfSignature.setSignatureImage(InputStream) przed wywołaniem signDigitalSignature(). Obraz jest osadzany w polu podpisu na stronie.
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/how-to-digitally-sign-pdfs-java-tutorial/visible-signature-image.java
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;
import com.ironsoftware.IronPdf.Signature.PdfSignature;
public class Main {
public static void main(String[] args) throws IOException {
// Ustaw klucz licencyjny IronPDF
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Load the PDF document to sign
PdfDocument pdf = PdfDocument.fromFile(Path.of("agreement.pdf"));
// Build the PdfSignature from a PFX certificate
PdfSignature signature = new PdfSignature('certificate.pfx', 'password123');
// Set signing metadata
signature.setSigningContact("Alice Johnson");
signature.setSigningLocation("Chicago, IL");
signature.setSigningReason("Agreement Authorization");
// Open the signature image file and attach it to the signature
FileInputStream imageStream = new FileInputStream("signature.png");
signature.setSignatureImage(imageStream);
// Apply the digital signature with the visible image to the PDF
pdf.signDigitalSignature(signature);
// Save the signed PDF with the visible signature image embedded
pdf.saveAs(Path.of("agreement-signed.pdf"));
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/how-to-digitally-sign-pdfs-java-tutorial/visible-signature-image.java
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;
import com.ironsoftware.IronPdf.Signature.PdfSignature;
public class Main {
public static void main(String[] args) throws IOException {
// Ustaw klucz licencyjny IronPDF
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Load the PDF document to sign
PdfDocument pdf = PdfDocument.fromFile(Path.of("agreement.pdf"));
// Build the PdfSignature from a PFX certificate
PdfSignature signature = new PdfSignature('certificate.pfx', 'password123');
// Set signing metadata
signature.setSigningContact("Alice Johnson");
signature.setSigningLocation("Chicago, IL");
signature.setSigningReason("Agreement Authorization");
// Open the signature image file and attach it to the signature
FileInputStream imageStream = new FileInputStream("signature.png");
signature.setSignatureImage(imageStream);
// Apply the digital signature with the visible image to the PDF
pdf.signDigitalSignature(signature);
// Save the signed PDF with the visible signature image embedded
pdf.saveAs(Path.of("agreement-signed.pdf"));
}
}
Obraz podpisu nie zastępuje ochrony kryptograficznej; zarówno graficzny stempel, jak i podstawowy certyfikat pozostają częścią podpisanego wyniku. Formaty PNG i JPEG są obsługiwane dla obrazu podpisu.
Jak Certyfikować Dokument PDF Z Określonym Poziomem Uprawnień?
Certyfikowanie dokumentu PDF różni się od dodawania podpisu zatwierdzającego. Wywołując pdf.certify(PdfSignature, PdfCertificationLevel), podpisujesz dokument jako jego autor i określasz, jakie rodzaje zmian są dozwolone dla kolejnych użytkowników. Certyfikowany dokument PDF wyświetla niebieską wstążkę lub podobny wskaźnik zaufania w Adobe Acrobat, sygnalizując odbiorcom, że dokument pochodzi z zweryfikowanego źródła.
IronPDF oferuje trzy poziomy certyfikacji poprzez wyliczenie PdfCertificationLevel:
PdfCertificationLevel.NO_CHANGES_ALLOWED: dokument jest całkowicie zablokowany po certyfikacji; żadne dalsze modyfikacje nie są dozwolone.PdfCertificationLevel.FORM_FILLING: odbiorcy mogą wypełniać pola formularza, ale nie mogą dodawać komentarzy, adnotacji ani innych zmian.PdfCertificationLevel.FORM_FILLING_AND_ANNOTATIONS: odbiorcy mogą wypełniać pola formularza i dodawać adnotacje, ale zmiany strukturalne są nadal zabronione.
Ponieważ podpis certyfikacyjny musi być pierwszym podpisem na dokumencie, przed dodaniem jakichkolwiek podpisów zatwierdzających od innych stron należy wywołać certify().
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/how-to-digitally-sign-pdfs-java-tutorial/certify-pdf.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.PdfCertificationLevel;
import com.ironsoftware.IronPdf.Signature.PdfSignature;
public class Main {
public static void main(String[] args) throws IOException {
// Ustaw klucz licencyjny IronPDF
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Load the PDF that will be certified
PdfDocument pdf = PdfDocument.fromFile(Path.of("report.pdf"));
// Create the PdfSignature from the author's certificate
PdfSignature signature = new PdfSignature("author-certificate.pfx", "password123");
// Set author metadata for the certification signature
signature.setSigningContact("Legal Department");
signature.setSigningLocation("San Francisco, CA");
signature.setSigningReason("Official Publication");
// Certify the document with NO_CHANGES_ALLOWED to lock it completely
// Use FORM_FILLING to allow form field input after certification
// Use FORM_FILLING_AND_ANNOTATIONS to also permit annotations
pdf.certify(signature, PdfCertificationLevel.NO_CHANGES_ALLOWED);
// Save the certified PDF
pdf.saveAs(Path.of("report-certified.pdf"));
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/how-to-digitally-sign-pdfs-java-tutorial/certify-pdf.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.PdfCertificationLevel;
import com.ironsoftware.IronPdf.Signature.PdfSignature;
public class Main {
public static void main(String[] args) throws IOException {
// Ustaw klucz licencyjny IronPDF
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Load the PDF that will be certified
PdfDocument pdf = PdfDocument.fromFile(Path.of("report.pdf"));
// Create the PdfSignature from the author's certificate
PdfSignature signature = new PdfSignature("author-certificate.pfx", "password123");
// Set author metadata for the certification signature
signature.setSigningContact("Legal Department");
signature.setSigningLocation("San Francisco, CA");
signature.setSigningReason("Official Publication");
// Certify the document with NO_CHANGES_ALLOWED to lock it completely
// Use FORM_FILLING to allow form field input after certification
// Use FORM_FILLING_AND_ANNOTATIONS to also permit annotations
pdf.certify(signature, PdfCertificationLevel.NO_CHANGES_ALLOWED);
// Save the certified PDF
pdf.saveAs(Path.of("report-certified.pdf"));
}
}
Po certyfikacji za pomocą NO_CHANGES_ALLOWED każda próba modyfikacji pliku PDF spowoduje złamanie podpisu certyfikacyjnego, a przeglądarki plików PDF wyświetlą ostrzeżenie. Wybierz FORM_FILLING lub FORM_FILLING_AND_ANNOTATIONS, gdy certyfikowany dokument musi zostać wypełniony lub opatrzony adnotacjami przez dalszych odbiorców bez unieważniania certyfikacji autora.
Jak Dodać Znacznik Czasu do Podpisu Cyfrowego?
Serwer Urzędu Czasu (TSA) dostarcza kryptograficznie podpisany token czasowy, który jest osadzany razem z podpisem w PDF. Ten znacznik czasu udowadnia, kiedy podpis został zastosowany, niezależnie od lokalnego zegara podpisującego. Długoterminowa ważność zależy od znaczników czasu: nawet po wygaśnięciu certyfikatu podpisującego, zaufany znacznik czasu pozwala walidatorom potwierdzić, że podpis został stworzony, gdy certyfikat był jeszcze ważny.
Aby włączyć oznaczanie czasem, przed podpisaniem należy ustawić dwie właściwości obiektu PdfSignature:
setTimestampHashAlgorithm(PdfHashAlgorithm): określa algorytm haszujący, który ma być używany podczas obliczania tokenu sygnatury czasowej.PdfHashAlgorithm.SHA256to standardowy wybór.setTimestampUrl(String): punkt końcowy HTTP lub HTTPS serwera TSA, który wygeneruje token znacznika czasu.
Kilka serwerów TSA jest dostępnych bezpłatnie do testowania i niskonakładowych zastosowań produkcyjnych. https://freetsa.org/tsr i http://timestamp.digicert.com to dwa powszechnie używane punkty końcowe.
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/how-to-digitally-sign-pdfs-java-tutorial/timestamp-signature.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.PdfHashAlgorithm;
import com.ironsoftware.IronPdf.Signature.PdfSignature;
public class Main {
public static void main(String[] args) throws IOException {
// Ustaw klucz licencyjny IronPDF
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Load the PDF to sign with a timestamp
PdfDocument pdf = PdfDocument.fromFile(Path.of("invoice.pdf"));
// Construct the PdfSignature from the certificate file
PdfSignature signature = new PdfSignature('certificate.pfx', 'password123');
// Set signature metadata
signature.setSigningContact("Finance Team");
signature.setSigningLocation("Seattle, WA");
signature.setSigningReason("Invoice Authorization");
// Configure the timestamp: set the hash algorithm and TSA endpoint
signature.setTimestampHashAlgorithm(PdfHashAlgorithm.SHA256);
signature.setTimestampUrl("https://freetsa.org/tsr");
// Apply the digital signature; IronPDF will contact the TSA to obtain
// and embed a timestamp token alongside the cryptographic signature
pdf.signDigitalSignature(signature);
// Save the timestamped, signed PDF
pdf.saveAs(Path.of("invoice-signed-timestamped.pdf"));
}
}
//:path=/static-assets/ironpdf-java/content-code-examples/how-to/how-to-digitally-sign-pdfs-java-tutorial/timestamp-signature.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.IronPdf.License;
import com.ironsoftware.IronPdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.PdfHashAlgorithm;
import com.ironsoftware.IronPdf.Signature.PdfSignature;
public class Main {
public static void main(String[] args) throws IOException {
// Ustaw klucz licencyjny IronPDF
License.setLicenseKey("IronPDF-MYLICENSE-KEY-1EF01");
// Load the PDF to sign with a timestamp
PdfDocument pdf = PdfDocument.fromFile(Path.of("invoice.pdf"));
// Construct the PdfSignature from the certificate file
PdfSignature signature = new PdfSignature('certificate.pfx', 'password123');
// Set signature metadata
signature.setSigningContact("Finance Team");
signature.setSigningLocation("Seattle, WA");
signature.setSigningReason("Invoice Authorization");
// Configure the timestamp: set the hash algorithm and TSA endpoint
signature.setTimestampHashAlgorithm(PdfHashAlgorithm.SHA256);
signature.setTimestampUrl("https://freetsa.org/tsr");
// Apply the digital signature; IronPDF will contact the TSA to obtain
// and embed a timestamp token alongside the cryptographic signature
pdf.signDigitalSignature(signature);
// Save the timestamped, signed PDF
pdf.saveAs(Path.of("invoice-signed-timestamped.pdf"));
}
}
Gdy TSA jest niedostępny w momencie podpisywania, IronPDF rzuci wyjątek; sprawdź dostępność sieci i adres URL punktu końcowego TSA przed wdrożeniem do produkcji. Dla wysokiego obciążenia, rozważ subskrypcję komercyjnego TSA, aby zapewnić gwarancje dostępności i przepustowości.
Jakie Są Kolejne Kroki dla Podpisywania Cyfrowego Plików PDF w Java?
Klasa PdfSignature firmy IronPDF obejmuje pełen zakres wymagań dotyczących podpisów PDF: podpisy zatwierdzające z metadanymi certyfikatu, widoczne pieczęcie graficzne, certyfikację PDF z poziomami kontroli dostępu oraz sygnatury czasowe wspierane przez TSA zapewniające długoterminową ważność. Aby rozszerzyć swoje przepływy pracy PDF poza podpisywanie, odkryj te powiązane zasoby:
- Twórz Formularze PDF w Java: buduj wypełnialne pola formularzy, które można uzupełniać po certyfikacji PDF
- Wypełniaj Formularze PDF w Java: programatycznie wypełniaj pola formularzy w istniejących dokumentach PDF
- Dodawaj Adnotacje do PDF w Java: dołączaj komentarze, podkreślenia i oznaczenia do określonych miejsc na stronach
- Łącz PDF-y w Java: łącz wiele dokumentów przed zastosowaniem pojedynczego podpisu certyfikacyjnego
- Przykłady IronPDF dla Java: kopiuj-wklej próbki kodu obejmujące pełne API Java IronPDF
Rozpocznij swój bezpłatny okres próbny aby dodać podpisy cyfrowe do swojego przepływu pracy z plikami PDF w Java. Aby zakupić licencję do użycia produkcyjnego, zobacz opcje licencjonowania.
Często Zadawane Pytania
Jak cyfrowo podpisać PDF w Java za pomocą IronPDF?
Wczytaj swój PDF za pomocą PdfDocument.fromFile(), utwórz PdfSignature używając ścieżki do pliku certyfikatu PFX i jego hasła, opcjonalnie ustaw metadane za pomocą setSigningContact(), setSigningLocation() i setSigningReason(), następnie wywołaj pdf.signDigitalSignature(signature) i zapisz za pomocą pdf.saveAs().
Jaka jest różnica między signDigitalSignature() a certify() w IronPDF?
signDigitalSignature() dodaje podpis zatwierdzający, który rejestruje zatwierdzenie jednego sygnatariusza. Wiele podpisów zatwierdzających może być dodanych w kolejności. certify() dodaje podpis autora, który musi być pierwszy w dokumencie i ustawia PdfCertificationLevel kontrolujący, jakie zmiany mogą wprowadzać kolejni sygnatariusze.
Jak dodać widoczny obraz podpisu do podpisanego PDF w Java?
Otwórz plik obrazu jako FileInputStream i przekaż go do signature.setSignatureImage(imageStream) przed wywołaniem signDigitalSignature(). Obraz jest osadzony w polu podpisu na stronie obok podpisu kryptograficznego.
Jakie poziomy certyfikacji PDF obsługuje IronPDF?
IronPDF obsługuje trzy poziomy za pośrednictwem wyliczenia PdfCertificationLevel: NO_CHANGES_ALLOWED całkowicie blokuje dokument, FORM_FILLING zezwala tylko na wprowadzanie danych w polach formularzy, a FORM_FILLING_AND_ANNOTATIONS zezwala na pola formularzy i adnotacje, zapobiegając strukturalnym edycjom.
Jak dodać znacznik czasu do podpisu cyfrowego w Java?
Ustaw signature.setTimestampHashAlgorithm(PdfHashAlgorithm.SHA256) i signature.setTimestampUrl("https://freetsa.org/tsr") w PdfSignature przed wywołaniem signDigitalSignature(). IronPDF kontaktuje się z serwerem TSA i osadza token znacznika czasu w podpisanym PDF.
Jaki format pliku certyfikatu jest wymagany przez IronPDF do podpisywania PDF?
IronPDF wymaga pliku certyfikatu PFX lub P12, co jest archiwum PKCS#12 zawierającym klucz prywatny i publiczny certyfikat. Certyfikaty samopodpisane działają w celach rozwojowych; do użycia produkcyjnego uzyskaj certyfikat od zaufanego Urzędu Certyfikacji takiego jak DigiCert lub GlobalSign.
Jakie są wymogi wstępne do cyfrowego podpisywania plików PDF za pomocą IronPDF w Java?
Potrzebujesz Java 8 lub nowszego, dodanej zależności IronPDF przez Maven lub Gradle, ważnego klucza licencyjnego ustawionego za pomocą License.setLicenseKey() oraz pliku certyfikatu PFX lub P12 z jego hasłem.


