Silvie Geschrieben 6. Oktober 2003 Geschrieben 6. Oktober 2003 Moinsen, hat jemand eine Ahnung, wie ich in Java vor dem Drucken das Seitenformat einstellen kann? Z.B. wie in Word, wenn man da auf Seiteneinstellungen geht und dann auf A3 umschaltet und so... Es wär cool, wenn man in dem Fenster, das vom Programm generiert wird, einen Menüpunkt für Drucken Din A4 und einen Drucken Din A3 hätte... Danke im voraus! Gruß aus dem kühlen Hannover, Silvie Zitieren
Peeter Geschrieben 7. Oktober 2003 Geschrieben 7. Oktober 2003 Du müsstest auf das PrinterJob-Object einen PageDialog aufrufen. Dann bekommst du ein PageFormat zurück welches du dann dem PrinterJob übergeben kannst. PrinterJob printJob = PrinterJob.getPrinterJob(); PageFormat pageformat = new PageFormat(); pageformat = printJob.pageDialog(pageformat); // Hier kommt der PageDialog printJob.setPrintable(this /*(da Printable implementiert werden muss)*/, pageformat); if (printJob.printDialog()){ // Dann ein Dialog in dem du deinen Drucker auswählen kannst try { printJob.print(); // Drucken } catch(PrinterException pe) { sErr = "Error printing: " + pe; } } [/PHP] Und da bekommst du einen kleinen Dialog angezeigt in dem du dein PageFormat auswählen kannst (nur die die dein Drucker unterstützt)! Peet Zitieren
Silvie Geschrieben 7. Oktober 2003 Autor Geschrieben 7. Oktober 2003 Vielen Dank, das funktioniert schonmal. Mein Problem ist aber, dass ich das gerne ohne den pageDialog realisieren würde. So dass man, wenn man den Din A3 Druck auswählt automatisch auch Din A3 ausdruckt... Wär der Hammer, wenn man das irgendwie hinkriegen könnte... und vor allem bequemer für die User... Gruß Silvie Zitieren
Peeter Geschrieben 7. Oktober 2003 Geschrieben 7. Oktober 2003 *grins* Immer diese Userfreundlichkeit!*seufz* Ja, dann müsstest du dein "Paper" selbst zusammen bauen und dann übergeben. Paper paper = new Paper(); paper.setSize(595.28, 841.90); paper.setImageableArea(85.04, 28.35, 481.90, 785.20); pageformat = new PageFormat(); pageformat.setPaper(paper); usw. [/PHP] Ich weiß jetzt aber nicht die Maße! Den pageDialog kannst du dann wieder raus nehmen (wahrscheinlich genauso wie den printDialog). Zitieren
Silvie Geschrieben 7. Oktober 2003 Autor Geschrieben 7. Oktober 2003 Vielen Dank, das hat auch funktioniert... Aber... ich muss meine Frage leider stornieren.... Der, für den wir das programmieren, will keine zwei Menüpunkte... Es soll der printDialog kommen und dann soll automatisch, wenn man bei den properties auf A3 geht, auf A3 gedruckt werden. Das geht bis jetzt nicht, auch nicht in Word... weißt Du, ob man den printDialog irgendwie ansprechen kann? Oder ist das vielleicht gar nicht möglich? :confused: Gruß Silvie Zitieren
Peeter Geschrieben 7. Oktober 2003 Geschrieben 7. Oktober 2003 Hab ich das jetzt richtig verstanden - du willst, sobald man in dieser ComboBox die SeitenArt/PapierGröße ausgewählt hat, gleich drucken?? Das geht mit dem vorhandenen Dialog nicht. Du könntest dir aber nen eigenen Dialog schreiben! Der müsste dann genauso aussehen wie der originale, jedoch müsste auf der ComboBox eine zusätzliche Action liegen. Würde ich net machen. Zu viel Aufwand für so wenig Ergebnis. Ob der User den Button "OK" nicht drücken muss oder ob er ihn noch drücken muss ist doch wohl nun egal. Und stell dir mal vor, jemand hat sich verklickt und druckt sofort anstatt auf A3 auf A5 (würde ja passieren, wenn man das falsche Item in der ComboBox auswählt)! Also lieber keine extra-Funktionalität. Nur als Tipp. Peet Zitieren
Silvie Geschrieben 7. Oktober 2003 Autor Geschrieben 7. Oktober 2003 Sorry, ich hab mich falsch ausgedrückt... ich würd gern die Werte aus der printDialog Box auslesen können. Dann kann man wenn man bei den Eigenschaften auf A3 Druck geht, auch auf A3 drucken (wir würden dann dafür eine Anweisung im Code schreiben, die zur Bedingung hat, auf welches Format der User geht... Silvie Zitieren
Peeter Geschrieben 7. Oktober 2003 Geschrieben 7. Oktober 2003 Also das erste mal soll der Dialog erscheinen und dieser soll sich dann die Einstellungen merken und das nächste mal gleich verwenden. Also das PageFormat wird ja eh gespeichert.Damit kann man doch gleich drucken. Ist nur eine Frage der geschickten Programmierung. Das klappt. Musst du nur entsprechende Abfragen machen. Flags (boolean) eignen sich dazu vortrefflich. Peet Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.