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öglichNO_CHANGES: Zertifizieren ohne weitere ÄnderungenFORM_FILLING_AND_SIGNATURES: Zertifizieren, Formulare/Signaturen erlaubenFORM_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:
CENTERLEFTRIGHT
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 obenPDF: Ursprung links unten
position.setCoordinates(CoordinatesType.USER);
metrics (Standardwert: "mm")
Maßeinheit über MetricsType:
MM: MillimeterPX: 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
- Mehr zur Nutzung von REST und SOAP im Blog.
- Parameter und Standardwerte finden Sie in der Signature-Parameterstruktur.
- Zur Blog-Reihe "Digitale Signatur":
- Teil 1: Grundlagen und Rechtliches
- Teil 2: Verschlüsselungstechnik
Weitere Coding-Beispiele zur wsclient-Bibliothek finden Sie hier.