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

Entrée/Sortie Java Discussion :

PrinterJob() récuperer les attribut de PrintDialog et les utiliser pour imprimer


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Par défaut PrinterJob() récuperer les attribut de PrintDialog et les utiliser pour imprimer
    salut les développeur et un salut spécial à Joel (sois pas faché)
    alors j'utilise la classe PrinterJob() sous java pour imprimer des fichier, bref mon probléme et que je n'arrive pas à récupérer le format de la page selectionné avec PrintDialog je dois vraiment récuperer cette info ainci que l'orientation( portrait , paysage ... etc) comment utiliser ça dand l'impression?? j'ai pu récuperer et faire marcher juste le nombre de copie selectionné
    ci dessous mon petit bout de code:
    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
     
            try {
          PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
          PrinterJob pp=PrinterJob.getPrinterJob();
     
          if (pp.printDialog()) {
              try {
                  pp.print();
              } catch (PrinterException ex) {
                  Logger.getLogger(Audiogramme.class.getName()).log(Level.SEVERE, null, ex);
              }
       }
       PageFormat pf = pp.defaultPage();
        PrintService ps =  pp.getPrintService(); 
     
        System.out.println("Printing to yy" + ps);
        DocPrintJob job = ps.createPrintJob(); 
     
     
        FileInputStream fin = new FileInputStream("se11.png");
        Doc doc = new SimpleDoc(fin, DocFlavor.INPUT_STREAM.PNG, null);
        pras.add(new Copies(pp.getCopie()));
        job.print(doc, pras);
     
         fin.close();
        } catch (IOException ie) {
          ie.printStackTrace();
        } catch (PrintException pe) {
          pe.printStackTrace();
        }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Tu peux récupérer le format (et l'orientation qui fait partie du format) par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    job.getPageFormat(docPrintAttrb);
    Malheureusement, à part pour le format et les copies, il n'y a pas moyen de convertir les autres attributs (genre recto/version, couleurs vs n&b, etc), qu'il faut traiter au cas le cas (c'est donc très fastidieux).

    Exemple :
    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
    public class PrintDocDemo {
     
    	public static void main(String[] args) throws IOException, PrintException {
    		try(InputStream input = Files.newInputStream(Paths.get("image.png"))) {
    			Doc doc = new SimpleDoc(input, DocFlavor.INPUT_STREAM.PNG, null);
    			printDoc(doc);
    		}
     
    	}
     
    	public static void printDoc(Doc doc) throws PrintException {
     
    	      PrinterJob job=PrinterJob.getPrinterJob();
     
    	      if (job.printDialog()) {
     
    	    	  if ( job.getPrintService().isDocFlavorSupported(doc.getDocFlavor())) {
    		    	  DocPrintJob docPrintJob = job.getPrintService().createPrintJob(); 
    		    	  PrintRequestAttributeSet docPrintAttrb = new HashPrintRequestAttributeSet();
    		    	  job.getPageFormat(docPrintAttrb);
    		    	  docPrintAttrb.add(new Copies(job.getCopies()));
    			  docPrintJob.print(doc, docPrintAttrb);
    	    	  }
    	    	  else {
    	    		  throw new PrintException("Impression impossible");
    	    	  }
     
    	      }
     
    	}
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Par défaut
    ca n'a pas marché :/ je veux un A4 et ça imprime toujours un format par défaut qui est fort probable un A5

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Comme ça alors (mais la page de dialogue n'est pas système, et plutôt moche) :
    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
    public class PrintDocDemo {
     
    	public static void main(String[] args) throws IOException, PrintException {
    		try(InputStream input = Files.newInputStream(Paths.get("image.png"))) {
    			Doc doc = new SimpleDoc(input, DocFlavor.INPUT_STREAM.PNG, null);
    			printDoc(doc);
    		}
     
    	}
     
    	public static void printDoc(Doc doc) throws PrintException {
     
    	      PrinterJob job=PrinterJob.getPrinterJob();
     
        	  if ( job.getPrintService().isDocFlavorSupported(doc.getDocFlavor())) {
    	    	  DocPrintJob docPrintJob = job.getPrintService().createPrintJob(); 
    	    	  PrintRequestAttributeSet docPrintAttrb = new HashPrintRequestAttributeSet();
    	    	  docPrintJob.print(doc, docPrintAttrb);
    	    	  job.printDialog(docPrintAttrb);	    	  
        	  }
        	  else {
        		  throw new PrintException("Impression impossible");
        	  }
     
    	}
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 201
    Par défaut
    n'a tu pas pensé à ajouter le format aux attribut??
    essaye de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     pras.add(MediaSizeName.ISO_A4);
    juste apres la declaration de l'ensemble d'attribut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
    ça ne devrait que marché.

  6. #6
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 464
    Par défaut
    merci à vous, vous m'avez sauvé <3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/05/2019, 21h41
  2. CRM V4 : masquer les attributs non utilisés dans les recherches avancée
    Par Marie40200 dans le forum Microsoft Dynamics CRM
    Réponses: 0
    Dernier message: 27/02/2014, 10h02
  3. Récuperer les attributs private
    Par ymorjan dans le forum Général Java
    Réponses: 1
    Dernier message: 23/03/2012, 18h23
  4. Réponses: 0
    Dernier message: 01/06/2011, 16h53
  5. Réponses: 3
    Dernier message: 19/05/2011, 14h24

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