webPDF 8: Neuerungen der Webservice Toolbox – Operation Outline
Minimum technical requirements
- Java version: 8
- webPDF version: 8
- wsclient version: 2
Teil 1: Inhaltsübersicht bearbeiten mit der webPDF wsclient Bibliothek
In diesem Artikel möchten wir an einem Beispiel (Outline Operation) zeigen, wie Sie Operationen des webPDF Toolbox Webservices mit Hilfe der wsclient Bibliothek einsetzen können.
Wichtiger Hinweis:
Das nun folgende Coding-Beispiel beruht auf der Nutzung der webPDF wsclient Bibliothek. Um das Beispiel zu verstehen und anzuwenden, sollte zunächst folgender Blogbeitrag beachtet werden:
REST- oder SOAP-Session erzeugen
Um den Webservice so aufrufen zu können, wie wir es hier vorstellen möchten, wird davon ausgegangen, dass Sie bereits eine REST- oder SOAP-Session erzeugt haben und somit über Aufruf der WebserviceFactory entweder ein ToolboxWebService
Objekt (für eine SOAP Session) erzeugen können:
ToolboxWebService toolboxWebService = WebServiceFactory.createInstance( session, WebServiceType.TOOLBOX );
Oder ein ToolboxRestWebService
Objekt (für eine REST Session) erzeugen können:
ToolboxRestWebService toolboxWebService = WebServiceFactory.createInstance( session, WebServiceType.TOOLBOX );
Und diesem WebService
Objekt über Aufruf der Methode setDocument()
entweder ein RestDocument
oder ein SoapDocument
Objekt übergeben haben.
Wie erhalten Sie ändernden Zugriff auf ein Dokument?
Um ändernden Zugriff auf ein Dokument zu erhalten, müssen Sie dem Webserviceaufruf das aktuelle open und/oder permission Passwort des Dokuments mitgeben. Dies können Sie direkt am erzeugten toolboxWebService
Objekt tun:
toolboxWebService.getPassword().setOpen("password"); toolboxWebService.getPassword().setPermission("password");
Verfügt das Dokument nicht über einen entsprechenden Passwortschutz, so können Sie diesen Punkt allerdings überspringen.
Der Toolbox Webservice…
Der Toolbox Webservice ist ein Endpunkt Ihres webPDF Servers, der eine Reihe von Operationen zusammenfasst, mit denen Sie ihr PDF Dokument direkt manipulieren können. Hier soll es jetzt konkret um die Outline
Operation (Erstellen und Bearbeiten der Outlines) im Zuge der Neuerungen von webPDF 8.0 gehen.
Die Outline
Operation ermöglicht es, die Inhaltsübersicht Ihres PDF Dokuments zu manipulieren.
Sie fügen ihrem WebService
Objekt wie folgt eine Outline
Operation hinzu:
OutlineType outline = new OutlineType(); toolboxWebService.getOperation().add(outline);
Am Objekt outline
lassen sich folgende Parameter setzen:
Das Objekt „add“
Um eine Inhaltsübersicht für ihr Dokument zu erstellen, fügen Sie dem Outline
Objekt ein OutlineType.Add
Objekt hinzu.
OutlineType.Add add = new OutlineType.Add(); outline.setAdd(add);
Dem Objekt Add
lassen sich folgende Elemente hinzufügen:
Das Objekt „item“
Jedes Item
Objekt repräsentiert einen Knoten der Inhaltsübersicht des Dokuments. Sie können dem Add
Objekt eine beliebige Anzahl dieser Objekte hinzufügen und so eine beliebig komplexe Baumstruktur erzeugen.
ItemType firstPage = new ItemType(); add.getAdd().getItem().add(firstPage);
Am Objekt ItemType
lassen sich folgende Parameter setzen:
path (Standardwert: „“)
Legt den durch Slashes (/) abgetrennten Pfad fest, an dem das Element der Inhaltsstruktur hinzugefügt werden soll, beginnend mit einem initialen Slash. Die Pfade der Elemente dürfen beliebig aufeinander aufbauen und ermöglichen so den Aufbau der Baumstruktur der Inhaltsübersicht.
firstPage.setPath("/root");
itemName (Standardwert: „“)
Der Name des neuen Elements in der Inhaltsstruktur.
firstPage.setItemName("page1");
pathPosition (Standardwert: „inplace“)
Positioniert das neue Element relativ zu dem über path gewählten Pfad:
- BEFORE = Das Element wird auf gleicher Ebene und vor dem über path gewählten Element positioniert.
- INPLACE = Das über path gewählte Element wird als Elternelement des neuen Elements genutzt.
- AFTER = Das Element wird auf gleicher Ebene und nach dem über path gewählten Element positioniert.
firstPage.setPathPosition(AddPositionType.INPLACE);
isOpen (Standardwert: „false“)
Wird dieser Wert auf true
gesetzt, wird der Knoten beim Öffnen des Dokuments voll expandiert dargestellt.
firstPage.setIsOpen(true);
bold (Standardwert: „false“)
Wird dieser Wert auf true
gesetzt, wird der Name des Knotens mit größerer Schriftstärke dargestellt.
firstPage.setBold(true);
italic (Standardwert: „false“)
Wird dieser Wert auf true
gesetzt, wird der Name des Knotens kursiv dargestellt.
firstPage.setItalic(true);
color (Standardwert: „#000000“)
Legt die Schriftfarbe fest, mit der der Name des Knotens dargestellt wird.
firstPage.setColor("#FF0000");
ActionType Objekte
Einem Item
Objekt kann eine beliebige Zahl an ActionType
Objekten hinzugefügt werden. Jedes dieser ActionType
Objekte repräsentiert eine Aktion, die ausgelöst werden soll, sobald das Element in der Inhaltsübersicht angeklickt wird. Werden mehrere dieser Aktionen definiert, so werden diese im Dokument sequentiell ausgeführt.
Folgende ActionTypes stehen zur Verfügung:
goTo-ActionType
Der GoTo ActionType
wählt Elemente des Dokumentes an, um diese an zu springen. Durch Angabe entsprechender Unterelemente können hierbei beispielsweise Seiten oder Sprungmarken als Ziele gewählt werden.
GoToDestinationActionType goTo = new GoToDestinationActionType(); firstPage.getActions().add(goTo);
Folgende Sprungziele können für eine GoTo Action gewählt werden:
zoomPage-Destination
Springt auf eine gewählte Seite und zoomt die Ansichtsgröße dieser Seite.
ZoomDestinationType zoomDestination = new ZoomDestinationType(); goTo.setDestination(zoomDestination);
Folgende Parameter können für eine zoomDestination
gesetzt werden:
page (Standardwert: „1“)
Legt die Seite fest, die angesprungen werden soll.
zoomDestination.setPage(1);
leftOffset (Standardwert: „0“)
Legt den Abstand der Ansicht zum linken Seitenrand fest.
zoomDestination.setLeftOffset(15);
topOffset (Standardwert: „0“)
Legt den Abstand der Ansicht zum oberen Seitenrand fest.
zoomDestination.setTopOffset(10);
metrics (Standardwert: „px“)
Legt die Maßeinheit fest, in der die Abstände angegeben werden. Mögliche Werte:
- MM = Millimeter
- PX = Pixel
zoomDestination.setMetrics(MetricsType.MM);
zoom (Standardwert: „0“)
Setzt der prozentualen Vergrößerungswert fest.
zoomDestination.setZoom(140);
fitPage-Destination
Springt auf eine gewählte Seite und passt sie in die Ansicht ein.
FitPageDestinationType fitPageDestination = new FitPageDestinationType(); goTo.setDestination(fitPageDestination);
Folgende Parameter können für eine fitPageDestination
gesetzt werden:
page (Standardwert: „1“)
Legt die Seite fest, die angesprungen werden soll.
fitPageDestination.setPage(1);
fitWidth-Destination
Springt auf eine gewählte Seite und passt ihre Breite in die Ansicht ein.
FitWidthDestinationType fitWidthDestination = new FitWidthDestinationType(); goTo.setDestination(fitWidthDestination);
Folgende Parameter können für eine fitWidthDestination
gesetzt werden:
page (Standardwert: „1“)
Legt die Seite fest, die angesprungen werden soll.
fitWidthDestination.setPage(1);
topOffset (Standardwert: „0“)
Legt den Abstand der Ansicht zum oberen Seitenrand fest.
fitWidthDestination.setTopOffset(10);
metrics (Standardwert: „px“)
Legt die Maßeinheit fest, in der die Abstände angegeben werden. Mögliche Werte:
• MM = Millimeter
• PX = Pixel
fitWidthDestination.setMetrics(MetricsType.MM);
fitHeight-Destination
Springt auf eine gewählte Seite und passt ihre Höhe in die Ansicht ein.
FitHeightDestinationType fitHeightDestination = new FitHeightDestinationType(); goTo.setDestination(fitHeightDestination);
Folgende Parameter können für eine fitHeightDestination
gesetzt werden:
page (Standardwert: „1“)
Legt die Seite fest, die angesprungen werden soll.
fitHeightDestination.setPage(1);
leftOffset (Standardwert: „0“)
Legt den Abstand der Ansicht zum linken Seitenrand fest.
fitHeightDestination.setLeftOffset(15);
metrics (Standardwert: „px“)
Legt die Maßeinheit fest, in der die Abstände angegeben werden. Mögliche Werte:
- MM = Millimeter
- PX = Pixel
fitHeightDestination.setMetrics(MetricsType.MM);
Hier gehts zu webPDF 8: Operation Outline – Teil 2 – Vorstellung weiterer ActionTypes