2012-09-04 17 views
6

Sto inviando il testo alla stampante bluetooth tramite la mia cella Android. Sia la stampante sia il mio dispositivo sono collegati tramite Bluetooth. Sta funzionando bene e sto ottenendo il testo desiderato sulla carta.Come modificare la dimensione del carattere durante la stampa in Android?

La mia domanda è:

La stampante sta prendendo il default font size del testo. Voglio cambiare la dimensione del carattere del testo che deve essere stampato.

Come posso raggiungere questo ??

Ecco il mio codice di stampare il testo dopo la connettività bloutooth:

private void connect_print(BluetoothDevice bluetoothDevicess) { 
    // some code 
    printData(); 
    // some code 
} 

Il metodo printData()

private void printData() { 
    // TODO Auto-generated method stub 
    String str = new String("This is the text sending to the printer"); 
    String newline = "\n"; 
    try { 
     out.write(str.getBytes(),0,str.getBytes().length); 
     Log.i("Log", "One line printed"); 
    } catch (IOException e) { 
     Toast.makeText(BluetoothDemo.this, "catch 1", Toast.LENGTH_LONG).show(); 
     e.printStackTrace(); 
     Log.i("Log", "unable to write "); 
     flagCheck = false; 
    } 
    try { 
     out.write(newline.getBytes(),0,newline.getBytes().length); 
    } catch (IOException e) {   
     Log.i("Log", "Unable to write the new line::"); 
     e.printStackTrace(); 
     flagCheck = false; 
    } 
    flagCheck = true; 
} 

voglio cambiare il font size e la font style del testo che sta inviando alla stampante per stampare. Per favore aiutami a raggiungere questo obiettivo. Se qualcuno può suggerire qualsiasi link, anch'io lo apprezzerò. Aiutami a trovare la soluzione a questo problema

+0

per favore suggerirmi cosa dovrei fare in questa situazione? –

+0

Qualcuno può dirmi cosa devo fare qui –

+0

Non ho ancora ricevuto risposta a questo –

risposta

5

Hi si scrive su la mia risposta dello stesso tema:

Ho già posto la stessa domanda in questa discussione QUI, ma non ha ricevuto e ho ricevuto risposta. Ho solo una risposta, ma non mi ha aiutato.

Vediamo se è di aiuto. QUI

Se hai finito con quello, per favore rispondimi nella mia discussione. Lo apprezzerò sicuramente .

Ora konw come farlo, ho dovuto applicare INGENEERING retromarcia e decompilare un .apk dal mercato, utilizzando dex2jar su Linux e successivo vaso apertura con Java Decompiler ... Prova questo ... quando u scrivere questo comando:

out.write(str.getBytes(),0,str.getBytes().length);

U inviano al metodo un array di byte [], u può modificare formato di invio un'altra matrice di byte [] prima di inviare l'array reale byte []. ..

Il formato predefinito di byte array [] è questa:

byte[] arrayOfByte1 = { 27, 33, 0 };

Così u può provare questo:

byte[] format = { 27, 33, 0 }; 

out.write(format); 

out.write(str.getBytes(),0,str.getBytes().length); 

Questi li nes sarò stampare il testo u formato di default, ma Uf u farlo:

byte[] format = { 27, 33, 0 }; 

format[2] = ((byte)(0x8 | arrayOfByte1[2])); 

out.write(format); 

out.write(str.getBytes(),0,str.getBytes().length); 

Sarà stampare testo in stile audace ... U può provare questo oter array formato:

  // Bold 
      format[2] = ((byte)(0x8 | arrayOfByte1[2])); 

      // Height 
      format[2] = ((byte)(0x10 | arrayOfByte1[2])); 

      // Width 
      format[2] = ((byte) (0x20 | arrayOfByte1[2])); 

      // Underline 
      format[2] = ((byte)(0x80 | arrayOfByte1[2])); 

      // Small 
      format[2] = ((byte)(0x1 | arrayOfByte1[2])); 

Troppo u può combinare, quindi se u come poco e in grassetto il testo, togliere il commento alle asignements matrice, ad esempio:

byte[] format = { 27, 33, 0 }; 

    // Bold 
format[2] = ((byte)(0x8 | arrayOfByte1[2])); 
// Height 
format[2] = ((byte)(0x10 | arrayOfByte1[2])); 
// Width 
format[2] = ((byte) (0x20 | arrayOfByte1[2])); 
// Underline 
// format[2] = ((byte)(0x80 | arrayOfByte1[2])); 
// Small 
// format[2] = ((byte)(0x1 | arrayOfByte1[2])); 
    out.write(format); 
    out.write(str.getBytes(),0,str.getBytes().length); 

stampe Quest'ultimo codice que grande taglia del testo ... Spero che questo possa aiuta u ...

PDTA: mi dispiace per il mio inglese

Pdta2: Sto cercando di stampare immagini, u so come ??

+0

fammi controllare compagno –

+0

Sembra la soluzione per me. grazie, apprezzato –

+0

Ciao Narendra, grazie mille per il tuo codice, sono stato due giorni a provare a formattare del testo seguendo i manuali esistenti e non ha funzionato. Ho un problema legato a questo, ad esempio: Attivo la modalità BOLD seguendo il tuo suggerimento, poi scrivo una riga, poi torno allo stile predefinito e scrivo un'altra riga. La stampante scrive tutto semplicemente prendendo in considerazione l'ultimo parametro inviato, che è lo stile predefinito. Hai avuto anche questo problema? – user997593

0

non sono sicuro, ma u può raggiungere questo obiettivo con il metodo arco java per impostare lo stile del carattere provare come questo

int start=editbox.getSelectionStart();

int end=editbox.getSelectionEnd();

Spannable span=(Spannable)editbox.getText();

StyleSpan f = new StyleSpan( Typeface.createFromAsset(getAssets(), "fonts/genbkbasr.ttf"));

span.setSpan(f, start,end, 0);

simile u possibile applicare lo stile del carattere, colore del font, ecc ....

per maggiori dettagli controllare questo problema

Android Development: How To Replace Part of an EditText with a Spannable

How to use SpannableString with Regex in android?

+0

+1 per dare l'indizio. Lasciatemi provare questo. –

+0

Sory ma questa non è la soluzione della mia domanda. Comunque grazie per il vostro interesse. –

+1

hmmm rispetto a downvote plz non mi merito +1 – Aamirkhan

Problemi correlati