Imprimer en java

Fermé
enauoder Messages postés 15 Date d'inscription samedi 2 octobre 2010 Statut Membre Dernière intervention 19 juin 2011 - 19 juin 2011 à 13:05
enauoder Messages postés 15 Date d'inscription samedi 2 octobre 2010 Statut Membre Dernière intervention 19 juin 2011 - 19 juin 2011 à 15:16
Bonjour,


je voudrais imprimer le contenu d'une liste en java, quelqu'un a des idées?
Merci d'avance.
A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 19/06/2011 à 13:57
Imprimer... Sur papier ?
Tu peux enregistrer ta liste dans un fichier puis l'imprimer avec Desktop.print(File)
La confiance n'exclut pas le contrôle
2
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 19/06/2011 à 14:56
Exemple complet d'implémentation avec gestion des exceptions...

import java.awt.Desktop; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.PrintStream; 

import java.util.Collection; 

public class MiseEnPage 
{ 
    /** 
     * Imprime une collection d'éléments sur l'imprimante par défaut. 
     * @param <E> le type des éléments de la collection 
     * @param coll la collection d'éléments à imprimer 
     * @param err un flux pour afficher les messages d'erreur 
     * @return true si la demande d'impression est réussie, false sinon 
     */ 
    public static <E> boolean print(Collection<E> coll, PrintStream err) 
    { 
        if (!Desktop.isDesktopSupported()) 
        { 
            display(err, "Desktop not supported"); 
            return false; 
        } 
         
        if (!Desktop.getDesktop().isSupported(Desktop.Action.PRINT)) 
        { 
            display(err,"Desktop.PRINT not supported"); 
            return false; 
        } 
         
        File txt; 
        try  
        { 
            txt = File.createTempFile("ToPrint-",".txt"); 
            txt.deleteOnExit(); 
        } 
        catch (IOException e)  
        { 
            display(err,e.getMessage()); 
            return false; 
        } 
         
        FileOutputStream out; 
        try 
        { 
            out = new FileOutputStream(txt); 
        } 
        catch (FileNotFoundException e)  
        { 
            display(err,e.getMessage()); 
            return false; 
        } 
         
        try 
        { 
            for (E e : coll) 
                out.write((e.toString()+(char)Character.LINE_SEPARATOR ).getBytes()); 
             
            out.close(); 
        } 
        catch (IOException e1) 
        { 
            display(err,e1.getMessage()); 
             
            try 
            { 
                out.close(); 
            } 
            catch (IOException e2) 
            { 
            } 
             
            return false; 
        } 
         
        try  
        { 
            Desktop.getDesktop().print(txt); 
        }  
        catch (IOException e)  
        { 
            display(err,e.getMessage()); 
            return false; 
        } 
         
        return true; 
    } 

    /** 
     * Imprime une collection d'éléments sur l'imprimante par défaut. 
     * @param <E> le type des éléments de la collection 
     * @param coll la collection d'éléments à imprimer 
     * @return true si la demande d'impression est réussie, false sinon 
     */ 
    public static <E> boolean print(Collection<E> coll) 
    { 
        return print(coll,null); 
    } 
     
    /** 
     * Affiche un message sur un flux. 
     * @param ps le flux d'affichage 
     * @param msg le message à afficher 
     */ 
    private static void display(PrintStream ps,String msg) 
    { 
        if (ps!=null && msg!=null) 
            ps.println(msg); 
    } 
     
    /** 
     * Imprime la liste des factorielles. 
     */ 
    public static void main(String...args) 
    { 
        // Liste des factorielles 
        Collection<String> coll = new java.util.LinkedList<String>(); 
        for (long n=0, fact=1; fact>0; n++, fact*=n) 
            coll.add(n+"! = "+fact); 
         
        // Imprime la liste 
        if (print(coll,System.err)) 
            System.out.println("Impression en cours..."); 
    } 
}
0
enauoder Messages postés 15 Date d'inscription samedi 2 octobre 2010 Statut Membre Dernière intervention 19 juin 2011 1
19 juin 2011 à 15:16
merci KX
0