Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di salcam
    Registrato dal
    Dec 2005
    Messaggi
    193

    Java e la stampa

    Vorrei fare qualche domanda sul sistema di stampa di Java:

    1) Ho creato una classe contenente un pannello e che implementa la classe Printable. Nel pannello ho inserito un pulsante "Stampa", al quale ho associato il seguente evento:

    codice:
    PrintJob stamp = Toolkit.getDefaultToolkit().getPrintJob(new NewFatt(),"Stampa",null);
    printAll(stamp.getGraphics()); 
    stamp.end();
    e ho implementato il metodo print nel seguente modo:

    codice:
    if (pi >= 1) {
    	return Printable.NO_SUCH_PAGE;
    }
    return Printable.PAGE_EXISTS;
    il problema è che mi fa la stampa in bianco e nero. Come posso risolvere il problema?

    2) Vorrei sapere come poter settare l'orientamento della pagina!!!

    Grazie a tutti in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    http://forum.java.sun.com/thread.jsp...sageID=1383340

    http://mindflavor.altervista.org/art...tml#pageformat

    double getImageableHeight() Restituisce l'altezza della pagina. In 1/72 di pollice.
    double getImageableWidth() Restituisce la larghezza della pagina. In 1/72 di pollice.
    double getImageableX() Restituisce la coordinata X iniziale della pagina. In 1/72 di pollice.
    double getImageableY() Restituisce la coordinata Y iniziale della pagina. In 1/72 di pollice.
    int (orientamento) getOrientation() Restituisce l'orientamento della pagina. E' una costante fra java.awt.print.PageFormat.LANDSCAPE, java.awt.print.PageFormat.PORTRAIT e java.awt.print.PageFormat.REVERSE_LANDSCAPE
    Grazie a questi metodi è possibile conoscere i limiti in cui disegnare

    da quanto ho capito per l'orientamento esiste la funzione get e basta e poi sta a te una volta ottenuto il valore scrivere in vert o or.

    Per settarlo dovresti interagire con la stampante direttamente.

    il colore devi settarlo con l'oggetto graphics, ma credo che valga per tutta l'area di stampa e nn per le singole parole

  3. #3
    Utente di HTML.it L'avatar di salcam
    Registrato dal
    Dec 2005
    Messaggi
    193

    Risolto

    Bastava fare al posto di:

    1) Ho creato una classe contenente un pannello e che implementa la classe Printable. Nel pannello ho inserito un pulsante "Stampa", al quale ho associato il seguente evento:

    codice:
    PrintJob stamp = Toolkit.getDefaultToolkit().getPrintJob(new NewFatt(),"Stampa",null);
    printAll(stamp.getGraphics()); 
    stamp.end();
    codice:
    PrinterJob job = PrinterJob.getPrinterJob();
    PageFormat pageFormat = new PageFormat();
    Paper paper = new Paper();
    paper.setSize(597.6, 842.4);
    paper.setImageableArea(0, 0, 597.6, 842.4);
    pageFormat.setPaper( paper );
    job.setCopies(2);
    pageFormat = job.validatePage( pageFormat );
    job.setPrintable( this, pageFormat );
    if (job.printDialog()) {
            try {
                job.print();
            } catch (Exception ex) {
                System.out.println(ex);
            }
    }
    dove ho impostato il numero di copie a due ed è possibile anche impostare l'orientamento della pagina in orizzontale, mettendo la riga di codice:

    codice:
    pageFormat.setOrientation(PageFormat.LANDSCAPE);
    Invece per quanto concerne il metodo print:

    codice:
    public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {
    	if (pi > 0) {
    		return Printable.NO_SUCH_PAGE;
    	}
    	this.paint(g);
    	return Printable.PAGE_EXISTS;
    }
    Speriamo che possa servire a qualcuno.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.