본문 바로가기

프로그래밍 관련

VB 6.0에서 프린터에 RAW DATA 보내기

바코드 프린터를 사용할 경우나, 프린터에 직접 RAW 데이타를 보내 조작해야 할 경우가 있다
허나 VB에서는 RAW 데이타 전송을 지원하지 않는다

그래서 뒤져뒤져 MSDN에서 찾아 코딩을 해보았다
http://support.microsoft.com/kb/600847/ko
근디 이 시키들(^^;;)이 안 적어 놓은 주의 사항이 있다..ㅡㅜ

WritePrinter(lhPrinter, ByVal sWrittenData, Len(sWrittenData), lpcWritten)
요걸로 출력시 한글에 문제가 있어 가볍게 웃으며

WritePrinter(lhPrinter, ByVal sWrittenData, LenB(sWrittenData), lpcWritten)
요렇게 고쳐서 해결을 본걸로 생각했는데..

SATO CL408e 기종에서 종종 프린터가 먹통이 되는 상황이 발생하는 것이 었따~!

별의별 짓을 다해봐도 알 수 없는 오류...

거의 반나절 이상을 고생하다가.. 같은 유니코드 체계에 해결 방법이 있으리라 생각되서 중국쪽을 뒤져서 결국 찾아 냈다..

LenB(StrConv(sWrittenData, vbFromUnicode))

알고 보면 간단한...

WritePrinter 메소드에서 문자열의 길이를 계산 할때는
LenB(StrConv(sWrittenData, vbFromUnicode))

잊지 말자...ㅡㅜ

내 시간 돌리도~~~~~~~!!!!!

ps. 누군가 내 덕에 시간을 번다면.. 리플이라도 달아주세요...ㅡㅜ