Split Operation: Dokumente aufteilen
Minimum technical requirements
- Java version: 7
- webPDF version: 7
- wsclient version: 1
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:
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.