Partage
  • Partager sur Facebook
  • Partager sur Twitter

Impression recto/verso sous Mac OS X

    13 juillet 2015 à 19:10:25

    Bonjour à tous,

    quelqu'un aurait il une idée de pourquoi mon logiciel développé sous Java arrive à imprimer mes documents recto/verso sous Windows mais pas sur Mac OS X ???

    Voici un morceau de code:

    PrintRequestAttributeSet asetgen = new HashPrintRequestAttributeSet();
    if(formImpression.getDuplex()){
       asetgen.add(Sides.DUPLEX);
    }else{
       asetgen.add(Sides.ONE_SIDED);
    }

    Merci pour vos lumières !

    • Partager sur Facebook
    • Partager sur Twitter
      14 juillet 2015 à 18:25:02

      J'ai juste oublié de préciser que je passais par un document jasper.

      JRExporter document = new JRPrintServiceExporter();

      ....

      document.exportReport();

      Ce code a bien fonctionné pendant plus d'un an et maintenant que j'ai migré vers mac OS X ça ne va plus !

      Y aurait-il une autre solution ???

      • Partager sur Facebook
      • Partager sur Twitter
        15 septembre 2015 à 16:38:10

        Personne qui programme en Java sous mac os x ???
        • Partager sur Facebook
        • Partager sur Twitter
          15 septembre 2015 à 19:52:33

          Bonsoir,

          Si sa passe sur windows, mais pas sur mac, c'est sûrement un problème de driver. Mac et Linux fonctionnent avec de l'Unix et les drivers ne sont pas forcément à l'identique de windows (moins pris en charge par les constructeurs d'imprimantes, même s'il essaye de faire de leurs mieux. Oui, il est de plus en plus facile de trouver des drivers pour mac et Linux, sur les sites des fabricants, mais ce n'est pas encore ça mdr). Pouvez-vous imprimer en rétro-verso sur mac (par exemple avec open-office) ? (J'utilise surtout Linux, je ne suis pas expert mac ^^).

          Sinon faudrait plutôt faire une demande sur le site officiel de java, c'est possible que ce soit seulement un problème connu, mais sans solution.

          Edit :

          Déjà pour aider, faudrait connaitre le "formImpression.getDuplex()" qui sert à dire si on est en impression recto-verso ou non.

          Bonne continuation.

          -
          Edité par pctronique 15 septembre 2015 à 20:02:52

          • Partager sur Facebook
          • Partager sur Twitter
            19 janvier 2016 à 6:04:28

            Merci de ta réponse pctronique.

            Malheureusement, la solution n'a toujours pas été trouvé. Le problème dans cette histoire. C'est que le mode recto/verso fonctionne bien à partir de word, excel, acrobat reader, ... et même à partir du code suivant :

            public void run()
            					{
            						try
            						{
            							btnPrint.setEnabled(false);
            							JRViewer.this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
            							JasperPrintManager.printReport(jasperPrint, true);
            						}
            						catch (Exception ex)
            						{
            							if (log.isErrorEnabled())
            								log.error("Print error.", ex);
            
            							JOptionPane.showMessageDialog(JRViewer.this, getBundleString("error.printing"));
            						}
            						finally
            						{
            							JRViewer.this.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
            							btnPrint.setEnabled(true);
            						}
            					}

            Mais pour les besoin de mon application, j'ai besoin de donner des attributs différent à 3 documents par impression. (nbre de copies et duplex)

            Exemple: 1er doc 3 copies/duplex  -- 2eme doc 1 copie/duplex -- 3eme doc 1 copie/single

            Mais il se peut que ces valeurs changent !

            Peut-on éventuellement communiquer avec le PrintDialog via JasperPrintManager ?

            Le top pour moi serait de faire comme avant. C'est à dire un panel personnalisé à la place du PrintDialog et de mettre sa valeur à faux.

            Voici un morceau du code qui bug : (J'ai effacé temporairement les 2 autres documents afin de centrer mes recherches sur le duplex)

            PrintRequestAttributeSet asetgen = new HashPrintRequestAttributeSet();
            
            asetgen.add(new Copies(Integer.parseInt(formImpression.getTxtCopie().getText())));
            
            asetgen.add(Sides.DUPLEX);
            
            JRExporter expDocument = new JRPrintServiceExporter();
            
            expDocument.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
            
            expDocument.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE, service);
            
            expDocument.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, service.getAttributes());
            
            expDocument.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, asetgen);
            
            expDocument.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
            
            expDocument.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.TRUE);
            
            expDocument.exportReport();

            Je tiens encore à signaler qu'il fonctionnait sous windows et ce pendant des années ! Chose encore curieuse, si je met le printdialog sur vrai, le duplex est bien coché mais l'impression sors le document sur 1 face !

            J'ai déjà tenté des démarches auprès de mon revendeur d'imprimant (sa conclusion: API et mac)

            J'ai envoyé un mail chez Brother (leur conclusion: nouveau firmware par mail identique à celui sur leur site que j'ai déjà mis à jour auparavant)

            La seule et dernière conclusion de ce site: le driver.

            Mon impression est que tous le monde va se renvoyer la balle !

            Est ce que, svp, quelqu'un aurait une alternative pour l'impression recto/verso ??

            Merci d'avance

            -
            Edité par Mmmuzik 19 janvier 2016 à 6:07:00

            • Partager sur Facebook
            • Partager sur Twitter
              19 janvier 2016 à 7:44:24

              Voici la liste de ma lib :

              commons-beanutils 1.8.2

              commons-collections 3.2.1

              commons-digester 2.1

              commons-javaflow 20060411

              commons-logging 1.1

              itext 2.1.7

              jasperreport 4.8.0

              jcommon 1.0.23

              Merci pour votre aide !

              • Partager sur Facebook
              • Partager sur Twitter

              Impression recto/verso sous Mac OS X

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown