Print Monitor

internet

Top Contributor
Hallo zusammen,

ich möchte gerne einen Status meines Prints in JAVA auslesen.
Also generell interessiert mich, ist der Print gestartet (wenn möglich: wie lange geht der Print noch), ob es einen Fehler gab....
Wie kann ich das realisieren? Geht das mit jedem Drucker?

Mit folgendem Code, komme ich leider immer nur in:

Code:
public void printJobNoMoreEvents(PrintJobEvent pje) {
        System.out.println("No more events");
    }

Code:
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;

import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.StreamPrintService;
import javax.print.StreamPrintServiceFactory;
import javax.print.event.PrintJobEvent;
import javax.print.event.PrintJobListener;

import javax.print.*;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.PrintServiceAttributeSet;
import javax.print.attribute.standard.PrinterStateReason;
import javax.print.attribute.standard.PrinterStateReasons;
import javax.print.attribute.standard.Severity;
import javax.print.event.*;
import java.awt.*;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.io.*;
import java.util.Set;

/**
* PrintTest
*/
public class PrintTest
        implements PrintServiceAttributeListener, PrintJobListener, Doc, Printable, PrintJobAttributeListener {

    private static final transient String TEXT = "12345";

    public static void main(String[] args) {
        PrintTest test = new PrintTest();
        test.checkPrinters();
    }

    public void checkPrinters() {
        Thread newThread = new Thread(new Runnable() {
            public void run() {
                PrintService ps = PrinterJob.getPrinterJob().getPrintService();

                DocFlavor[] myFlavors = ps.getSupportedDocFlavors();
                ps.addPrintServiceAttributeListener(PrintTest.this);
                DocPrintJob docJob = ps.createPrintJob();
                docJob.addPrintJobAttributeListener(PrintTest.this, null);
                docJob.addPrintJobListener(PrintTest.this);
                try {
                    docJob.print(PrintTest.this, null);
                } catch (PrintException e) {
                    e.printStackTrace(); // To change body of catch statement
                                            // use File | Settings | File
                                            // Templates.
                }
            }
        });

        newThread.start();
        /**
         * PrintServiceAttributeSet attSet = ps.getAttributes();
         * PrinterStateReasons psr = ps.getAttribute(PrinterStateReasons.class);
         *
         * if (psr != null) { Set<PrinterStateReason> errors =
         * psr.printerStateReasonSet(Severity.REPORT); for (PrinterStateReason
         * reason : errors) System.out.printf(" Reason : %s",reason.getName());
         * System.out.println(); }
         */
    }

    public void attributeUpdate(PrintServiceAttributeEvent psae) {
        System.out.println(psae.getAttributes());
    }

    public void printDataTransferCompleted(PrintJobEvent pje) {
        System.out.println("Transfer completed");
    }

    public void printJobCompleted(PrintJobEvent pje) {
        System.out.println("Completed");
    }

    public void printJobFailed(PrintJobEvent pje) {
        System.out.println("Failed");
        PrinterStateReasons psr = pje.getPrintJob().getPrintService().getAttribute(PrinterStateReasons.class);
        if (psr != null) {
            Set<PrinterStateReason> errors = psr.printerStateReasonSet(Severity.REPORT);
            for (PrinterStateReason reason : errors)
                System.out.printf(" Reason : %s", reason.getName());
            System.out.println();
        }
    }

    public void printJobCanceled(PrintJobEvent pje) {
        System.out.println("Canceled");
    }

    public void printJobNoMoreEvents(PrintJobEvent pje) {
        System.out.println("No more events");
    }

    public void printJobRequiresAttention(PrintJobEvent pje) {
        System.out.println("Job requires attention");
        PrinterStateReasons psr = pje.getPrintJob().getPrintService().getAttribute(PrinterStateReasons.class);
        if (psr != null) {
            Set<PrinterStateReason> errors = psr.printerStateReasonSet(Severity.REPORT);
            for (PrinterStateReason reason : errors)
                System.out.printf(" Reason : %s", reason.getName());
            System.out.println();
        }
    }

    public DocFlavor getDocFlavor() {
        return DocFlavor.SERVICE_FORMATTED.PRINTABLE; // To change body of
                                                        // implemented methods
                                                        // use File | Settings |
                                                        // File Templates.
    }

    public Object getPrintData() throws IOException {
        return this;
    }

    public DocAttributeSet getAttributes() {
        return null; // To change body of implemented methods use File |
                        // Settings | File Templates.
    }

    public Reader getReaderForText() throws IOException {
        return null; // To change body of implemented methods use File |
                        // Settings | File Templates.
    }

    public InputStream getStreamForBytes() throws IOException {
        return null; // To change body of implemented methods use File |
                        // Settings | File Templates.
    }

    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
        return pageIndex == 0 ? PAGE_EXISTS : NO_SUCH_PAGE; // To change body of
                                                            // implemented
                                                            // methods use File
                                                            // | Settings | File
                                                            // Templates.
    }

    public void attributeUpdate(PrintJobAttributeEvent pjae) {
        System.out.println("Look out");
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Print und Println Java Basics - Anfänger-Themen 13
123456789sssssaaaa Which is the best way to Print Fibonacci Series in Java? Java Basics - Anfänger-Themen 3
H awt.print. Java Basics - Anfänger-Themen 0
Kotelettklopfer Stringbuilder mit print ausgeben Java Basics - Anfänger-Themen 83
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
Y Wie kann man überprüfen, ob bei einem Print Befehl tatsächlich etwas geprintet wurde? Java Basics - Anfänger-Themen 4
S Anweisungen verstehen System.out.print/println Java Basics - Anfänger-Themen 2
B Input/Output System.out.print mit und ohne "" Java Basics - Anfänger-Themen 5
Ghostman1711 Itext PDF print File gelockt by Java Java Basics - Anfänger-Themen 15
L system.print.out geht nicht Java Basics - Anfänger-Themen 11
B Print Service Java Basics - Anfänger-Themen 5
I Print Client -> Server -> Client? Java Basics - Anfänger-Themen 1
I Drucken (Print) monitoren Java Basics - Anfänger-Themen 0
S Unterschied print() und println() Java Basics - Anfänger-Themen 3
J Umgang mit System.out.println() und .print() Java Basics - Anfänger-Themen 6
C Kleines Problem mit System.out.print Java Basics - Anfänger-Themen 1
R Char wird in System.out.print(); nicht ausgegeben Java Basics - Anfänger-Themen 6
T System.out.print : Frage zu Aufbau Java Basics - Anfänger-Themen 4
J Erste Schritte System.out.print (Fehlermeldung) Java Basics - Anfänger-Themen 14
X Eclipse System.out.print fehler Java Basics - Anfänger-Themen 5
K char-int-Addition in System.out.print Java Basics - Anfänger-Themen 3
A Feststellen ob Desktop.print("*.pdf") fertig ist Java Basics - Anfänger-Themen 6
Junb Sys.Out.Print - aus Methode zugreifen Java Basics - Anfänger-Themen 6
G DRUCKEN von z.B. eines JFrame über print(Graphics g) Java Basics - Anfänger-Themen 9
S [JUnit] Print Results while running Java Basics - Anfänger-Themen 6
J print button Java Basics - Anfänger-Themen 2
T Dezimaltrennzeichen bei Ausgabe mit print ändern Java Basics - Anfänger-Themen 4
ruutaiokwu System.err.print(ln) macht ein durcheinander??! Java Basics - Anfänger-Themen 8
J print-Anweisung verschluckt Java Basics - Anfänger-Themen 3
S Print Methode zweier "Classes" kombinieren Java Basics - Anfänger-Themen 2
O Drucker: print methode wird 2 mal aufgerufen nachfrage Java Basics - Anfänger-Themen 4
J Fragen zu System.out.print und charAt Java Basics - Anfänger-Themen 3
S 2 kleine Methoden negieren und print Java Basics - Anfänger-Themen 8
D System.out.print(0101); =65. Warum? Java Basics - Anfänger-Themen 3
E Mehrfache print ausgabe ohne Schleife oder Rekursiven aufruf? Java Basics - Anfänger-Themen 48
M to pdf print process starten Java Basics - Anfänger-Themen 4
C javax.print.DocPrintJob Java Basics - Anfänger-Themen 17
F print in java Java Basics - Anfänger-Themen 3
W Die Methode print() wird 2 mal für jede Seite aufgerufen Java Basics - Anfänger-Themen 9
B Objekt Orintiertes Programmieren ausgabe Fehler mit Print() Java Basics - Anfänger-Themen 4
S print()! Java Basics - Anfänger-Themen 2
L PrintWriter autoflush: println funktioniert, print nicht Java Basics - Anfänger-Themen 3
G Auswahl:in File schreiben, oder System.out.print Java Basics - Anfänger-Themen 4
J System.out.print Java Basics - Anfänger-Themen 5
S Listen - insert - print etc. Dringend! Bitte! Java Basics - Anfänger-Themen 6
H Print Methode Java Basics - Anfänger-Themen 6
C System.out.print oder println ? Java Basics - Anfänger-Themen 2
I JFrame / Screen auf zweitem (definiertem) Monitor öffnen Java Basics - Anfänger-Themen 3
B Monitor als Schranke von Threads Java Basics - Anfänger-Themen 20
temi Synchronized(Monitor) Java Basics - Anfänger-Themen 2
R Monitor Refresh-Rate Java Basics - Anfänger-Themen 8
Luk10 Monitor: wait() und notify() Java Basics - Anfänger-Themen 8
J auf ausgabe am monitor reagieren Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben