2017-11-12 11 views
-1

내가 좋아하는 벵골어 텍스트를 인쇄 할 "আপনি কি ডাটা সংরক্ষন করতে চান"내가 때마다 잘못된 결과를 가지고 내 안드로이드 app.But에서이 문서라도 내 출력입니다 : 이 enter image description here유니 코드 (방글라 글꼴)를 열전 사 프린터로 인쇄하는 방법은 무엇입니까?

내 코드가 여기에 있습니다 :

String memo = "আপনি কি ডাটা সংরক্ষন করতে চান" + "\n" + 
      "\n" + 
      "\n" + 
      "\n" + 
      "\n" + 
      "\n"; 

    byte[] buffer = memo.getBytes(Charset.forName("UTF-8")); 


    try { 
     Toast.makeText(getApplicationContext(), "Starting...", Toast.LENGTH_LONG).show(); 

     Thread.sleep(1000); 
     byte[] printformat = {27, 33, 01}; 
     mmOutputStream.write(printformat); 
     mmOutputStream.write(buffer); 
     mmOutputStream.write(0x0B); 
     mmOutputStream.write(0x0B); 
     mmOutputStream.write(0x0B); 
     mmOutputStream.flush(); 

     mmOutputStream.close(); 
     mmSocket.close(); 
     Toast.makeText(getApplicationContext(), "Completed", Toast.LENGTH_LONG).show(); 
     mmOutputStream.close(); 
     mmSocket.close(); 
    } catch (Exception ex) { 
     Toast.makeText(getApplicationContext(), 
       "Excep IntentPrint", Toast.LENGTH_SHORT).show(); 
    } 
+0

소켓의 다른 쪽 끝에서 무엇입니까 : 다음 내 프린터 설정입니까? – xs0

+0

프린터가 UTF-8 인코딩을 지원합니까? –

+0

예, 프린터가 UTF-8 인코딩을 지원합니다. 블루투스를 통해 윈도우 머신에서 방글라 텍스트를 인쇄 할 수 있습니다. –

답변

1

먼저 프린터에 bangla 글꼴이 지원되는지 확인하십시오. 그렇지 않다면 인쇄 할 수있는 또 다른 방법입니다. 이미지 (비트 맵)로 bangla 텍스트를 가진 레이아웃을 캡처 한 다음 프린터 비트 맵 인쇄 API를 사용해야합니다. 아랍어 텍스트에 대해서도 동일한 문제가있었습니다. 이 기술을 사용하여이 문제를 해결합니다. 감사.

0

프린터가 UTF-8의 멀티 바이트 시퀀스를 처리 할 수 ​​있다고 가정합니다. 동시에 프린터 특정 제어 바이트가 기록됩니다. 필자는 프린터에 제한적이고 특정한 ASCII (8 비트) 문자 집합 만 있다고 생각합니다.

그래서 그것을 밖으로 시도 : 당신이 어떤 문서를 찾을 수없는 경우

byte[] buffer = new byte[128]; 
for (int i = 0; i < 128; ++i) { 
    buffer[i] = (byte)(-128 + i); 
} 

, 당신은 손으로 모든지도 할 필요가있다.

그런 다음 "\u098F\u09AC\u0982"과 같은 문자열로 문자를 매핑해야합니다.

Map<Character, Byte> charsToByte; 
charsToByte.put('\u088F', (byte)129); // Or such. 
0

열전 사 프린터와 함께 설명서가있는 경우 코드 페이지를 검색하십시오. 열전 사 프린터의 ASCII 값은 256 자입니다! 처음 128 자는 고정되어 그대로 인쇄되며 유니 코드에서 코드 페이지를 설정하여 마지막 128자를 편집 할 수 있습니다. 코드 페이지를 가질 수 없다면 사용자 정의 문자 세트를 설정해야합니다. **

[Name] Select character code table 
    [Format] ASCII ESC t n 
    Hex 1B 74 n 
    Decimal 27 116 n 
    [Range] 0≤ n≤ 5,16≤ n≤ 19,n=255 
    [Description]Selects a page n from the character code table. 
    [Defaults]n=0 
    [Reference]Character Code Table  
 ** 
[Name]Select/cancel user-defined character set 
    [Format] ASCIIESC % n 
    Hex 1B 25 n 
    Decimal 27 37 n 
    [Range] 0≤ n≤ 255 
    [Description]Selects or cancels the user-defined character set. 
    • When the LSB of n is 0, the user-defined character set is canceled. 
    •When the LSB of n is 1, the user-defined character set is selected. 
    [Note]When the user-defined character set is canceled,the internal character set is 
    automatically selected 
    • n is available only for the least significant bit. 
    [Defaults] n=0 
    [Reference] ESC&,ESC? 
**