Zum Inhalt springen

Waldo

Mitglieder
  • Gesamte Inhalte

    13
  • Benutzer seit

  • Letzter Besuch

Beiträge von Waldo

  1. Hallöchenl

    ich hab mal ne Frage:

    Wie kann man, wenn man ein Frame unter Unix druckt, die Seitenränder im Code verändern(verkleinern). Im PrintDialog kann man sie manuell unter PageSetup einstellen und dann funktioniert der Druck auch.

    Allerdings möchte ich das nicht immer per Hand einstellen. Unter Windows hatte ich das gleiche Problem, dieses habe ich durch die Methoden "setSize" und "setImageableArea" der Klasse .... realisiert. Unter Unix habe ich das auch versucht und die Größe des Frames passt sich auch ideal an, allerdings bleibt der Rand weiterhin zu groß, so daß nicht das ganze Frame angezeigt wird. Egal wie groß ich die Werte bei "setImageableArea" setze, der Rand bleibt immer ca. 2,5 cm, soll aber nur 2 cm betragen. An den Unix-Voreinstellungen kann es ja nicht liegen, schließlich funktioniert es ja durch das PageSetup im PrintDialog.

    Dankeschön schon mal im Voraus für die Hilfe.

    Waldo

  2. Leider funktioniert das so auch nicht und die Werte sind immernoch identisch

    void doPrint()

    {

    PrinterJob printJob = PrinterJob.getPrinterJob();

    PageFormat pageFormat = new PageFormat();

    Paper ppr = pageFormat.getPaper();

    if (allTracks)

    pageFormat.setOrientation(PageFormat.LANDSCAPE);

    else

    pageFormat.setOrientation(PageFormat.PORTRAIT);

    printJob.setPrintable(this, pageFormat);

    if (printJob.printDialog()) {

    try {

    printJob.getPrintService();

    System.out.println("Höhe "+pageFormat.getHeight());

    System.out.println("Tiefe "+pageFormat.getWidt());

    System.out.println("ImageHeigth "+pageFormat.getImageableHeight());

    System.out.println("ImageWidth "+pageFormat.getImageableWidth());

    System.out.println("ImageX "+pageFormat.getImageableX());

    System.out.println("ImageY "+pageFormat.getImageableY());

    printJob.print();

    } catch (Exception PrintException) {

    PrintException.printStackTrace();

    }

    }

    }

    public int print (Graphics g, PageFormat pageFormat, int page)

    {

    if (page == 0) {

    buildupGraphics((Graphics2D)g, (int)pageFormat.getImageableX(), (int)pageFormat.getImageableY(),

    (int)pageFormat.getImageableWidth(), (int)pageFormat.getImageableHeight());

    return (PAGE_EXISTS);

    }

    else

    return (NO_SUCH_PAGE);

    }

  3. void doPrint()

    {

    PrinterJob printJob = PrinterJob.getPrinterJob();

    PageFormat pageFormat = new PageFormat();

    Paper ppr = pageFormat.getPaper();

    if (allTracks)

    pageFormat.setOrientation(PageFormat.LANDSCAPE);

    else

    pageFormat.setOrientation(PageFormat.PORTRAIT);

    printJob.setPrintable(this, pageFormat);

    if (printJob.printDialog()) {

    try {

    printJob.getPrintService();

    // Hier kommen bei Änderung des PrintDialoges immer identische Werte heraus

    System.out.println("Höhe "+ppr.getHeight());

    System.out.println("Tiefe "+ppr.getWidth());

    System.out.println("ImageHeigth "+ppr.getImageableHeight());

    System.out.println("ImageWidth "+ppr.getImageableWidth());

    System.out.println("ImageX "+ppr.getImageableX());

    System.out.println("ImageY "+ppr.getImageableY());

    printJob.print();

    } catch (Exception PrintException) {

    PrintException.printStackTrace();

    }

    }

    }

    public int print (Graphics g, PageFormat pageFormat, int page)

    {

    if (page == 0) {

    buildupGraphics((Graphics2D)g, (int)pageFormat.getImageableX(), (int)pageFormat.getImageableY(),

    (int)pageFormat.getImageableWidth(), (int)pageFormat.getImageableHeight());

    return (PAGE_EXISTS);

    }

    else

    return (NO_SUCH_PAGE);

    }

  4. Ich hab nochmal ne kleine Frage:

    Wie kann ich die Eigenschaften des printDialoges ausgeben, also, wenn man zB auf

    Eigenschaften -> DIN A3 einstellt, dann soll das Blatt auch in DIN A3 Format gedruckt werden. Wird irgeneine Eigenschaft zurückgegeben, nac der abgefragt werden kann? Welche Methode gibt diese Eigenschaft zurück?

    Vielen Dank für die Hilfe.

    Waldo

  5. Die Werte passen bei meinem Frame nicht so ganz.

    Wie hast Du sie berechnen, bzw. heraufgefunden. Was machst Du, wenn Du DIN A3 bzw. DIN A5 drucken möchtest. Es gibt also keine Methode von Java, die die Werte automatisch ausgibt für alle Blattformat.

    Danke für Deine Bemühungen

  6. Ich hab nochmal eine Frage

    Ich möchte mit Java drucken und den Seitenrand im Quellcode definieren ( und nicht mit dem Page Dialog!).

    Die Methode "setImageableArea" der Klasse Paper hab ich schon gefunden, allerdings wiß ich nicht, wie man den absoluten Wert der Seite herausbekommt, wovon ich dann einfach den Rand abziehen könnte.

    Mit getImageableHeight(), getImageableWidth(), getImageableX(), getImageableY()

    klappt das auch nicht so ganz.

    vielen Dank im voraus

    Waldo

  7. Genau das meine ich, allerdings habe ich überhaupt keine Ahnung, wie ich die Objekte hier anpassen kann.

    Gelöst hab ich es im Augenblick nur so:

    PageFormat pageFormat = printJob.pageDialog(printJob.defaultPage());

    So bekomme ich allerdings nur das PageDialog Fenster mit "falschen" Default

    Werten.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...