Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 7. Auflage
 <<    <     >    >>   API  Kapitel 35 - Drucken

35.4 Drucken mit dem Desktop API



Eine weitere interessante Alternative ist das Drucken mit dem Desktop API. Zentrum des API ist die Klasse Desktop des Package java.awt. Hierbei wird eine Datei anhand ihrer Endung an die dafür zuständige Applikation übergeben und diese angewiesen, den Druck durchzuführen. So kann sie sich beispielsweise den Acrobat Reader für das Drucken von PDF-Dateien zunutze machen, den Standardbrowser zum Drucken von HTML-Dateien usw.

Allerdings ist nicht sichergestellt, dass das Drucken auf allen Plattformen funktioniert. Folgende Voraussetzungen müssen erfüllt sein:

Mit den folgenden Methoden kann man abfragen, ob der Desktop auf dieser Plattform unterstützt wird und das Drucken ermöglicht:

static boolean isDesktopSupported()

boolean isSupported(Action action)
java.awt.Desktop

Das folgende Programm zeigt die beispielhafte Verwendung des API. Es druckt die Datei, die als Parameter über die Kommandozeile übergeben wird:

001 /* Listing3504.java */
002 
003 import java.awt.*;
004 import java.awt.Desktop.Action;
005 import java.io.*;
006 
007 public class Listing3504
008 {
009   public static void main(String[] args) throws IOException
010   {
011     Desktop d;
012     if (Desktop.isDesktopSupported()) {
013       d = Desktop.getDesktop();
014       
015       if (d.isSupported(Action.PRINT)) {
016         File file = new File(args[0]);
017         if (file.exists()) {
018           d.print(file);
019         }
020         else {
021           throw new IllegalStateException(
022           file + " existiert nicht");
023         }
024       }
025       else {
026         throw new IllegalStateException(
027         "Drucken wird nicht unterstützt");
028       }
029     }
030     else {
031       throw new IllegalStateException(
032       "Desktop wird nicht unterstützt");
033     }
034   }
035 }
Listing3504.java
Listing 35.4: Drucken einer Datei mit dem Desktop API

Beim Drucken über das Desktop API ist es nicht möglich, die Ausgabe optisch zu beeinflussen, außerdem können keine Kopien gedruckt oder abweichende Druckerfächer angesteuert werden. Zudem eignet es sich aufgrund seiner konzeptionell bedingten Trägheit natürlich nicht für den Massendruck.


 Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 7. Auflage, Addison Wesley, Version 7.0
 <<    <     >    >>   API  © 1998, 2011 Guido Krüger & Heiko Hansen, http://www.javabuch.de