Wie signiere ich ein PDF in Java digital?

This article was translated from English: Does it need improvement?
Translated
View the article in English

Ein PDF in Java mit IronPDF digital zu signieren ermöglicht es Ihnen, kryptografische Signaturen anzuwenden, die die Authentizität des Dokuments verifizieren und unautorisierte Änderungen erkennen. IronPDF unterstützt PdfSignature für das Anhängen PFX-zertifikatbasierter Signaturen an alle PDFs, das Festlegen sichtbarer Signaturbilder, die Steuerung von PDF-Zertifizierungsebenen mit PdfCertificationLevel und das Verbinden mit einem Zeitstempel-Server für die Langzeitstempelgültigkeit.

Schnellstart: Digitales Signieren eines PDFs in Java

  1. Installieren Sie IronPDF for Java über Maven oder Gradle
  2. Setzen Sie Ihren Lizenzschlüssel mit License.setLicenseKey()
  3. Laden Sie das PDF mit PdfDocument.fromFile()
  4. Erstellen Sie eine PdfSignature mit Ihrer PFX-Zertifikatsdatei und Ihrem Passwort
  5. Tragen Sie die Signatur mit signDigitalSignature() auf
  6. Speichern Sie das signierte PDF mit saveAs()
 :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 {
        // Set the IronPDF license key
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load an existing PDF document
        PdfDocument pdf = PdfDocument.fromFile(Path.of("document.pdf"));

        // Create a PdfSignature using a PFX certificate file and its password
        PdfSignature signature = new PdfSignature("certificate.pfx", "password123");

        // Set signature metadata for audit trails
        signature.setSigningContact("John Smith");
        signature.setSigningLocation("New York");
        signature.setSigningReason("Document Approval");

        // Apply the digital signature to the PDF
        pdf.signDigitalSignature(signature);

        // Save the signed PDF to a new file
        pdf.saveAs(Path.of("signed.pdf"));
    }
}
 :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 {
        // Set the IronPDF license key
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load an existing PDF document
        PdfDocument pdf = PdfDocument.fromFile(Path.of("document.pdf"));

        // Create a PdfSignature using a PFX certificate file and its password
        PdfSignature signature = new PdfSignature("certificate.pfx", "password123");

        // Set signature metadata for audit trails
        signature.setSigningContact("John Smith");
        signature.setSigningLocation("New York");
        signature.setSigningReason("Document Approval");

        // Apply the digital signature to the PDF
        pdf.signDigitalSignature(signature);

        // Save the signed PDF to a new file
        pdf.saveAs(Path.of("signed.pdf"));
    }
}
JAVA

Digitale Signaturen geben PDF-Dokumenten eine kryptografische Identität, die an einen privaten Schlüssel und ein Zertifikat gebunden ist. Wenn ein Empfänger ein unterschriebenes PDF in Adobe Acrobat oder einem konformen Viewer öffnet, überprüft die Anwendung, dass die Zertifikatskette auf eine vertrauenswürdige Autorität zurückverfolgbar ist und dass der Dokumentinhalt seit der Unterzeichnung nicht verändert wurde. Diese Kombination aus Authentifizierung und Integrität macht digitale Signaturen unverzichtbar für Verträge, Rechnungen, regulatorische Einreichungen und jedes Dokument, bei dem Manipulationsnachweise wichtig sind.

PDF-Signaturen fallen in zwei Kategorien: Genehmigungssignaturen und Autor (Zertifizierungs-) Signaturen. Eine Genehmigungssignatur zeichnet die Genehmigung eines Unterzeichners zu einem bestimmten Zeitpunkt auf; mehrere Parteien können in Folge Genehmigungssignaturen hinzufügen, ohne frühere zu ungültig zu machen. Eine Zertifizierungssignatur, die mit certify() angewendet wird, sperrt das Dokument gemäß einem PdfCertificationLevel und markiert den Unterzeichner als Dokumentenautor. Zertifizierungssignaturen müssen die erste Signatur auf einem Dokument sein und kontrollieren, welche Änderungen, wenn überhaupt, nachfolgende Unterzeichner machen dürfen.

IronPDF verarbeitet beide Signaturtypen über eine konsistente API, die auf PdfSignature und PdfDocument basiert. Für die Ersteinrichtung, Abhängigkeitskonfiguration und Lizenzschlüsselanweisungen sehen Sie die Übersicht Erste Schritte.

Was brauche ich, bevor ich anfange?

Bevor Sie PDFs mit IronPDF signieren, bestätigen Sie die folgenden Voraussetzungen:

  • Java 8 oder höher: IronPDF erfordert ein JDK der Version 8 oder höher.
  • IronPDF for Java: Fügen Sie die Abhängigkeit Ihrer Build-Datei hinzu. Finden Sie die neueste Version auf Maven Central.
  • Ein gültiger Lizenzschlüssel: Setzen Sie den Schlüssel beim Start der Anwendung mit License.setLicenseKey(). Für Einrichtungsdetails besuchen Sie den Lizenzschlüssel-Leitfaden.
  • Eine PFX- oder P12-Zertifikatsdatei: Dies ist ein passwortgeschütztes Archiv, das Ihren privaten Schlüssel und das öffentliche Zertifikat im PKCS#12-Format enthält. Selbstsignierte Zertifikate funktionieren für Entwicklung und Test; für Produktdokumente, die von externen Empfängern vertrauenswürdig sein müssen, verwenden Sie ein von einer anerkannten Zertifizierungsstelle (CA) wie DigiCert, Comodo oder GlobalSign ausgestelltes Zertifikat.

Für die vollständige Abhängigkeits- und Projektkonfiguration lesen Sie die Übersicht Erste Schritte.

Wie wende ich eine digitale Signatur auf ein PDF an?

Der PdfSignature-Konstruktor nimmt den Dateipfad zu Ihrem PFX-Zertifikat und dessen Passwort an. Nach der Erstellung können Sie optional Metadaten durch drei Settermethoden anhängen:

  • setSigningContact(String): der Name oder die E-Mail der signierenden Person
  • setSigningLocation(String): der physische oder organisatorische Standort des Unterzeichners
  • setSigningReason(String): eine kurze Beschreibung, warum das Dokument signiert wird

Diese Felder erscheinen im Signatur-Eigenschaftsfenster von PDF-Viewern und erstellen einen nützlichen Prüfpfad für Compliance-Zwecke. Rufen Sie signDigitalSignature(PdfSignature) auf dem geladenen PdfDocument auf, um die kryptografische Signatur einzubetten, und speichern Sie dann das Ergebnis mit saveAs().

//: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 {
        // Set the IronPDF license key
        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"));
    }
}
//: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 {
        // Set the IronPDF license key
        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"));
    }
}
JAVA

Nach Abschluss von signDigitalSignature() enthält das PDF einen kryptografischen Hash des Dokuments, der mit dem privaten Schlüssel aus der PFX-Datei signiert ist. Jede Änderung an der Datei nach diesem Punkt macht die Signatur ungültig.

Icon Quote related to Wie wende ich eine digitale Signatur auf ein PDF an?

Meine Lieblingsbibliothek dieser Art ist IronPDF. Es ermöglicht eine schnelle und effiziente Bearbeitung von PDF-Dateien. Es verfügt auch über viele wertvolle Funktionen, wie das Exportieren in das PDF/A-Format und das digitale Signieren von PDF-Dokumenten.

Milan Jovanovic related to Wie wende ich eine digitale Signatur auf ein PDF an?

Milan Jovanovic

Microsoft MVP

Fallstudie ansehen
Icon Quote related to Wie wende ich eine digitale Signatur auf ein PDF an?

IronOCR bedeutet, dass wir jährlich 40.000 $ durch manuelle Verarbeitung einsparen können, während die Produktivität gesteigert wird und Ressourcen für wichtige Aufgaben freigesetzt werden. Ich würde es sehr empfehlen.

Brent Matzelle related to Wie wende ich eine digitale Signatur auf ein PDF an?

Brent Matzelle

Technischer Leiter, OPYN

Fallstudie ansehen
Icon Quote related to Wie wende ich eine digitale Signatur auf ein PDF an?

Die Iron Suite spielt eine entscheidende Rolle in unseren Operationen. Diese Werkzeuge erhöhen die Effizienz im gesamten Unternehmen, einschließlich der Erstellung von Grundrissen und der Verbesserung des Bestandsmanagements.

David Jones related to Wie wende ich eine digitale Signatur auf ein PDF an?

David Jones

Leitender Software-Ingenieur, Agorus Build

Fallstudie ansehen

Wie füge ich ein sichtbares Signaturbild zu einem PDF hinzu?

Ein sichtbares Signaturbild platziert eine grafische Darstellung direkt auf der PDF-Seite an der Stelle des Signaturfelds. Dies wird häufig verwendet, um eine gescannte handschriftliche Unterschrift, ein Firmenstempel oder ein Logo anzuzeigen, sodass das Dokument signiert aussieht, wenn es gedruckt oder angesehen wird, nicht nur bei der Inspektion mit dem Signaturfeld eines PDF-Readers.

Um ein sichtbares Bild hinzuzufügen, öffnen Sie die Bilddatei als FileInputStream und übergeben es an PdfSignature.setSignatureImage(InputStream), bevor Sie signDigitalSignature() aufrufen. Das Bild wird innerhalb des Signaturfelds auf der Seite eingebettet.

//: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 {
        // Set the IronPDF license key
        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 {
        // Set the IronPDF license key
        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"));
    }
}
JAVA

Das Signaturbild ersetzt nicht den kryptografischen Schutz; sowohl der grafische Stempel als auch das zugrunde liegende Zertifikat bleiben Teil des unterschriebenen Ergebnisses. PNG- und JPEG-Formate werden für das Signaturbild unterstützt.

Wie zertifiziere ich ein PDF mit einem bestimmten Berechtigungslevel?

Das Zertifizieren eines PDFs unterscheidet sich vom Hinzufügen einer Genehmigungssignatur. Wenn Sie pdf.certify(PdfSignature, PdfCertificationLevel) aufrufen, signieren Sie das Dokument als dessen Autor und geben an, welche Arten von Änderungen nachfolgende Benutzer vornehmen dürfen. Ein zertifiziertes PDF zeigt ein blaues Band oder einen ähnlichen Vertrauensindikator in Adobe Acrobat an, der den Empfängern signalisiert, dass das Dokument von einer verifizierten Quelle stammt.

IronPDF bietet drei Zertifizierungsebenen über das PdfCertificationLevel-Enum:

  • PdfCertificationLevel.NO_CHANGES_ALLOWED: das Dokument ist nach der Zertifizierung vollständig gesperrt; keine weiteren Änderungen sind erlaubt.
  • PdfCertificationLevel.FORM_FILLING: Empfänger dürfen Formularfelder ausfüllen, aber keine Kommentare, Anmerkungen oder andere Änderungen hinzufügen.
  • PdfCertificationLevel.FORM_FILLING_AND_ANNOTATIONS: Empfänger dürfen Formularfelder ausfüllen und Anmerkungen hinzufügen, aber strukturelle Bearbeitungen sind weiterhin verboten.

Da eine Zertifizierungssignatur die erste Signatur auf einem Dokument sein muss, rufen Sie certify() auf, bevor Sie Bestätigungssignaturen von anderen Parteien anwenden.

//: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 {
        // Set the IronPDF license key
        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 {
        // Set the IronPDF license key
        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"));
    }
}
JAVA

Sobald das Dokument mit NO_CHANGES_ALLOWED zertifiziert ist, wird jeder Versuch, das PDF zu ändern, die Zertifizierungssignatur brechen und PDF-Betrachter werden eine Warnung anzeigen. Wählen Sie FORM_FILLING oder FORM_FILLING_AND_ANNOTATIONS aus, wenn das zertifizierte Dokument von nachgeschalteten Empfängern ausgefüllt oder annotiert werden muss, ohne die Zertifizierung des Urhebers ungültig zu machen.

Wie füge ich einer digitalen Signatur einen Zeitstempel hinzu?

Ein Timestamp Authority (TSA)-Server liefert ein kryptografisch unterschriebenes Zeit-Token, das neben der Signatur im PDF eingebettet wird. Dieser Zeitstempel belegt, wann die Signatur angewendet wurde, unabhängig von der lokalen Uhr des Unterzeichners. Die langfristige Gültigkeit hängt von Zeitstempeln ab: auch nach Ablauf eines Signaturzertifikats ermöglicht ein vertrauenswürdiger Zeitstempel den Prüfern zu bestätigen, dass die Signatur erstellt wurde, während das Zertifikat noch gültig war.

Um die Zeitstempelung zu aktivieren, setzen Sie zwei Eigenschaften auf dem PdfSignature-Objekt, bevor Sie signieren:

  • setTimestampHashAlgorithm(PdfHashAlgorithm): gibt den Hash-Algorithmus an, der beim Erstellen des Zeitstempeltokens verwendet werden soll. PdfHashAlgorithm.SHA256 ist die Standardwahl.
  • setTimestampUrl(String): der HTTP- oder HTTPS-Endpunkt des TSA-Servers, der das Zeitstempeltoken ausstellen wird.

Mehrere TSA-Server stehen kostenlos für Test- und Niedrigvolumen-Produktionsgebrauch zur Verfügung. https://freetsa.org/tsr und http://timestamp.digicert.com sind zwei häufig verwendete Endpunkte.

//: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 {
        // Set the IronPDF license key
        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 {
        // Set the IronPDF license key
        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"));
    }
}
JAVA

Wenn der TSA beim Unterzeichnungszeitpunkt nicht erreichbar ist, wird IronPDF eine Ausnahme auslösen; überprüfen Sie den Netzwerkzugriff und die URL des TSA-Endpunkts, bevor Sie in der Produktion bereitstellen. Für Produktionsabläufe mit hohem Volumen, erwägen Sie ein kommerzielles TSA-Abonnement, um Betriebszeit- und Durchsatzgarantien sicherzustellen.

Was sind die nächsten Schritte für das digitale Signieren von PDFs in Java?

Die PdfSignature-Klasse von IronPDF deckt die gesamte Bandbreite der PDF-Signaturanforderungen ab: Bestätigungssignaturen mit Zertifikatsmetadaten, sichtbare grafische Stempel, PDF-Zertifizierung mit Zugriffskontrollniveaus und TSA-gestützte Zeitstempel für langfristige Gültigkeit. Um Ihren PDF-Workflow über das Signieren hinaus zu erweitern, erkunden Sie diese verwandten Ressourcen:

Starten Sie Ihre kostenlose Testversion, um digitale Signaturen zu Ihrem Java-PDF-Workflow hinzuzufügen. Um eine Lizenz für die Produktionsnutzung zu erwerben, sehen Sie sich die Lizenzierungsoptionen an.

Häufig gestellte Fragen

Wie signiere ich ein PDF in Java mit IronPDF digital?

Laden Sie Ihr PDF mit PdfDocument.fromFile(), erstellen Sie eine PdfSignature unter Verwendung des Pfads zu Ihrer PFX-Zertifikatsdatei und Ihres Passworts, setzen Sie optional Metadaten mit setSigningContact(), setSigningLocation() und setSigningReason(), rufen Sie dann pdf.signDigitalSignature(signature) auf und speichern Sie mit pdf.saveAs().

Was ist der Unterschied zwischen signDigitalSignature() und certify() in IronPDF?

signDigitalSignature() fügt eine Zustimmungssignatur hinzu, die die Zustimmung eines Unterzeichners aufzeichnet. Mehrere Zustimmungssignaturen können in Reihenfolge hinzugefügt werden. certify() fügt eine Autorensignatur hinzu, die zuerst auf das Dokument angewandt werden muss, und legt ein PdfCertificationLevel fest, das kontrolliert, welche Änderungen nachfolgende Unterzeichner vornehmen können.

Wie füge ich ein sichtbares Signaturbild zu einem signierten PDF in Java hinzu?

Öffnen Sie die Bilddatei als FileInputStream und übergeben Sie sie an signature.setSignatureImage(imageStream), bevor Sie signDigitalSignature() aufrufen. Das Bild wird in das Signaturfeld auf der Seite neben der kryptografischen Signatur eingebettet.

Welche PDF-Zertifizierungsstufen unterstützt IronPDF?

IronPDF unterstützt drei Stufen über das PdfCertificationLevel-Enum: NO_CHANGES_ALLOWED sperrt das Dokument vollständig, FORM_FILLING erlaubt nur das Ausfüllen von Formularfeldern, und FORM_FILLING_AND_ANNOTATIONS erlaubt Formularfelder und Anmerkungen, während strukturelle Bearbeitungen verhindert werden.

Wie füge ich einen Zeitstempel zu einer digitalen Signatur in Java hinzu?

Setzen Sie signature.setTimestampHashAlgorithm(PdfHashAlgorithm.SHA256) und signature.setTimestampUrl("https://freetsa.org/tsr") auf der PdfSignature, bevor Sie signDigitalSignature() aufrufen. IronPDF kontaktiert den TSA-Server und bettet das Zeitstempel-Token in das signierte PDF ein.

Welches Zertifikatsdateiformat erfordert IronPDF für die PDF-Signatur?

IronPDF erfordert eine PFX- oder P12-Zertifikatsdatei, die ein PKCS#12-Archiv enthalten, den privaten Schlüssel und das öffentliche Zertifikat. Selbstsignierte Zertifikate funktionieren für die Entwicklung; für den Produktionseinsatz erwerben Sie ein Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle wie DigiCert oder GlobalSign.

Was sind die Voraussetzungen, um PDFs mit IronPDF in Java digital zu signieren?

Sie benötigen Java 8 oder höher, die IronPDF-Abhängigkeit hinzugefügt über Maven oder Gradle, einen gültigen Lizenzschlüssel, der mit License.setLicenseKey() gesetzt wurde, und eine PFX- oder P12-Zertifikatsdatei mit ihrem Passwort.

Darrius Serrant
Full-Stack-Software-Ingenieur (WebOps)

Darrius Serrant hat einen Bachelor-Abschluss in Informatik von der University of Miami und arbeitet als Full-Stack-WebOps-Marketing-Ingenieur bei Iron Software. Seit seiner Jugend vom Programmieren angezogen, sah er die Informatik als sowohl mysteriös als auch zugänglich, was es zum perfekten Medium für Kreativität und Problemlösung ...

Weiterlesen
Bereit anzufangen?
Version: 2026.6 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis?
Führen Sie eine Probe aus Sehen Sie zu, wie Ihr HTML-Code in eine PDF-Datei umgewandelt wird.