Print Operation des webPDF ToolboxWebService

Technische Mindestanforderung

  • 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:

webPDF und Java: mit der „wsclient“ Bibliothek ganz einfach

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.