Print Operation des webPDF ToolboxWebService
Technische Mindestanforderungen
- 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) erzeugt haben:
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 mitgeben (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 die verwendete Papiergröße sind, entsprechend verkleinert, um auf die Seite zu passen.
print.setShrinkToMargins(true);
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")
)
) catch (ResultException | MalformedURLException ex)
Weitere Code-Beispiele für Webservices, die Sie mit der wsclient-Bibliothek nutzen können, finden Sie hier.