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

Applets Java Discussion :

Impression Zebra depuis une Applet


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut Impression Zebra depuis une Applet
    Bonjour,

    Je souhaite mettre en place dans une application l'impression automatique d'étiquettes sur une imprimante thermique Zebra.
    J'aimerais utiliser une applet.
    J'ai développé l'applet sans trop de problème (il s'uffit d'envoyer un flux directement à l'imprimante ou sur le port) et elle fonctionne plutôt pas mal en local par contre impossible de lancer l'impression depuis la page web.

    J'ai auto-signé mon applet, elle se lance correctement.
    Après avoir mis des sysout et autres printStackTrace un peu partout, je ne rencontre pas d'erreur lors de l'exécution.
    Je vois même le job l'impression apparaitre dans la file d'attente de mon imprimante (sous Windows), mon problème est que celui-ci passe direct en "suppression" et mon impression n'est pas lancée.

    Ça ressemble à un problème de sécurité au niveau Windows mais je ne vois pas comment le contourner... Si quelqu'un a une solution pour ça, ça m'aiderait bien.

    Le code d'impression ressemble à ça :

    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
     
    public boolean printOnPrinter(String printerName) {
    		PrintService printer = null;
    		System.out.println("Recherche de l'imprimante " + printerName);
    		PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
            for (int i = 0; i < services.length ; i++) {
                if (printerName.equals(services[i].getName())) {
                	printer = services[i];
                	System.out.println("Imprimante " + printerName + " trouvée");
                	break;
                }
            }
            if (printer == null) {
            	System.err.println("L'imprimante (" + printerName + ") n'a pas été trouvée");
            	return false;
            }
     
            System.out.println("Création du job d'impression");
            DocPrintJob job = printer.createPrintJob();
            byte[] by = stream.getBytes();
            DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
            Doc doc = new SimpleDoc(by, flavor, null);
            try {
            	System.out.println("Début de l'impression");
    			job.print(doc, null);
    		} catch (PrintException e) {
    			System.err.println("Une erreur s'est produite pendant l'impression");
    			e.printStackTrace();
    			return false;
    		}
            System.out.println("Impression terminée");
            return true;
    	}
    J'utilise un JNLP généré par une servlet pour lancer mon applet qui ressemble à ça :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp codebase="http://localhost:8080/myapp" spec="1.5+">
        <information>
            <title>PrintApplet</title>
            <vendor>MonEntrepiuse</vendor>
            <homepage href="http://www.monentreprise.fr"/>
            <description>...</description>
        </information>
        <resources>
            <j2se href="http://java.sun.com/products/autodl/j2se" version="1.5+"/>
            <jar href="lib/printApplet-signee.jar" main="true"/>
            <jar href="lib/libutile-signee.jar"/>
        </resources>
        <applet-desc documentbase="http://localhost:8080/myapp/lib"
            height="30" main-class="main.Main" name="PrintApplet" width="200">
            <param name="gou" value="... objet sérializé et encodé en base64 ..."/>
        </applet-desc>
        <security>
            <all-permissions/>
        </security>
    </jnlp>

  2. #2
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut
    Le problème était au niveau du flux vers l'imprimante qui était corrompu.

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

Discussions similaires

  1. Initialisation Spring depuis une applet
    Par waflyx dans le forum Spring
    Réponses: 1
    Dernier message: 12/12/2007, 14h43
  2. Lister le contenu d'un dossier depuis une applet
    Par faocode dans le forum Applets
    Réponses: 1
    Dernier message: 11/05/2007, 10h05
  3. [applet] créer un fichier depuis une applet.
    Par BouB dans le forum Applets
    Réponses: 12
    Dernier message: 02/04/2007, 06h45
  4. Réponses: 2
    Dernier message: 02/10/2006, 09h04
  5. Télécharger un fichier depuis une applet
    Par doudblast dans le forum Applets
    Réponses: 4
    Dernier message: 08/03/2006, 16h17

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