Imprimer en java

enauoder Messages postés 17 Statut Membre -  
enauoder Messages postés 17 Statut Membre -
Bonjour,

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

1 réponse

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      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
    2. enauoder Messages postés 17 Statut Membre 1
       
      merci KX
      0