Split Operation: Dokumente aufteilen

Verwendung des Webservice „Dokumente aufteilen“ mit der wsclient Bibliothek

Wir geben hier ein konkretes Beispiel für die Anwendung der Split Oparation des webPDF ToolboxWebService unter zu Hilfe nahme der wsclient Bibliothek von webPDF.

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

Webservice Aufruf

Bevor wir mit dem Beschreibung der Split Operation starten, soll hier gezeigt werden, wie Sie den Webservice aufrufen sollten. Erzeugen Sie zunächst eine REST- oder eine SOAP-Session. So werden über den Aufruf der WebserviceFactory entweder ein ToolboxWebService Objekt (für eine SOAP Session) oder ein ToolboxRestWebService Objekt (für eine REST Session) erzeugt:

ToolboxWebService toolboxWebService =
    WebServiceFactory.createInstance(
        session, WebServiceType.TOOLBOX
    );

Beispiel REST:

ToolboxRestWebService toolboxWebService =
    WebServiceFactory.createInstance(
        session, WebServiceType.TOOLBOX
    );

Dann sollten Sie diesem WebService Objekt über Aufruf der Methode setDocument() entweder ein RestDocument oder ein SoapDocument Objekt übergeben.

Bitte beachten Sie zusätzlich unsere beiden Blogbeiträge zum Thema SOAP und REST:

Beschreibung der REST Schnittstelle mit wsclient
Wie nutzt man die SOAP Schnittstelle mittels webPDF wsclient?

Webservice Parameter

Da Sie in der Regel ändernden Zugriff auf ein Dokument benötigen, sollten Sie dem Webserviceaufruf das aktuelle open und/oder permission Passwort des Dokuments mitgeben.

Das erfolgt direkt am erzeugten ToolboxWebService Objekt:

toolboxWebService.getPassword().setOpen("password");
toolboxWebService.getPassword().setPermission("password");

Verfügt das Dokument nicht über einen entsprechenden Passwortschutz, so können Sie diesen Punkt überspringen.

Toolbox Webservice Operationen

Der Toolbox Webservice ist ein Endpunkt Ihres webPDF Servers, der einige Operationen zusammenfasst, mit denen Sie Ihr PDF Dokument gezielt manipulieren können. Wir wollen diese Operationen am Anwendungsbeispiel Split konkret beschreiben. Split, zu deutsch Aufteilen heißt, Sie können Ihre PDF Dokumente entsprechend teilen und Seiten herauslösen.

Sie fügen ihrem WebService Objekt wie folgt eine Split Operation hinzu:

SplitType split = new SplitType();
toolboxWebService.getOperation().add(split);

Am Objekt Split lassen sich folgende Parameter setzen:

pages (Standardwert: „1“)

Legt den Seitenbereich fest, der entsprechend des gewählten Modus verarbeitet 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.

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

fileNameTemplate (Standardwert: „page[%d]“)

Führen der gewählte Modus und Seitenbereich zur Erzeugung eines ZIP-Archivs, kann über dieses Template der Aufbau der Dateinamen der PDF-Dokumente im ZIP-Archiv bestimmt werden. Das Template sollte den Platzhalter %d enthalten, der durch die entsprechende Seitennummer ersetzt werden wird.

split.setFileNameTemplate("p[%d]");

mode (Standardwert: „last“)

Definiert die Art, auf die das PDF-Dokument aufgeteilt werden soll. Folgende Werte können hier gesetzt werden:

• last = Definiert über „pages“ die letzte Seite, die im neuen PDF-Dokument enthalten ist.
• first = Definiert über „pages“ die erste Seite, die im neuen PDF-Dokument enthalten ist.
• list = Fügt sämtliche über „pages“ gewählten Seiten einem neuen PDF-Dokument hinzu.
• single = Löst sämtliche über „pages“ gewählten Seiten aus dem PDF-Dokument und hinterlegt jede als eigenes Dokument in einem ZIP-Archiv.
• each = Löst jede x-te Seite aus dem Dokument. Über „pages“ wird der Rhythmus dieser Auswahl festgelegt. „startPage“ definiert ab welcher Seite dieser Vorgang beginnen soll. Das Ergebnis ist eine ZIP-Datei mit einem Einzeldokument pro Seite.
• group = wählt entsprechende „pages“ je Gruppen aus x Seiten aus dem Dokument und hinterlegt diese als Dokument in einer ZIP-Datei. „startPage“ bestimmt über die Seite, mit der dieser Vorgang beginnen soll.
• burst = Aus jeder Seite des Dokuments wird ein Einzeldokument erzeugt. Das Ergebnis ist eine ZIP-Datei.

split.setMode(SplitModeType.LIST);

startPage (Standardwert: „1“)

Definiert für die Modi each und group die erste betrachtete Seite des Dokuments.

split.setStartPage(3);

Ausführlicheres Beispiel für den Aufbau einer Session mit dem webPDF Server (hier SOAP):

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:
    SplitType split = new SplitType();
    toolboxWebService.getOperation().add(split);

    split.setPages("1,3-5,6");
    split.setFileNameTemplate("p[%d]");
    split.setMode(SplitModeType.LIST);
    split.setStartPage(3);

    // Ausführung.
    toolboxWebService.process();
} catch (ResultException | MalformedURLException ex) {

    // Zur Auswertung möglicher aufgetretener Fehler, stellt ihnen die
    // wsclient Bibliothek entsprechende Methoden zur Verfügung:
}

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