Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

12-Drucken Drucken in JAVA. 12-Drucken2 Probleme beim Drucken: Es können nur graphische Informationen gedruckt werden. Die zu druckende Information muss.

Ähnliche Präsentationen


Präsentation zum Thema: "12-Drucken Drucken in JAVA. 12-Drucken2 Probleme beim Drucken: Es können nur graphische Informationen gedruckt werden. Die zu druckende Information muss."—  Präsentation transkript:

1 12-Drucken Drucken in JAVA

2 12-Drucken2 Probleme beim Drucken: Es können nur graphische Informationen gedruckt werden. Die zu druckende Information muss graphisch aufbereitet werden. Größe und Auflösung unterscheiden zwischen Bildschirm und verschiedenen Druckern stark: Bildschirm: dpi Drucker: dpi Photosatz: >1200 dpi Es muss eine Anpassung vorgenommen werden Wegen der unterschiedlichen Papiergrößen sind nicht alle Formate möglich. Die Nutzung der Drucker ist sehr stark von der Hard- und Softwareumgebung abhängig.

3 12-Drucken3 Drucken in JAVA 1. Das zu druckende Objekt muss das Interface Printable oder Pageable implementieren. 2. Es muss ein PrinterJob erzeugt werden. 3. Es müssen die notwendigen Einstellungen vorgenommen werden (Seitengröße, Orientierung...). 4. Der Ausdruck muss gestartet werden.

4 12-Drucken4 Das Interface Printable Das Interface Printable beschreibt Ausgaben, die auf einer Seite gemacht werden. public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException Diese Methode muss implementiert werden. graphics: Graphikkontext der auszugebenden Seite pageFormat: beschreibt das Format der auszugebenden Seite pageIndex: Nummer der auszugebenden Seite Die Methode print(...) erfüllt die gleiche Funktion, wie paintComponent für die Ausgabe auf den Bildschirm. Man kann print genau so implementieren, wie paintComponent In EMMA301Paint sollen alle graphischen Objekte druckbar sein. Erweiterung des Interfaces GraphicalObject und der absrakten Klasse AbstractGraphicalObject.

5 12-Drucken5 public interface GraphicalObject extends Printable {... } public abstract class AbstractGraphicalObject implements GraphicalObject {... public int print(Graphics g, PageFormat pageFormat, int pageIndex) { double scale = Math.min(pageFormat.getImageableWidth()/bounds2D.getWidth(), pageFormat.getImageableHeight()/bounds2D.getHeight()); scale=scale>1.0?1.0:scale; ((Graphics2D)g).translate (pageFormat.getImageableX(), pageFormat.getImageableY()); ((Graphics2D)g).scale(scale, scale); paint((Graphics2D)g); return Printable.PAGE_EXISTS; } }

6 12-Drucken6 Die Klasse PrinterJob Die Klasse PrinterJob beschreibt einen vollständigen Druckvorgang und ermöglicht die Auswahl der Seitenformate, des Druckers u.s.w. Ein Objekt der Klasse PrinterJob muss mit der Methode public static PrinterJob getPrinterJob() erzeugt werden, da die Klasse selbst abstrakt ist. public PageFormat pageDialog(PageFormat page) öffnet einen Dialog zur Auswahl des Seitenformates public boolean printDialog() öffnet einen Dialog zur Auswahl des Druckers. Liefert true, wenn mit ok beendet wird sonst false.

7 12-Drucken7 public void setPrintable(Printable painter, PageFormat format) setzt das zu druckende Printable-Objekt und das zu verwendende Seitenformat. public void setPageable(Pageable document) throws NullPointerException setzt das zu druckende (mehrseitige Dokument) public void print() throws PrinterException startet die Ausgabe

8 12-Drucken8 try { PrinterJob printerJob = PrinterJob.getPrinterJob(); activePageFormat=printerJob.pageDialog(activePageFormat); printerJob.setPrintable( ((EMMA301PaintFrame)desktopPane.getSelectedFrame()). getPicture(),activePageFormat); if (printerJob.printDialog()) printerJob.print(); } catch (PrinterException pe) {}

9 12-Drucken9 Interface Pageable Das Interface Pageable dient der Ausgabe mehrseitiger Dokumente, wobei jede Seite ein anderes Seitenformat haben kann. public Printable getPrintable(int pageIndex) throws IndexOutOfBoundsException ist die wesentliche zu implementierende Methode. Sie liefert für die Seite Nummer pageIndex die zu druckende Seite.

10 12-Drucken10 Klasse Book Die Klasse Book ist eine reale Implementierung des Interfaces Pageable. Sie dient der Verwaltung mehrseitiger Dokumente. public void append(Printable painter, PageFormat page) fügt eine Seite zu dem Buch hinzu


Herunterladen ppt "12-Drucken Drucken in JAVA. 12-Drucken2 Probleme beim Drucken: Es können nur graphische Informationen gedruckt werden. Die zu druckende Information muss."

Ähnliche Präsentationen


Google-Anzeigen