Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Java] Settare stampante di default.

    ciao raga.

    Per scegliere una stampante su cui effettuare la mia stampa io utilizzo pj.printDialog(); ora se elimino questo metodo la stampa avviene con la stampante predefinita (che è la stessa che utilizzo nella finestra di dialogo), ma mi sballa tutte le dimensioni. perchè?
    come posso ovviare?

    p.s. a me non interessa che appaia la finestra di scelta della stampante.

    ciao grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Prova a vedere le seguenti classi e metodi:

    codice:
    PageFormat pF=printJob.defaultPage();
    Paper paper=new Paper();
    paper.setSize(larghezza,altezza);
    paper.setImageableArea(margine, margine, larghezza, altezza);
    
    pF.serPaper(paper);
    pF.setOrientation(PageFormat.LANDSCAPE); ad esempio o PORTRAIT
    Sul sito della Sun avevo trovato un questo tutorial sulla stampa.

    E poi mi ero messo li a stampare su PDF per non sprecare carta fino a che non era tutto a posto.
    Ah, anche l'utilizzo della classe Book mi era stato di aiuto: in pratica al book appendi delle pagine che altro non sono che tue classi che implementano Printable. Nel metodo print disegni come vuoi la pagina.
    al volante son nervoso

  3. #3
    ciao
    per farmi capire meglio ti posto un po di codice :

    questa è la classe che chiama la stampa:
    codice:
    PrinterJob pj = PrinterJob.getPrinterJob();
    //pj.printDialog();
    pj.setPrintable(new CollaudoPrint());
    try {
    	pj.print();
    } catch (PrinterException e) {e.printStackTrace();}
    e questa è la classe che implementa printable:
    codice:
    public class CollaudoPrint implements Printable{
    	public int print(Graphics grap, PageFormat pageFormat, int pageIndex) throws PrinterException {
    		 if(pageIndex > 0) return NO_SUCH_PAGE;
    		 Font f;
    		 Paper paper = new Paper();
    		 paper.setImageableArea(42, 22, 500, 800);
    		 pageFormat.setPaper(paper);
    		.
                    .
                    .
    nella procedure che mi hai suggerito avviene sempre la stessa cosa anche settando printJob.defaultPage();



    ciao grazie

  4. #4
    oppure potrei impostare un foglio A4 di default ? ma non so come fare?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Leggi http://java.sun.com/docs/books/tutor.../services.html al paragrafo Attribute Definitions: c'è un esempio per usare un foglio A4.

    Poi per usarlo richiami printJob.printDialog(aset); in cui aset è il PrintRequestAttributeSet.
    al volante son nervoso

  6. #6
    Vi posto un immaggine per spiegarmi meglio. si vede solo il mio pc e non la rete o gli altri pc. Per che sono connessi alla rete 2 gruppi. grazie

    [IMG]
    http://img192.imageshack.us/img192/8323/immagineig.jpg
    [/IMG]

  7. #7
    scusate ho sbagliato a postere . non ci azzecca niente il messaggio precedente.

    cmq inserendo questo codice sugeritomi:
    codice:
     PrintRequestAttributeSet attr_set = new HashPrintRequestAttributeSet();
        attr_set.add(MediaSize.ISO_A4); 
        attr_set.add(new Copies(3));
    mi da errore su MediaSize.ISO_A4, cannot be resolved .

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.