Drucker Auswahlmaske statt auf dem Standarddrucker zudrucken

Status
Nicht offen für weitere Antworten.

A.T.

Bekanntes Mitglied
Hallo, muss schon wieder eine Frage stellen.
Und zwar versuche ich etwas am apache fop zu verändern.
Und zwar möchte wenn man die option -print verwendet nicht auf dem Standartdrucker gedruckt wird sondern man den Drucker wählen kann. Also diese Maske geöffnet wir auf der man den Drucker wählen kann.

So wenn ich das richtig verstanden habe wird der Druckbefehl an dieser Stelle erzeugt.
Code:
PrinterJob pj = PrinterJob.getPrinterJob();
        if(System.getProperty("dialog") != null)
            if(!pj.printDialog())
                throw new FOPException("Printing cancelled by operator");

        PrintRenderer renderer = new PrintRenderer(pj);
        int copies = getIntProperty("copies", 1);
        pj.setCopies(copies);
Das getPrinterJob() erstellt ja einen Printerjob auf dem Standartdrucker. Wie überrede ich den jetzt das noch zu ändern und dem User die auswahl zu lassen?
Müsste doch mit getPrinterService und setPrinterService gehen, nur wie?
Danke schon mal!
Gruß Andreas
 
Habe gesucht! Ehrlich! Nur nicht besonders geschickt!
Bin auch schon ein wenig weiter. Aber hin bekomme ich das noch nicht. Mal sehen vielleicht muss ich noch mal Fragen stellen, werde mich aber vorher noch intensiver mit der Suche befassen!!!

Trotzdem vielen dank für deine Hilfe!!!
 
Danke nochmal für deine Hilfe und auch an die die mir hier sonst geholfen haben!
Bin da inzwischen durchgestiegen und es funktioniert!!!

Habe das jetzt wie folgt gelöst:

Code:
PrinterJob pj = PrinterJob.getPrinterJob();
        if(System.getProperty("dialog") != null)
            if(!pj.printDialog())
                throw new FOPException("Printing cancelled by operator");
                   
        /* Hier musste ich nur  die if- Abfrage mit der Methode .prontDialog einfügen pj ist mein PrinterJob den ich
            vorher angefordert habe. Das in den Klammern ist dann der Druck auftrag an sich.*/
        if(pj.printDialog()){
        	PrintRenderer renderer = new PrintRenderer(pj);
        	int copies = getIntProperty("copies", 1);
        	pj.setCopies(copies);

        	//renderer.setCopies(copies);

        	try {
        		driver.setRenderer(renderer);
        		driver.render(parser, inputHandler.getInputSource());
        	} catch (Exception e) {
        		if (e instanceof FOPException) {
        			throw (FOPException)e;
        		}
        		throw new FOPException(e);
        	  }
        }

Gruß Andreas
Ich glaube ich belieb euch jetzt erhalten! :wink: Habe mir vorgenommen Java vernünftig zu lernen!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben