4.15. PDF-Generierung für den Goobi viewer

Dieses TaskManager-Plugin erzeugt PDF-Dateien auf der Basis von METS/MODS-Dokumenten und schreibt diese ins Dateisystem. Aufträge zur Erzeugung von PDF-Dateien werden über den TaskClient erstellt und können über eine REST-Schnittstelle beobachtet werden. Nach Beendigung eines Auftrages wird eine Statusmeldung an eine konfigurierte URL gesendet.

Dieses Plugin ist so ausgelegt, dass unterbrochene Aufträge neu bearbeitet und abgeschlossen werden, wenn das Plugin zwischenzeitlich ausgeschaltet wurde, oder der gesamte TaskManager ausgeschaltet wird. Dies gilt auch für ein unerwartetes Beenden des Servers.

Zur Kommunikation mit dem TaskManager ist ein Goobi viewer mit einer Versionsnummer 3.1 oder neuer erforderlich, der über einen Zugriff auf einen TaskClient verfügen muss, die bereits im Lieferumfang der Goobi-viewer-Installation enthalten sein kann.

Aufruf des Plugins

Dieses Plugin wird im Gegensatz zu den anderen TaskManager-Plugins nicht über den üblichen TaskClient-Aufruf beauftragt, sondern programmatisch unmittelbar aus dem Java-Code. Der Aufruf im Quellcode erfolgt dabei folgendermaßen:

OcrClient.createPost(taskManagerUrl, 
    metsFilePath, targetPath, "", "", priority, logId, 
    title, dataRepository, "VIEWERPDF", downloadIdentifier, 
    "noServerTypeInTaskClient", "", "", "", "", false);

Konfiguration des Plugins

Im Plugin-Konfigurationsordner des intranda TaskManagers muss die Konfigurationsdatei viewerpdfconfig.xml mit folgendem Inhalt vorhanden sein:

<config_plugin>
    <jobsInProcessing max="1"></jobsInProcessing>
    <contentServerconfig>
        /opt/digiverso/itm/plugins/config/config_contentServer.xml
    </contentServerconfig>
    <viewerServletUrl>http://localhost:8082/viewer/harvest</viewerServletUrl>
</config_plugin>

Die einzelnen Konfigurationselemente haben dabei folgende Bedeutung:

Gegebenenfalls muss eine Kopie der ContentServer Konfiguration des Goobi viewers an den in der Plugin-Konfiguration genannten Ort abgelegt werden.

Statusabfragen über REST-API

Der Status eines PDF-Auftrages kann über eine REST-Schnittstelle abgefragt werden. Den im Folgenden angegebenen URLs muss dabei jeweils die URL der REST-Schnittstelle des TaskManagers vorangestellt werden. Diese entspricht in der Regel der URL des TaskManagers, ergänzt um /rest. Folgende Anfragen werden unterstützt:

Details zum Auftrag: /viewerpdf/info/{id}

Dies gibt allgemeine Informationen zum PDF-Auftrag aus der TaskManager-Datenbank als JSON-Objekt zurück. Das Objekt hat folgende Eigenschaften:

Position in der PDF-Queue: /viewerpdf/numJobsUntil/{id}

Dies gibt als einfachen Text die Anzahl an PDF-Aufträgen zurück, die vor dem Auftrag mit dem Identifier {id} in der Warteschlange stehen.

Anzahl Seiten vor bis zum Aufrag: /viewerpdf/numPagesBefore/{id}

Dies gibt als einfachen Text die Anzahl an Seiten aller PDF-Aufträge zurück, die vor dem Auftrag mit dem Identifier {id} in der Warteschlange stehen.

Aufträge vor dem Auftrag: /viewerpdf/jobsUntil/{id}

Dies gibt ein JSON-Objekt mit einer Liste aller PDF-Aufträge zurück, die vor dem Auftrag mit dem Identifier {id} in der Warteschlange stehen. Die Liste besteht aus Objekten mit den Eigenschaften, wie sie auch bei der Anfrage von Auftrags-Details erstellt werden.

Für alle Anfragen kann statt des Identifiers auch der Titel der angefragten PDF-Datei verwendet werden. In diesem Fall wird der jeweils letzte Auftrag mit diesem Titel verwendet.

Rückmeldung bei Abschluss

Nach Beendigung eines PDF-Auftrages, unabhängig von erfolgreicher oder fehlerhafter Durchführung, wird an die im TaskManager-Plugin konfigurierte viewerServletUrl ein Get-Request mit folgenden Parametern gesendet:

Wenn ein Auftrag im TaskManager manuell abgebrochen wurde, wird keine Abschlussnachricht verschickt.

Stoppen des Plugins

Wird das Plugin gestoppt, wird die laufende PDF-Generierung nach Erzeugung der aktuell in Bearbeitung befindlichen PDF-Seite abgebrochen. Das aktuelle PDF gilt dann als noch nicht erzeugt. Nach dem nächsten Start des Plugins wird das aktuelle PDF erneut generiert. Dies gilt auch für einen unerwarteten Stopp des TaskManagers oder des gesamten Tomcat-Servers.

Das PDF wird innerhalb des TaskManager-Plugins erzeugt. Ein Stopp des TaskManagers beendet entsprechend auch die PDF-Generierung sofort. Auch hier gilt, dass das unterbrochene PDF nach einem Neustart des TaskManager erneut erzeugt wird.

Last updated