IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Impression fichier texte.. encore !


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Impression fichier texte.. encore !
    Bonjour tous,

    Je reposte ici mon message, dans un nouveau topic, histoire que qqun veuille bien le lire ...

    J'avais posté ça dans le topic imprimer un fichier de notre collègue chloep.

    Je m'évertue à chercher une solution simple pour imprimer un fichier texte et c'est en fait ce que cette commande réalise ou je rêve ?

    Je voulais parler de la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Desktop.getDesktop().print(fichier);
    Finis les PrintJob et autres PrintServices ? Si c effectivement ça, je suis tout

    Sinon je serai vraiment tout

    Sinon, je mets qd mm mon code (qui en passant ne fonctionne pas, et je ne sais pas pourquoi)...

    Si qqun voulait bien m'aider...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
     public ImpressionFichier(File fichierEnCours){
     
       try {
     
        //Marges à appliquer
        int margeGauche = 7;
        int margeDroite = 7;
        int margeHaut = 7;
        int margeBas = 7;
     
        // Type de fichier en entrée
        DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
     
        //Liste des imprimantes disponibles
        PrintService[] services = PrintServiceLookup.lookupPrintServices(flavor,
        null);
     
        // Propriétés de l'impression
        PrintRequestAttributeSet printAttributes = new HashPrintRequestAttributeSet();
        printAttributes.add(OrientationRequested.PORTRAIT);
        printAttributes.add(Chromaticity.MONOCHROME); 
        printAttributes.add(PresentationDirection.TOBOTTOM_TOLEFT);
        printAttributes.add(new MediaPrintableArea(margeGauche, margeHaut, 210
        - margeDroite - margeGauche, 297 - margeBas - margeHaut,
        MediaPrintableArea.MM));
     
        //Interface de communication
        PrintService service = ServiceUI.printDialog(null, 100, 100, services,
        null, null, printAttributes);
        // Clic sur Impression par l'utilisateur
        if (service != null){
     
        // Ouvrir le fichier 
        InputStream is = new BufferedInputStream(new FileInputStream("C:\\monFichierDeTest.txt"));
        // generation du job d'impression
        DocPrintJob job = service.createPrintJob();
        SimpleDoc doc = new SimpleDoc(is, flavor, null);
     
        //Lancement de l'impression
        job.print(doc, printAttributes);
        is.close();
        }
        } 
        catch (Exception e) {
        new Avertissement(true,e.toString());
        } 
        }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Je reposte parce que, quand bien même ca fonctionnerait, j'avoue qu'après avoir installé le JDK1.6 (le fichier s'appelle jdk-6u1-windows-i586-p.exe, téléchargé directement sur le site de Sun), je n'ai toujours pas la possibilité d'importer
    java.awt.Desktop et donc d'accéder à la fonction d'impression, si c'est bien de cela dont il s'agissait.

    On dirait vraiment un newbie mais c'est vrai qu'après 3 mois de développement intensifs, j'ai le cerveau un peu en compote parfois.

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Citation Envoyé par KeV31
    je n'ai toujours pas la possibilité d'importer
    java.awt.Desktop
    Si tu utilise un IDE, peut-être faut-il le configurer pour qu'il utilise Java 6.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Oui j'ai NetBeans, je m'en vais dl le pack avec netbeans 5.5 et le Jdk 1.6.

    Mais tu ne m'as pas répondu ?

    C tout ce qu'il y a à faire ? Je laisse tomber mon code (qui ne marche pas d'ailleurs...) ?

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Tu n'as pas besoin de réinstaller NetBeans cf la FAQ NetBeans Comment spécifiez un JDK spécifique pour un projet ?.

    En ce qui concerne le fait de laisser tomber (ou non) ton code actuel, cela dépends si l'utilisation de la méthode print() de la classe Desktop répond à tes besoins.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bon ben ça fait exactement ce que je veux...

    Merci Sun, d'autant que la classe Desktop a l'air vraiment utile pour ce genre de choses.

    Merci à toi aussi.

    Bonne continuation.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour, je reviens à la charge aujourd'hui parce qu'en fait, je vais quand même avoir besoin d'un peu plus que la classe Desktop ne me propose.

    En effet, j'ai besoin de faire un choix d'imprimante.

    Pour ça, je passe donc par le serviceUI.printDialog(...).

    Bref, tout va vien puisque je reconnait l'imprimante par défaut etc. mais par contre, je ne peux pas accéder aux propriétés de chaque imprimante du réseau, et en plus quand je cllique sur Imprimer, rien ne se passe, la fenêtre se ferme sans lancer une quelconque impression.

    Je vous remets mon code puisque je l'ai un peu changé depuis avant-hier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
        int margeGauche = 7;
        int margeDroite = 7;
        int margeHaut = 7;
        int margeBas = 7;
     
        // Type de fichier en entrée
        DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
     
        //Liste des imprimantes disponibles
        PrintService[] services = PrintServiceLookup.lookupPrintServices(flavor,
        null);
        PrintService service = PrintServiceLookup.lookupDefaultPrintService();
     
        // Propriétés de l'impression
        PrintRequestAttributeSet printAttributes = new HashPrintRequestAttributeSet();
        printAttributes.add(OrientationRequested.PORTRAIT);
        printAttributes.add(Chromaticity.MONOCHROME); 
        printAttributes.add(PresentationDirection.TOBOTTOM_TOLEFT);
        printAttributes.add(new MediaPrintableArea(margeGauche, margeHaut, 210
        - margeDroite - margeGauche, 297 - margeBas - margeHaut,
        MediaPrintableArea.MM));
     
        //Interface de communication
        PrintService serviceDialog = ServiceUI.printDialog(null, 100, 100, services,
        service, flavor, printAttributes);
     
        // Au clic sur le bouton Imprimer ...
        if (serviceDialog != null) {
                InputStream is = null;
                try {
                    is = new BufferedInputStream(new FileInputStream(CHEMIN_FICHIER_A_IMPRIMER));
                } catch (FileNotFoundException ex) {
                    ex.printStackTrace();
                }
     
            // generation du job d'impression
            DocPrintJob job = serviceDialog.createPrintJob();
            SimpleDoc doc = new SimpleDoc(is, flavor, null);
                try {
                    try {
     
                        //Lancement de l'impression
                        job.print(doc, printAttributes);
                    } catch (PrintException ex) {
                        ex.printStackTrace();
                    }
                    is.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
     
        }
    Je n'ai pas d'exceptions, il n'y a simplement aucune activité.

    Si quelqu'un qui avait déjà rencontré le rpoblème pouvait m'aider, ça m'arrangerait énoooormément.

    Merci.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Alors, je viens de tester et mon code fonctionnerait.

    Je crois à une mauvaise manip' de ma part simplement.

    Par contre, je n'arrive toujours pas à accepter aux propriétés des imprimantes réseau et ainsi définir correctement mes options d'impressions.

    Voila encore le point bloquant.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Je reviens aux nouvelles car je n'ai toujours pas résolu mon problème au niveau de la récupération des propriétés des imprimantes, de même que je n'arrive toujours pas à modifier l'orientation et autres propriétés liées à la boîte de dialogue

    ServiceUI.printDialog

    Etant donné que mon post était tombé dans les méandres du forum, je me suis dit qu'il serait peut-être possible d'avoir une réponse en le remettant au goût du jour.

    Je ne pense pas être le seul à imprimer via Java et je suis sûr que quelqu'un doit avoir une idée sur la manière de procéder.

    Je ne vous reposte pas mon code puisqu'il n'a pas bougé d'un pouce.

    Merci au bon samaritain qui voudra bien me répondre.

    Cdlt.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Il semble que les imprimantes et les applications Java qui pourraient s'en servir ont disparu de la surface de la Terre :'(

    Dommage...

    Bon ben en attendant que quelqu'un me réponde je vais peut être aller jeter mon imprimante à la poubelle.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    UP

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bon ben UP à nouveau alors...

    Toujours personne ne sait activer ces fichues propriétés dans la boîte de dialogue d'impression ?

    Merci à quiconque aurait une idée...

Discussions similaires

  1. Impression d'un fichier Texte
    Par rupteur dans le forum Général Java
    Réponses: 2
    Dernier message: 02/09/2009, 14h02
  2. Impression automatique de fichiers textes
    Par Mariquiqui dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/05/2008, 23h25
  3. [SQL] Pourquoi utilise-t-on encore les fichiers texte?
    Par krimback dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 24/03/2006, 13h44
  4. Impression d'un fichier texte
    Par darktears dans le forum C
    Réponses: 2
    Dernier message: 15/10/2005, 10h19
  5. [Java Print] Impression d'un fichier texte
    Par Copps dans le forum Graphisme
    Réponses: 2
    Dernier message: 15/08/2005, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo