webPDF Webservices Signature

Mindestanforderungen

  • Java-Version: 7
  • webPDF-Version: 7
  • wsclient-Version: 1

Signatur auf PDF-Dokumenten anbringen

Wenn Sie die Signature-Operation des webPDF-Webservices nutzen möchten, können Sie diese mit der webPDF-wsclient-Bibliothek verwenden.

Wichtiger Hinweis: Das folgende Coding-Beispiel basiert auf der Nutzung der webPDF-wsclient-Bibliothek.

Vorbereitungen für den Signature-Webservice

Erzeugen Sie zunächst eine REST- oder SOAP-Session und erstellen Sie dann über die WebServiceFactory entweder ein SignatureWebService-Objekt (SOAP) oder ein SignatureRestWebService-Objekt (REST).

SOAP:

SignatureWebService signatureWebService =
WebServiceFactory.createInstance(session, WebServiceType.SIGNATURE);

REST:

SignatureRestWebService signatureWebService =
WebServiceFactory.createInstance(session, WebServiceType.SIGNATURE);

Über setDocument() übergeben Sie dem Webservice ein RestDocument oder SoapDocument.

Was ist der Signature-Webservice?

Der Signature-Webservice ist ein Endpunkt des webPDF-Servers, der das Hinzufügen digitaler Signaturen zu PDF-Dokumenten ermöglicht.

Die Operation vom Typ SignatureType können Sie wie folgt abrufen:

SignatureType signatureType = signatureWebService.getOperation();

Das Objekt add

Hier werden die Einstellungen für das Hinzufügen der Signatur gesetzt:

SignatureType.Add add = new SignatureType.Add();
signatureType.setAdd(add);

appendSignature (Standardwert: true)

Legt fest, ob vorhandene Signaturen erhalten bleiben.

add.setAppendSignature(true);

certificationLevel (Standardwert: "noChanges")

Signaturstufe über CertificationLevelType:

  • NONE: Signieren ohne Zertifizierung, weitere Änderungen möglich
  • NO_CHANGES: Zertifizieren ohne weitere Änderungen
  • FORM_FILLING_AND_SIGNATURES: Zertifizieren, Formulare/Signaturen erlauben
  • FORM_FILLING_AND_SIGNATURES_AND_ANNOTATIONS: zusätzlich Annotationen erlauben
add.setCertificationLevel(CertificationLevelType.FORM_FILLING_AND_SIGNATURES);

contact (Standardwert: "")

Name des Unterzeichners:

add.setContact("John Doe");

fieldName (Standardwert: "Signature1")

Name des Signaturfeldes:

add.setFieldName("SignatureField");

keyName (Standardwert: "")

Alias des Schlüssels für die Signatur:

add.setKeyName("keyAlias");

Mehr Infos: Keystore-Dokumentation

keyPassword (Standardwert: "")

Passwort für den Zugriff auf den privaten Schlüssel:

add.setKeyPassword("keyPassword");

reason (Standardwert: "")

Grund für die Signatur:

add.setReason("demonstration for wsclient blog article");

location (Standardwert: "")

Ort der Signatur:

add.setLocation("Main Street 0, Anytown, USA");

Das Objekt appearance

Visuelle Eigenschaften der Signatur:

SignatureType.Add.Appearance appearance = new SignatureType.Add.Appearance();
add.setAppearance(appearance);

page (Standardwert: 1)

Seite der sichtbaren Signatur:

appearance.setPage(1);

identifier (Standardwert: "")

Text im rechten Bereich der Signatur:

appearance.setIdentifier("right field of signature text");

name (Standardwert: "")

Text im linken Bereich der Signatur:

appearance.setName("left area of signature");

Das Objekt identifierElements

Bestandteile der visuellen Signatur:

SignatureIdentifierType identifier = new SignatureIdentifierType();
appearance.setIdentifierElements(identifier);

Alle folgenden Optionen sind standardmäßig true:

identifier.setShowCommonName(true);
identifier.setShowCountry(true);
identifier.setShowDate(true);
identifier.setShowLocal(true);
identifier.setShowMail(true);
identifier.setShowName(true);
identifier.setShowOrganisationUnit(true);
identifier.setShowSignedBy(true);
identifier.setShowState(true);

Das Objekt image

Hintergrundgrafik der visuellen Signatur:

SignatureImageType image = new SignatureImageType();
appearance.setImage(image);

position (Standardwert: "center")

Position der Grafik über SignatureImagePositionType:

  • CENTER
  • LEFT
  • RIGHT
image.setPosition(SignatureImagePositionType.CENTER);

opacity (Standardwert: 50)

Deckkraft in Prozent:

image.setOpacity(60);

Das Objekt data

Übergibt die Bilddaten (Base64):

SignatureFileDataType imageData = new SignatureFileDataType();
image.setData(imageData);
imageData.setValue(Base64.encodeBase64(
FileUtils.readFileToByteArray(new File("image.png"))
));

Das Objekt position

Position und Größe der visuellen Signatur:

SignaturePositionType position = new SignaturePositionType();
appearance.setPosition(position);
  • x (Standard: 10 mm vom linken Rand): position.setX(10F);
  • y (Standard: 10 mm vom unteren Rand): position.setY(10F);
  • width (Standard: 80 mm): position.setWidth(80F);
  • height (Standard: 40 mm): position.setHeight(60F);

coordinates (Standardwert: "user")

Koordinatensystem über CoordinatesType:

  • USER: Ursprung links oben
  • PDF: Ursprung links unten
position.setCoordinates(CoordinatesType.USER);

metrics (Standardwert: "mm")

Maßeinheit über MetricsType:

  • MM: Millimeter
  • PX: Pixel
position.setMetrics(MetricsType.MM);

Beispiel für Webservice-Aufruf (SOAP)

try (
// Aufbau einer Session mit dem webPDF-Server (hier SOAP):
SoapSession session = SessionFactory.createInstance(
WebServiceProtocol.SOAP,
new URL("https://localhost:8080/webPDF/")
)
) {
// Webservice-Aufruf und Verarbeitung
}

Mehr Infos

Weitere Coding-Beispiele zur wsclient-Bibliothek finden Sie hier.