Dieser Abschnitt beschreibt das Thema Drucken aus der konzeptionellen Perspektive. Beispiele befinden sich im Kapitel „Beispiele zum Druck“.
jadice document platform nutzt die Java Print Service API um Druckjobs durchzuführen. Die
zentrale Klasse um Druckjobs abzusetzen ist PrintManager
. Der PrintManager
verwaltet den Java-Druckservice, nimmt Druckanfragen entgegen und führt sie aus.
Die Klasse bietet verschiedene statische Methoden an, die es erlauben, eine
Druckanfrage zu übergeben. Die Übergabe erfolgt mittels einer Instanz von
PrintJobConfiguration
.
Printer
ist die zentrale Klasse zum Druck von Dokumenten aus jadice. Diese
Klasse ist abgeleitet von der abstrakten Basisklasse AbstractPrinter
, die
grundsätzliche Druckfunktionalität bietet und von Integratoren genutzt werden
kann, um eigene Printer
zu verwirklichen. In den meisten Integrationen der
jadice document platform ist es nicht notwendig eigene Printer
zu implementieren.
Die zentrale Klasse zur Beschreibung eines Druckjobs ist
PrintJobConfiguration
. Über die statische
create(..)
-Methode lässt sich eine vorkonfigurierte Instanz
erzeugen und im Anschluss an den eigenen Bedarf anpassen. Sie bietet über die
getSourcePages(..)
-Methode die Möglichkeit zu druckende
Seiten hinzuzufügen. Die Liste die dazu verwendet wird ist eine EventList
und
muss daher beim Lesen uns Schreiben entsprechend gelockt werden (siehe „EventList
und Erweiterungen an der Collections API“).
Weitere optionale Angaben zum Druck können einem Druckjob über die API und dem Druckdialog vorgegeben werden:
-
Angabe des Seitenformats über getter-/setter-Methoden oder als Benutzer-Eingabe (Dialog)
-
Weitere Einschränkung der zu druckenden Seiten über Benutzer-Eingabe (Dialog)
-
Flags, die angeben ob und unter welchen Bedingungen Seiten optimal in den Druckbereich eingepasst werden sollen. Ist diese Option aktiviert, versucht jadice zum Beispiel durch Anpassen der Seitengröße und/oder durch automatisches Rotieren die Seite in das Medium einzupassen.
Die zentrale Klasse PrintEventBroadcaster
bietet die Möglichkeit,
Informationen über den aktuellen Fortschritt von Druckaufträgen zu erhalten. Zu
diesem Zweck können über statische Methoden eigene Implementationen des
Interface PrintEventListener
registriert werden. Mit jeder Statusänderung
werden diese durch ein PrintEvent
über den neu eingenommenen Zustand
informiert. Im Besonderen erhält die integrierende Anwendung somit Informationen
darüber, ob ein Druckvorgang erfolgreich abgeschlossen werden konnte oder mit
einem Fehler beendet wurde.