Comment imprimer à partir de L'imprimante thermique dans 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 sur le reçu, puis avec cutter Couper ce reçu automatiquement. J'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 Casio Device:

1.J'ai utilisé l'impression de code pour Construire dans l'imprimante, mais après l'impression la fraise n'est pas activée

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 dans android

Il y a un 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 dans le format requis

Il y a quelques commandes ESC sont disponibles pour fournir des marges de gauche et de droite et d'autres commandes. Alors comment puis je imprimer les données dans certains formiate et peut changer la taille du texte ainsi que quelques autres paramètres du texte à imprimer.

Toute aide est appréciée.

33
demandé sur John Bollinger 2013-03-29 14:28:56

1 réponses

Après avoir travaillé pendant les 7 derniers jours, j'ai eu la bonne façon d'obtenir l'impression, puis de couper ce reçu par le cutter. Les commandes ESC sont très importantes pour obtenir l'impression et d'autres tâches liées à l'imprimante. Nous devons passer ces cmd ESC sous la forme du tableau d'octets à l'imprimante de ligne.

Il y a 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 y avoir certains méthode comme getCmd (), ou writeCmd () etc. selon l'imprimante.

Comment Pouvons-nous exécuter ces commandes ESC dans android en programmant ?? Voici 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 par imprimante thermique

Dans certains de l'imprimante vous pouvez définir l'image dans la mémoire non volatile de l'imprimante, puis imprimer l'image à partir de là par le biais de ESC cmd 1C 70 01 30. Dans certains autres imprimantes que vous pouvez donner directement chemin de l'image lors de l'impression d'une image par imprimante thermique.

Dans toute imprimante de ligne, nous devons passer le CMD ESC par ce printerObj.Ecrire (commande); façon. Je veux remercier la communauté SO et un merci spécial à TheBlastOne qui m'a guidé dans le bon sens.

Si quelqu'un ayant un problème dans l'intégration des imprimantes thermiques n'hésitez pas à demander.

26
répondu Naresh Sharma 2015-08-30 17:38:56