web-dev-qa-db-fra.com

Comment imprimer à partir de l'imprimante thermique sous Android?

Je travaille sur une application pour un appareil Android qui aura une imprimante en ligne intégrée. Je dois interagir avec cette imprimante et l'utiliser pour imprimer les détails à la réception, puis avec une coupe au cutter qui J'y ai vu quelques commandes ESC, mais je ne sais pas comment exécuter ces commandes ESC.

J'ai trois problèmes principaux concernant l'imprimante de périphérique Casio:

1. J'ai utilisé le code d'impression pour l'imprimante intégrée, mais après l'impression, le massicot n'est pas activé

BuildinEx840 ex840 = new BuildinEx840();
int response = ex840.open();
System.out.println("ex840 open:" + response);

byte[] set = {
    'N', 'A', 'R', 'E', 'S', 'H', 'S', 'H', 'A', 'R', 'M', 'A', (byte) 0x0d, (byte) 0x0a
};

try {        

    ex840.write(set);   

} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

try {

    response = ex840.getEndStatus();
    System.out.println("getEndStatus:" + response);
    response = ex840.initCutter();
    ex840.close();    
    System.out.println("initCutter:" + response);

} catch (Exception e) {         
    e.printStackTrace();         
}

2. Je ne sais pas comment envoyer des commandes ESC à l'imprimante sous Android

Il existe un certain nombre de commandes comme ci-dessous

ESC FF DataPrint,
[code]  <1B>H<OC>H,
[Function] Print all the data in the print area collectively.

Comment pouvons-nous exécuter ces commandes ESC dans Android en programmant ??

3 .Je ne sais pas comment imprimer le reçu au format requis

Certaines commandes ESC sont disponibles pour fournir des marges de gauche à droite et d'autres commandes. Alors, comment puis-je imprimer les données dans un certain format et peut changer la taille du texte ainsi que certains autres paramètres du texte à imprimer.

Toute aide est appréciée.

33
Naresh Sharma

Après avoir travaillé pendant les 7 derniers jours, j'ai obtenu le bon moyen d'obtenir l'impression, puis de couper ce reçu par le coupeur. Les commandes ESC sont très importantes pour obtenir l'impression et d'autres tâches liées à l'imprimante. Nous devons transmettre ces ESC CMD sous forme de tableau d'octets à l'imprimante de ligne.

Il existe un certain nombre de commandes comme ci-dessous

ESC FF DataPrint,
[code]  <1B>H<OC>H,
[Function] Print all the data in the print area collectively.

Il suffit donc de créer un tableau d'octets de cette commande et de le transmettre à l'imprimante.

e.g. byte[] print = {0x1b,0x0c};

passez-le maintenant à l'imprimante. Il doit exister une méthode comme getCmd () ou writeCmd (), etc., selon l'imprimante.

Comment pouvons-nous exécuter ces commandes ESC dans Android en programmant ?? Ci-dessous le code pour le faire

    BuildinEx840 lpd=new BuildinEx840();
            lpd.setMulticharMode(LinePrinterDeviceBase.CHARACTERSET_USA);
//initialise Cutter
            lpd.initCutter();
            LinePrinter lp=new LinePrinter();
            lp.open(lpd);
            lpd.open();
            try{
                lpd.init();
            }catch(IOException e){
                e.printStackTrace();
            }
            for(int i=0; i<5;i++){
                lp.printNormal("Testing the Line Printer");
            }
            int totalLinefeed=listofItemList.size();
//ESC CMD for line feeds
            byte[] lfs=new byte[]{0x1B,'d', 5};
            sendtoExprinter(lpd,lfs);
//ESC CMD for paper cut
            lfs=new byte[]{0x1B,'i'};
            sendtoExprinter(lpd, lfs);

private void sendtoExprinter(BuildinEx840 dev, byte[] instr) {
        try{
            dev.write(instr);
        }catch(IOException e){
            e.printStackTrace();
        }

    }

MISE À JOUR: Impression d'une image via une imprimante thermique

Dans certaines imprimantes, vous pouvez définir l'image dans la mémoire non volatile de l'imprimante, puis imprimer l'image à partir de là via ESC cmd 1C 70 01 . Dans certaines des autres imprimantes, vous pouvez donner un chemin direct de l'image lors de l'impression d'une image via une imprimante thermique.

Dans n'importe quelle imprimante en ligne, nous devons passer le contrôleur ESC CMD par cette imprimanteObj.write (commande); façon. Je tiens à remercier la communauté SO et merci à TheBlastOne qui m'a guidé dans la bonne direction.

Si quelqu'un a un problème d'intégration des imprimantes thermiques, n'hésitez pas à demander.

26
Naresh Sharma