printDialog. 10 Sekunden bis es auftaucht? Warum?

Status
Nicht offen für weitere Antworten.

vladoo

Aktives Mitglied
Hi Leute, ich habe folgenden Code:

Code:
         public void Drucken() {                    
                PrinterJob printJob = PrinterJob.getPrinterJob();
                PageFormat pageFormat = new PageFormat();
                Paper paper = new Paper();
                paper.setSize(595, 842);//<-------------------Format
                paper.setImageableArea(5, 5, 585, 832);//<---------------Rand
                pageFormat.setPaper(paper);
                printJob.setPrintable((PrintPanel)printThisPanels.get((Integer)toBePrintedTabs.elementAt(i)), pageFormat);
                printNow(printJob);     
        }

        private void printNow(PrinterJob pj) {
         if (pj.printDialog()) {
            try {
                pj.print();
            } catch(PrinterException pe) {
                System.out.println("Fehler: " + pe);
            }
         }  
       }

Diese Methoden werden aufgerufen wenn ich auf eine Drucken Button drücke.
Leider dauert es bis zu 10 Sekunden, bis der Druck Dialog auftaucht, wo man den Drucker wählen kann.

Es hängt auch nicht daran, dass es ein Netzwerkdrucker ist, bei einem Rechner, bei dem nur ein Lokaler Drucker installiert ist, geht es genau so langsam.

Wie kann man das Problem lösen?

Gruß vladoo
 

thE_29

Top Contributor
Geh mal in ein X beliebiges Programm und probier dort mal STRG + P (oder auf Datei drucken) und wart mal wielange das braucht!

Mein IE hat grad 15 Sekunden gebraucht (ok, hab grad Notes zugemacht, da steht die Kiste :)). Aber sowas braucht generell beim ersten Mal lange um die Drucker mit den jeweiligen Druckerflavors (welche Dokumentenart) zu initialisieren und darzustellen!
 

vladoo

Aktives Mitglied
naja ich habe es gerade mit einer pdf datei und einer word datei ausprobiert. Es dauert ca. 2-3 sek.

Ich glaube, dass es an etwas anderem liegt. kann es sein, dass es daran liegt, dass ich ein JPanel ans setPrintable(JPanel) übergebe. Ich habe einige Labels auf dem JPanel positioniert und will es ausdrucken. Liegt es vielleicht an den Swing Komponenten?
 

vladoo

Aktives Mitglied
Ich bitte dringend um Hilfe. Hab wie oben im Code beschrieben, dass ich ein Panel als

Code:
printJob.setPrintable(PrintPanel)

übergebe. Es dauert ca 15-20 Sekunden bis der Druckdialog, wo man den Drucker auswählen kann auftaucht.

Ich habe auch, wie schon von "thE_29" vorgeschlagen, mal ganz wenige Labels draufgesetzt. Nur 5 Labels statt ca. 80.
Es dauert aber immer noch zu lange. Wenn ich das Panel nicht übergebe, dann kommt es ganz schnell ca. 2 Sek.

Was kann man da Tun? Ich möchte berechnete Daten, die in Labels auf dem Bildschirm stehen formatiert Drucken.

Dazu nehme ich ein Panel und lege da Labels drauf ca. 80. Dieses Panel gebe ich an den printJob weiter und das ganze Panel wird gedruckt.

Gibt es andere Möglichkeiten, oder wie kann das mit dem Panel verschnellern?

Gruß vladoo
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben