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

C Discussion :

séquence d'échapement dynamique (ESC/POS)


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut séquence d'échapement dynamique (ESC/POS)
    bonjour à tous,

    je voudrais pouvoir créer une séquence d'échapement de manière dynamique.
    je m'explique. Le but est de lire le code hexadecimal d'un fichier image (bmp) et de le transmettre à une imprimante. A l'aide du langage ESC/POS (langage de communication développé à l'origine pour les imprimantes EPSON).

    procédé : on ouvre deux fichiers (fopen()) l'un pour l'imprimante(\dev\lp0) et l'autre le fichier image(\Desktop\image.bmp). on lit (fread) le fichier image et on envoi le contenu(fwrite) à l'imprimante.

    Le principe est simple mais la réalisation est plus compliquée.
    je peux envoyer ceci à l'imprimante

    fwrite("\xFF",strlen("\xFF"),1,FILENAME); //avec c = "\xFF" et l'imprimante comprend qu'elle doit imprimer un point noir.

    là où est le problème c'est que les caractères d'échappement sont interprêter à la compilation de la source du programme. c'est à dire que si je donne le même string dans le "runtime" :
    fwrite(c,strlen(c),1,FILENAME); //avec c = "\xFF"
    le string n'est pas interpréter en tant que commande d'échappement.

    pouvez-vous me donner des indices?
    merci,
    Laurent.

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par laurentleroy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite("\xFF",strlen("\xFF"),1,FILENAME); //avec c = "\xFF" et l'imprimante
    '\' dans une chaine d'un source C, c'est '\\'

    Ca commence par une ouverture en mode binaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILE * FILENAME = fopen(nom_du_periherique, "wb");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite("\\xFF",strlen("\\xFF"),1,FILENAME);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char const *s = "\\xFF";
    fwrite(s, strlen(s),1,FILENAME);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char const *s = "\\xFF";
    fprintf(FILENAME, "%s", s);

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

Discussions similaires

  1. Commandes ESC/POS en paramètres
    Par SergioMaster dans le forum Langage
    Réponses: 4
    Dernier message: 21/12/2011, 12h37
  2. comment envoyer commande ESC/POS
    Par danou07200 dans le forum C#
    Réponses: 1
    Dernier message: 07/11/2010, 21h06
  3. Créer une séquence dynamiquement
    Par Sargon dans le forum PL/SQL
    Réponses: 4
    Dernier message: 06/11/2008, 17h08
  4. Rich Text Format séquence d'échapement
    Par Invité dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/12/2007, 15h28
  5. comment créer des séquences lignes dynamiquement
    Par aelmedra dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 14/09/2006, 14h42

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