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

    Stampa non funzionante sotto windows

    Salve a tutti ragazzi. Ho realizzato un'applicazione java con netbeans che, al termine, genera un file pdf e lo invia alla stampante.
    Il file pdf viene correttamente generato solo che la stampa vera e propria avviene solo ed esclusivamente sotto linux (dove ho realizzato il progetto), mentre sotto windows non va, anche se non viene sollevata nessuna eccezione.

    Avete qualche idea del perchè di questo particolare comportamento???

    Grazie tutti

    Ciao ciao
    Roberto
    OnLine il nuovo sito: www.lasfidacontinua.it

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Se non ci dici cosa hai usato per stampare (quali metodi/classi??) facciamo fatica ad aiutarti...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Eh eh certo, hai perfettamente ragione. La classe che ho implementato:

    codice:
    public static void stampaPdf(String file){
    DocFlavor flavor = DocFlavor.INPUT_STREAM.PDF; //se dovete stampare un file diverso dal pdf, sceglietelo qui e modificate l'estensione più sotto
    PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
    aset.add(MediaSizeName.ISO_A4);//formato carta
    aset.add(Finishings.STAPLE);
    
    /* locate a print service that can handle it */
    PrintService[] pservices =
    (PrintService[]) PrintServiceLookup.lookupPrintServices(flavor, aset);
    if (pservices.length > 0) {
    //System.out.println("selected printer " + pservices[0].getName());
    
    /* create a print job for the chosen service */
    DocPrintJob pj = pservices[0].createPrintJob();
    try {
    /*
    * Create a Doc object to hold the print data.
    * Since the data is postscript located in a disk file,
    * an input stream needs to be obtained
    * BasicDoc is a useful implementation that will if requested
    * close the stream when printing is completed.
    */
    FileInputStream fis = new FileInputStream(file+".pdf");//modificate l'estensione se il file non è un pdf
    Doc doc = new SimpleDoc(fis, flavor, null);
    
    /* print the doc as specified */
    pj.print(doc, aset);
    
    } catch (IOException ie) {
    System.err.println(ie);
    } catch (PrintException e) {
    System.err.println(e);
    }
    }
    
    }
    L'altra cosa strana che ho notato, sempre da quando la stampa non parte più, è che se creo un oggetto Image del genere:

    codice:
    Image jpg = Image.getInstance("logo_zeus.png");
    inizialmente l'immagine veniva cercata e trovata nella cartella principale del progetto, mentre ora (ma SOLO se eseguo il file jar fuori da NetBeans) viene cercata nella cartella principale dell'utente del pc (nel mio caso, con linux, /home/nome_utente)

    Cosa assai strana... secondo me devo aver modificato qualche path strano ma non ho la più pallida idea di cosa e come...

    Ciao ciao e grazie ancora
    OnLine il nuovo sito: www.lasfidacontinua.it

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da rob_santini

    L'altra cosa strana che ho notato, sempre da quando la stampa non parte più, è che se creo un oggetto Image del genere:

    codice:
    Image jpg = Image.getInstance("logo_zeus.png");
    inizialmente l'immagine veniva cercata e trovata nella cartella principale del progetto, mentre ora (ma SOLO se eseguo il file jar fuori da NetBeans) viene cercata nella cartella principale dell'utente del pc (nel mio caso, con linux, /home/nome_utente)

    Cosa assai strana... secondo me devo aver modificato qualche path strano ma non ho la più pallida idea di cosa e come...

    Ciao ciao e grazie ancora
    Cosa per nulla strana: è sempre la solita questione della directory corrente.
    Quell'istruzione cerca un file "logo_zeus.png" all'interno della directory corrente, cioè all'interno della directory in cui si è posizionati quando si fa partire l'applicazione. E questa non è necessariamente la directory dove risiede il .JAR, ma è quella da cui il sistema operativo lancia le applicazioni.

    Esempio:

    codice:
    $ pwd
    /home/nome_utente
    
    $ java -jar /altro/percorso/del/file.jar
    In questo caso, la directory corrente è "/home/nome_utente" ed è proprio qui che verrà cercata quell'immagine.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Ah ok, questo non lo sapevo, anche perchè ha sempre funzionato specificando solo il nome dell'immagine, senza nessun path.

    Quindi, come faccio a specificare di prendere l'immagine dalla cartella in cui viene eseguito il jar??

    Grazie ciao
    OnLine il nuovo sito: www.lasfidacontinua.it

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ci sono diverse discussioni nel forum che trattano proprio questo argomento.

    Qui ne ho estratte alcune che possono fare al caso tuo:
    http://forum.html.it/forum/showthrea...readid=1338325
    http://forum.html.it/forum/showthrea...readid=1261129
    http://forum.html.it/forum/showthrea...readid=1342602


    E qui della documentazione Sun:
    Loading Images Using getResource


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Ciao, ho risolto usando System.getProperty("user.dir"), mi veniva più semplice da gestire.
    Ora, sia in linux che in windows, il file pdf viene correttamente generato.
    Il problema è che la stampa parte solo sotto linux, e in windows non ottengo nessuna sorta di errore...
    Mi puoi aiutare???
    OnLine il nuovo sito: www.lasfidacontinua.it

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Hai provato a lanciare la stampa usando la classe java.awt.Desktop?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.