webPDF 8: Neuerungen der Webservice Toolbox – Operation Outline

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:

webPDF und Java: mit der „wsclient“ Bibliothek ganz einfach

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