Print Operation des webPDF ToolboxWebService
Minimum technical requirements
- Java version: 7
- webPDF version: 7
- wsclient version: 1
Webservice Drucken mit Hilfe der webPDF wsclient Bibliothek
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:
Wir möchten hier anhand von Code-Schnipseln die Print
Operation vorstellen sowie deren Verwendung mit der webPDF wsclient Bibliothek.
Dafür sollten Sie bereits eine REST- oder SOAP-Session erzeugt haben und somit über Aufruf der WebserviceFactory
entweder ein ToolboxWebService
Objekt (für eine SOAP Session)
ToolboxWebService toolboxWebService = WebServiceFactory.createInstance( session, WebServiceType.TOOLBOX );
oder ein ToolboxRestWebService
Objekt (für eine REST Session) erzeugt haben.
ToolboxRestWebService toolboxWebService = WebServiceFactory.createInstance( session, WebServiceType.TOOLBOX );
Danach müssen jenem WebService
Objekt über Aufruf der Methode setDocument()
entweder ein RestDocument
oder ein SoapDocument
Objekt übergeben werden. Weiteres Hintergrundwissen dazu erhalten Sie einerseits in unserer webPDF-Dokumentation (z.B. zur Nutzung der REST-Schnittstelle) aber auch in unserem Blog: z.B. zur Nutzung der SOAP Schnittstelle mittels webPDF wsclient.
Alles zum Webservice Parameter
Da Sie ändernden Zugriff auf ein Dokument erhalten möchten, müssen Sie dem Webserviceaufruf das aktuelle open
und/oder permission
Passwort des Dokuments mit geben (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.
Was ist der ToolboxWebService? Beispiel Print/Drucken
Der ToolboxWebService
ist ein Endpunkt Ihres webPDF Servers. Dieser fasst eine Reihe von Operationen zusammen. Mit diesen ist es möglich, Ihr PDF Dokument zu verändern. Eine dieser Operationen ist die Print
Operation. Mit dieser Operation können Sie gezielt bestimmte Seiten Ihres PDF Dokuments ausdrucken. Wie funktioniert das konkret?
Sie fügen Ihrem WebService
Objekt wie folgt eine Print
Operation hinzu:
PrintType print = new PrintType(); toolboxWebService.getOperation().add(print);
Am Objekt Print
lassen sich folgende Parameter setzen:
pages (Standardwert: „1“)
Legt den Seitenbereich fest, der gedruckt 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.
print.setPages("1,3-5,6");
printerName (Standardwert: „“)
Hier können Sie den Namen des angeschlossenen Druckers übergeben, auf dem das Dokument gedruckt werden soll. Wird hier kein Name übergeben, so wird stattdessen versucht den Standarddrucker zu verwenden.
print.setPrinterName("PrinterName");
autoRotate (Standardwert: true)
Wird dieser boolesche Wert auf true
gesetzt, wird die Ausrichtung des PDF-Dokuments automatisch an die eingestellte Papierausrichtung des Druckers angepasst.
print.setAutoRotate(false);
centerInPage (Standardwert: false)
Wird dieser boolesche Wert auf true
gesetzt, werden PDF Seiten auf dem Druckergebnis zentriert.
print.setCenterInPage(true);
copies (Standardwert: 1)
Legt die Anzahl der Kopien für den Ausdruck fest.
print.setCopies(2);
expandToMargins (Standardwert: false)
Wird dieser Wert auf true
gesetzt werden Seiten, die kleiner als die verwendete Papiergröße sind, entsprechend vergrößert, um die Seite zu füllen.
print.setExpandToMargins(true);
jobName (Standardwert: „“)
Mit diesem Wert kann ein bestimmter Name für den Druckauftrag gesetzt werden, der entsprechend in der Druckerwarteschlange angezeigt würde.
print.setJobName("PrintJobName");
shrinkToMargins (Standardwert: false)
Wird dieser Wert auf true
gesetzt, werden Seiten, die größer als verwendete Papiergröße sind, entsprechend verkleinert, um auf die Seite zu passen.
print.setJobName("PrintJobName");
Beispiel mit mehr Details – 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: PrintType print = new PrintType(); toolboxWebService.getOperation().add(print); print.setPages("1,3-5,6"); print.setPrinterName("PrinterName"); print.setAutoRotate(false); print.setCenterInPage(true); print.setCopies(2); print.setExpandToMargins(true); print.setJobName("PrintJobName"); print.setShrinkToMargins(true); // 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.