Webservice Wasserzeichen einfügen mit wsclient
Mindestanforderungen
- Java-Version: 7
- webPDF-Version: 7
- wsclient-Version: 1
Watermark-Operation des ToolboxWebService
In diesem Beitrag wird die Watermark-Operation des webPDF ToolboxWebService vorgestellt und gezeigt, wie sie mit der webPDF-wsclient-Bibliothek genutzt werden kann.
Wichtiger Hinweis: Das folgende Coding-Beispiel basiert auf der Nutzung der webPDF-wsclient-Bibliothek.
REST- oder SOAP-Session vorbereiten
Zunächst sollten Sie eine REST- oder SOAP-Session erzeugen und über die WebServiceFactory ein ToolboxWebService-Objekt (SOAP) oder ein ToolboxRestWebService-Objekt (REST) erstellen.
SOAP:
ToolboxWebService toolboxWebService =
WebServiceFactory.createInstance(
session, WebServiceType.TOOLBOX
);
REST:
ToolboxRestWebService toolboxWebService =
WebServiceFactory.createInstance(
session, WebServiceType.TOOLBOX
);
Danach übergeben Sie per setDocument() ein RestDocument oder SoapDocument.
Details zu Webservice-Parametern
Für schreibende Zugriffe ist oft das aktuelle open- und/oder permission-Passwort nötig:
toolboxWebService.getPassword().setOpen("password");
toolboxWebService.getPassword().setPermission("password");
Ist das Dokument nicht passwortgeschützt, kann dieser Schritt entfallen.
Watermark-Operation hinzufügen
Der ToolboxWebService bündelt mehrere Operationen zur direkten Bearbeitung von PDF-Dokumenten. So fügen Sie die Watermark-Operation hinzu:
WatermarkType watermark = new WatermarkType();
toolboxWebService.getOperation().add(watermark);
Parameter am Objekt Watermark
pages (Standardwert: "")
Legt den Seitenbereich fest. Möglich sind Einzelseiten (1), Listen (1,3,5), Bereiche (1-5) oder Kombinationen (1,3-5,6). Alle Seiten: *.
watermark.setPages("1,3-5,6");
angle (Standardwert: "45")
Definiert die Rotation des Wasserzeichens im Bereich 0 bis 360 Grad (im Uhrzeigersinn).
watermark.setAngle(66);
Das Objekt image
Wenn ein Bild als Wasserzeichen verwendet werden soll, wird ein WatermarkImageType gesetzt.
WatermarkImageType image = new WatermarkImageType();
watermark.setImage(image);
opacity (Standardwert: 25)
Deckkraft in Prozent (0 bis 100):
image.setOpacity(32);
scale (Standardwert: 0)
Skalierung in Prozent:
image.setScale(200);
Das Objekt data
Die Bildquelle wird über ein WatermarkFileDataType gesetzt.
WatermarkFileDataType data = new WatermarkFileDataType();
image.setData(data);
source
Legt die Quelle fest:
value: Datei als Byte-Arrayuri: URI-Referenz auf Datei
data.setSource(FileDataSourceType.VALUE);
value
Setzt Formulardaten als Byte-Array (bei source = value):
data.setValue(FileUtils.readFileToByteArray(new File("...")));
uri
Setzt Dateireferenz als URI (bei source = uri):
data.setUri(new File("...").toURI().toString());
Das Objekt text
Alternativ kann ein Text-Wasserzeichen gesetzt werden:
WatermarkTextType text = new WatermarkTextType();
watermark.setText(text);
text (Standardwert: "Confidential")
Legt den auszugebenden Wasserzeichentext fest:
text.setText("Vertraulich");
Das Objekt font
Die Schriftdefinition erfolgt über ein WatermarkFontType-Objekt:
WatermarkFontType font = new WatermarkFontType();
text.setFont(font);
Wichtige Parameter:
opacity(Standard: 100):font.setOpacity(35);name(Standard: ""); bei leer: Helveticabold(Standard: false):font.setBold(true);color(Standard: "#A0A0A0"):font.setColor("#FFFFFF");italic(Standard: false):font.setItalic(true);outline(Standard: false):font.setOutline(true);size(Standard: 24):font.setSize(12);
Das Objekt position
Positionierung über WatermarkPositionType, nutzbar für Bild- oder Text-Wasserzeichen:
WatermarkPositionType position = new WatermarkPositionType();
image.setPosition(position);
Parameter:
x(Standard: 0):position.setX(15);y(Standard: 0):position.setY(-6);width(Standard: 0):position.setWidth(200);height(Standard: 0):position.setHeight(16);metrics(Standard: "mm"):position.setMetrics(MetricsType.PX);position(Standard: "center_center"):position.setPosition(WatermarkPositionModeType.BOTTOM_RIGHT);aspectRatio(Standard: true):position.setAspectRatio(false);
SOAP-Beispiel (gekürzt)
try (
// Aufbau einer Session mit dem webPDF-Server (hier SOAP):
SoapSession session = SessionFactory.createInstance(
WebServiceProtocol.SOAP,
new URL("https://localhost:8080/webPDF/")
);
// Bereitstellen von Quell- und Zieldokument:
SoapDocument soapDocument = new SoapDocument(
new File("Pfad des Quelldokuments").toURI(),
new File("Pfad des Zieldokuments")
)
) {
// Webservice-Aufruf und Verarbeitung
} catch (ResultException | MalformedURLException ex) {
// Fehlerbehandlung
}
Tipp
- Weitere Parameter finden Sie in der Watermark-Parameterstruktur.
- Viele Parameter sind mit Standardwerten vorbelegt und müssen nur bei Abweichung gesetzt werden.
Weitere Coding-Beispiele finden Sie hier.