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

Documents Java Discussion :

Impression en paysage et sur AIX


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut Impression en paysage et sur AIX
    Bonjour à tous,

    J'ai beau me démener depuis 2 jours, je n'arrive pas à imprimer un simple fichier texte depuis une machine AIX.

    SITUATION DE DEPART :
    J'avais à l'origine une classe java qui créait un fichier texte en ajoutant des caractères spéciaux en début de fichier pour que l'imprimante hp sache qu'il faut l'imprimer en paysage.
    Certains de ces codes se trouvent sur http://www.dragon-it.co.uk/links/hp_pcl_codes.htm.
    Une fois le fichier créé et posé dans un répertoire, la classe appelait une ligne de commande pour faire "print /D:<nom imprimante> toto.txt".

    BESOIN :
    Je dois faire la mm chose mais sur un serveur IBM AIX 5.3.0.0. Du coup la commande print c'est mort, on va essayer de passer par autre chose. J'ai donc utilisé l'API javax.print pour faire ca plus proprement.
    J'ai donc créé la méthode ci dessous, qui scanne les imprimantes disponibles, sélectionne celle que je veux, et imprime le fichier.

    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
    private void imprimePhysiquement(File file) throws PrinterException, InterruptedException {
            try {
                // Fichier texte tout simple
                file = new File("/pdata/dtxdev2/out/print/Beedon.txt");
                InputStream is = new BufferedInputStream(new FileInputStream(file));
                // Flavour autosense
                DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
                PrintService service = null;
                PrintRequestAttributeSet pSet = new HashPrintRequestAttributeSet();
    			//pSet.add(OrientationRequested.LANDSCAPE)
    			//pSet.add(MediaSizeName.ISO_A4);
                PrintService[] prnSvcs;
                // On récupère toutes les imprimantes correspondant aux critères des pSet(pour le coup absolument toutes)
                prnSvcs = PrintServiceLookup.lookupPrintServices(flavor, pSet);
                if (prnSvcs.length > 0) {
                    int i = 0;
                    while (i < prnSvcs.length) {
    				// Je cherche l'imprimante qui a dans son nom imprimanteName
                        if (StringUtils.containsIgnoreCase(prnSvcs[i].getName(), imprimanteName)) {
                            System.out.println("Printer selected: " + prnSvcs[i].getName());
                            service = prnSvcs[i];
                            break;
                        }
                        i++;
                    }
                }
                // No printer !!
                if (service == null) {
                    throw new PrinterException("Printer " + imprimante + " not found !");
                }
                DocPrintJob job = service.createPrintJob();
    //            DocAttributeSet das = new HashDocAttributeSet();
    //            das.add(MediaSizeName.ISO_A4);
    //            das.add(OrientationRequested.LANDSCAPE);
    //            Doc doc = new SimpleDoc(is, flavor, das);
                Doc doc = new SimpleDoc(is, flavor, null);
                // Print it
    //            pSet.add(MediaSizeName.ISO_A4);
    //            pSet.add(OrientationRequested.LANDSCAPE);
    //            job.print(doc, pSet);
                job.print(doc, null);
                // It is now safe to close the input stream
                is.close();
            } catch (PrintException e) {
                throw new PrinterException("Error printing file " + file.getAbsolutePath());
            } 
            catch (IOException e) {
                throw new PrinterException("Could not find file " + file.getAbsolutePath());
            }
        }
    RESULTATS :
    Sur Windows ca marche a peu près. La page s'imprime, mais impossible de l'imprimer en paysage. Si lors de la recherche de l'imprimante je précise que je cherche des imprimantes pouvant imprimer du paysage, celle que je veux n'apparait pas.
    Si je force le paysage ou le format A4 au niveau de la création du SimpleDoc ou lors de la demande d'impression, ca imprime toujours en portrait.
    Si j'imprime un fichier comme j'avais a l'origine avec les caractères spéciaux en début de fichier ca marche bien.

    Sur AIX c'est la cata. J'arrive absolument pas a imprimer quoi que ce soit. Mon imprimante est bien installée sur le serveur, elle est bien détectée, y'a une et une seule page qui sort mais ca ressemble a une page de garde de print job.
    Ca fait un truc genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    *#########################################*
     
    TITLE : Java Printing
    TIME PRINTED: fri dec 12 12:00:05 2008
    PRINTED AT: hp@<nom de l'imprimante> (generic) @ <nom du serveur>
     
    *****************************************
    *****************************************
     
    FLAG VALUES:
    a=0, d=a, f=, h=
    Ca continue avec d'autres flags, j'ai pas tout mis vous avez compris de quoi je parle.

    Quelqu'un aurait une idée ?

    Merci d'avance.

    SuperFoieGras

  2. #2
    Invité de passage
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Par défaut
    Bonjour,
    J'ai le même problème. Que ce soit avec javax.print, avec JasperReport ou avec JPedal toutes mes impressions sur AIX finissent en code postscript sur les pages imprimées
    Quand j'exécute mes programmes sous windows il n'y a pourtant aucun problème.
    Merci d'avance

    John

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Par défaut
    Hello wolfangel,

    J'ai fini par trouver la solution à ce problème en java.print. Je pensais au départ que cela venait de la configuration des imprimantes sur aix mais apparemment pas.

    Il faut donner JobSheets.NONE en options d'impressions du PrintJob :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
    pras.add(JobSheets.NONE);
    // Impression
    pjob.print(pras);
    Si ca marche toujours pas assure toi que ton imprimante a bien l'option '-o nobanner' activée.

Discussions similaires

  1. [9i] coldbackup sur AIX
    Par Débéa dans le forum Oracle
    Réponses: 18
    Dernier message: 08/09/2005, 15h29
  2. Problème d'impression de caractère (gras) sur matricielle
    Par Tiefolo Salia dans le forum Langage
    Réponses: 1
    Dernier message: 01/09/2005, 23h36
  3. Impression en paysage plutot qu'en portrait
    Par diegoDaz dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/08/2005, 15h01
  4. [MFC] Maximiser l'impression d'une view sur feuille A4
    Par bigboomshakala dans le forum MFC
    Réponses: 10
    Dernier message: 24/11/2004, 15h58
  5. Oracle 9.2 sur AIX 4.3.3
    Par ducho dans le forum Oracle
    Réponses: 3
    Dernier message: 25/03/2004, 16h59

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