Seiten rotieren mit der wsclient Bibliothek

In diesem Beitrag möchten wir Ihnen die Rotate Operation des Toolbox Webservices von webPDF vorstellen und zeigen, wie Sie diese mittels der webPDF wsclient Bibliothek  nutzen 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

Bevor Sie beginnen…

Um den Webservice auf die Art aufrufen zu können, die wir 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.

Einen Beitrag, der die Nutzung der REST-Schnittstelle erläutert, finden Sie hier:

Nutzung der REST Schnittstelle mittels webPDF wsclient

Einen Beitrag, der die Nutzung der SOAP-Schnittstelle erläutert, finden Sie hier:

Nutzung der SOAP Schnittstelle mittels webPDF wsclient

Webservice Parameter

Gerade um ändernden Zugriff auf ein Dokument zu erhalten, ist es oft nötig dem Webserviceaufruf das aktuelle open und/oder permission Passwort des Dokuments mit zu geben. 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 ü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. Eine dieser Operationen ist die Rotate Operation, die wir hier besprechen möchten.

Die Rotate Operation ermöglicht es Ihnen, Seiten Ihres PDF Dokuments zu rotieren.

Sie fügen Ihrem WebService Objekt wie folgt eine Rotate Operation hinzu:

RotateType rotate = new RotateType();
toolboxWebService.getOperation().add(rotate);

Am Objekt Rotate lassen sich folgende Parameter setzen:

pages (Standardwert: „1“)

Legt den Seitenbereich fest, der rotiert werden soll. Es kann entweder eine Einzelseite („1“) eine Auflistung von Seiten („1,3,5“), ein Seitenbereich („1-5“) oder eine Kombination dieser Elemente („1,3-5,6“) angegeben werden. Alle Seiten des Dokuments können über „*“ ausgewählt werden.

rotate.setPages("1,3-5,6");

degrees (Standardwert: „90“)

Die gewünschte Drehung der Seiten in Grad. Seiten haben stets eine Drehung, die einem Vielfachen von 90 Grad entspricht. Werte, die keinem 90 Grad Schritt entsprechen, werden auf einen solchen normalisiert.

rotate.setDegrees(180);

pageGroup (Standardwert: „all“)

Schränkt die Seiten in der gewählten Selektion entsprechend ihrer Seitennummer ein. Folgende Werte können hier gesetzt werden:

  • all = Alle gewählten Seiten werden rotiert.
  • even = Nur gewählte Seiten mit einer geraden Seitennummer werden rotiert.
  • odd = Nur gewählte Seiten mit einer ungeraden Seitennummer werden rotiert.
rotate.setPageGroup(PageGroupType.ODD);

pageOrientation (Standardwert: „any“)

Schränkt die Seiten in der gewählten Selektion entsprechend ihrer Orientierung ein. Folgende Werte können hier gesetzt werden:

  • all = Alle gewählten Seiten werden rotiert.
  • portrait = Nur gewählte Seiten im Hochformat werden rotiert.
  • landscape = Nur gewählte Seiten im Querformat werden rotiert.
rotate.setPageOrientation(PageOrientationType.PORTRAIT);

Ausführlicheres Beispiel

Schließlich noch ein etwas ausführlicheres Beispiel für unseren gesamten Webserviceaufruf (für die Ansprache der SOAP Schnittstelle):

try (
    // Aufbau einer Session mit dem webPDF Server(hier SOAP):
    SoapSession session = SessionFactory.createInstance(
        WebServiceProtocol.SOAP,
        new URL("https://localhost:8080/webPDF/")
    );
    // Bereit stellen des Dokuments, das verarbeitet werden soll
    // und der Datei, in die das Ergebnis geschrieben werden soll:
    SoapDocument soapDocument = new SoapDocument(
        new File("Pfad des Quelldokuments").toURI(),
        new File("Pfad des Zieldokuments")
    )
) {
    // Wahl des Webservices über eine Factory:
    ToolboxWebService toolboxWebService =
        WebServiceFactory.createInstance(
            session, WebServiceType.TOOLBOX
        );
    toolboxWebService.setDocument(soapDocument);
    toolboxWebService.getPassword().setOpen("password");
    toolboxWebService.getPassword().setPermission("password");

    // Objektorientierte Parametrisierung des Aufrufs:
    RotateType rotate = new RotateType();
    toolboxWebService.getOperation().add(rotate);

    rotate.setPages("1,3-5,6");
    rotate.setDegrees(180);
    rotate.setPageGroup(PageGroupType.ODD);
    rotate.setPageOrientation(PageOrientationType.PORTRAIT);

    // Ausführung.
    toolboxWebService.process();
} catch (ResultException | MalformedURLException ex) {
    // Zur Auswertung möglicher aufgetretener Fehler, stellt ihnen die
    // wsclient Bibliothek entsprechende Methoden zur Verfügung:
}

Die Parameter selbst finden Sie auch in unserem Nutzerhandbuch dokumentiert, allerdings dort natürlich ohne Beispiele zur Nutzung mittels der wsclient Bibliothek: rotate Parameterstruktur

Eine Dokumentation der Errorcodes und möglicherweise auftretenden Fehler, finden Sie hier.

Beachten Sie bitte auch: Sämtliche Parameter sind mit gewissen Standardwerten vorbelegt. Ist ein Standardwert angegeben und weicht dieser nicht von Ihrem gewünschten Wert ab, so ist es nicht zwingend nötig diesen Parameter zu setzen.

Weitere Coding-Beispiele für Webservices, welche Sie mit der ws-client Bibliothek nutzen können finden Sie hier.