Webservice-Ansprache mit der Ant-Task-Bibliothek
Mindestanforderungen
- Java-Version: 7
- webPDF-Version: 7
- ant-task-Version: 1

Wenn Sie Apache Ant einsetzen, stellt sich schnell die Frage, ob sich webPDF-Webservices direkt aus einem Ant-Target aufrufen lassen. Damit könnten feste Abläufe von Webservice-Aufrufen automatisiert und für viele Dokumente wiederholt werden.
Ja, das geht
Die Bibliothek webPDF ant-task stellt einfache Tasks bereit, mit denen sich einzelne oder mehrere webPDF-Webservice-Aufrufe starten und hintereinander ausführen lassen.
Die eigentlichen Aufrufe werden über die webPDF wsclient-Bibliothek durchgeführt.
ant-task auf GitHub und in Maven Central
Die ant-task-Bibliothek ist öffentlich und kostenlos verfügbar:
- GitHub-Projekt: Pflege, Weiterentwicklung und Issues
- Issues: Fehler melden
- Pull Requests: Änderungen einreichen
- Maven Central: Paket
net.webpdf
Maven-Dependency:
<dependency>
<groupId>net.webpdf</groupId>
<artifactId>webpdf-ant</artifactId>
<version>1.0.0</version>
</dependency>
Einbindung über Apache IVY:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
<info organisation="example" module="webpdf-ant-demo" />
<dependencies>
<dependency org="net.webpdf" name="webpdf-ant" rev="1.0.0" />
</dependencies>
</ivy-module>
Beispiel: webPDF-Webservice aus einem Ant-Target
Im folgenden Beispiel werden Dateien aus einem Quellordner gelesen, über den Converter-Webservice in PDF konvertiert und in einem Zielordner gespeichert.
<?xml version="1.0" encoding="UTF-8"?>
<project name="webpdf-ant-example" default="executeWebPDFTask"
xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:webpdf="antlib:net.webpdf.ant">
<target name="executeWebPDFTask">
<mkdir dir="input" />
<mkdir dir="output" />
<ivy:resolve />
<ivy:cachepath pathid="webpdf.classpath" conf="default" />
<taskdef uri="antlib:net.webpdf.ant"
resource="net/webpdf/ant/antlib.xml"
classpathref="webpdf.classpath" />
<webpdf:webpdf serverurl="http://localhost:8080/webPDF"
targetdir="output"
failonerror="true">
<fileset dir="input">
<include name="**/*.png" />
</fileset>
<globmapper from="*.png" to="*.pdf" />
<webpdf:group>
<webpdf:operation>
<webpdf:converter />
</webpdf:operation>
</webpdf:group>
</webpdf:webpdf>
</target>
</project>
Der webpdf-Task
Der webpdf-Task ist der Einstiegspunkt und stellt grundlegende Optionen bereit:
serverurl: Adresse des webPDF-Serverstempdir(optional): Verzeichnis für temporäre Dateientargetdir: Zielpfad für Ergebnissefailonerror(optional): Abbruch bei erstem Fehler
Falls erforderlich, können Zugangsdaten per usercredentials gesetzt werden:
<webpdf:usercredentials username="user" password="secret" />
Quelldateien auswählen
Als Eingabe können Sie z. B. file oder fileset verwenden:
<fileset dir="input">
<include name="**/*.png" />
</fileset>
operation- und group-Task
Der gewünschte Webservice-Endpunkt wird im operation-Task definiert, inklusive Parametrisierung gemäß Nutzerhandbuch.
Ein operation-Task muss immer innerhalb eines group-Tasks liegen. Eine Gruppe kann mehrere Operationen in fester Reihenfolge ausführen.
Verkettung von Operationen und Gruppen
Mehrere Operationen in einer Gruppe:
<webpdf:group>
<webpdf:operation>...</webpdf:operation>
<webpdf:operation>...</webpdf:operation>
</webpdf:group>
Mehrere Gruppen hintereinander:
<webpdf:webpdf ...>
<webpdf:group>...</webpdf:group>
<webpdf:group>...</webpdf:group>
</webpdf:webpdf>
Nutzung von Input-/Output-Variablen
Für komplexere Abläufe können Zwischenergebnisse in Variablen gespeichert und später wiederverwendet werden:
OUTPUT: Ergebnis einer Gruppe sichernINPUT: explizit anderes Ausgangsdokument für Folgegruppe setzen
Damit lassen sich auch Verzweigungen und Zusammenführungen (z. B. per merge) robust modellieren.