vortex 님이 쓰신 글 :
:
통장 프린터기에 고객 서비스 차원에서 통장크기의 프린트 용지를 출력하려고 합니다.
: 은행 프로그램은 아니구요..
:
: 아래 소스는 C로 짜여진듯 합니다.
: 통장프린터 출력 프린터 소스중 일부인데요.
: C에서는
: BYTE bNumOneLine[100] = {"01234567890123456789\n\r"}; 바이트 배열 선언하고
: nRet = UsbPrintPbprData( bNumOneLine ); 이렇게 배열을 통째로 넘깁니다.
: 근데 문제는
: UsbPrintPbprData 요넘에 대한 정보를 보아하니
: Function int UsbPrintPbprData (BYTE *szPrintingData) <--- 이렇게 되어있더군요..
:
: 그렇다면 델파이에서는 어떻게 파라미터를 넘겨야 하는건가요??
: byte형 배열을 선언해서
: .... := UsbPrintPbprData(Mb_Value[1]); 이렇게 해서는 절대 안넘어가구요,
: Mb_Value : Byte;
: Mb_Value := 12;
: .... := UsbPrintPbprData(Mb_Value); 이건 더더욱 안되구요...ㅠㅠ
:
: 고수님들의 가르침을 얻고자 이렇게 무식한 델초보가 글을 올립니다.
: 사정이 급해서...ㅠㅠ
: 답변좀 부탁드리겠습니다.
:
: 요넘땜에 일주일 째 식겁하고 있습니다..ㅠㅠ
:
: int NEAR PrintingTest( HWND hWnd )
: {
: int i;
: int nRet;
: BYTE szMsg[100] = {""};
: BYTE bNumOneLine[100] = {"01234567890123456789\n\r"};
:
: nRet = UsbOpenPbpr( 12, 5, 1, 190 );
:
: for( i = gnPrintLineNum; i < 15; i++ ){
: switch( nRet ){
: case SUCCESS: //100303 hj_ 테스트 함수 추가
: // -------------------------------------
: // 절대라인 5라인 위치
: // 12 CPI
: // 5 LPI
: // -------------------------------------
: if( i == 0 ) {
: UsbAbsoluteVertical( 5 );
: UsbDefineLpi( 3 );
: UsbDefineCpi( 10 );
: nRet = UsbPrintPbprData( bNumOneLine );
: gnPrintLineNum = i;
: }
: // -------------------------------------
:
: // -------------------------------------
: // 절대라인 15라인 위치
: // 10 CPI
: // 3 LPI
: // -------------------------------------
: else if( i == 5 ) {
: UsbAbsoluteVertical( 15 );
: UsbDefineLpi( 5 );
: UsbDefineCpi( 12 );
: nRet = UsbPrintPbprData( bNumOneLine );
: gnPrintLineNum = i;
: }
: // -------------------------------------
:
: // -------------------------------------
: // 가로 확대
: // 가로 확대 해제
: // -------------------------------------
: else if( i == 10 ) {
: UsbDoubleWidth( );
: nRet = UsbPrintPbprData( bNumOneLine );
: UsbClearsDoubleWidth( );
: gnPrintLineNum = i;
: }
: // -------------------------------------
:
: // -------------------------------------
: // 위에 설정된 기본값 설정됨
: // -------------------------------------
: else {
: nRet = UsbPrintPbprData( bNumOneLine );
: gnPrintLineNum = i;
: }
: // -------------------------------------
: break;
:
: case NO_PAPER:
: MessageBox( hWnd, "종이를 삽입하고 Enter를 치세요", "종이 없음", MB_OK );
: PrintingTest( hWnd );
: return( 0 );
:
: case DOCUMENT_TOTALLY_INSERTED:
: MessageBox( hWnd, "정리할 내용이 남아있습니다.\n\n다음장을 삽입하세요", "계속", MB_OK );
: PrintingTest( hWnd );
: return( 0 );
:
: default:
: wsprintf( szMsg, "Error Code : %d\n# %s", nRet, szFormatMsg[nRet-1] );
: MessageBox( hWnd, szMsg, "Error", MB_OK );
: return( 0 );
: } // switch() endA
: } // for() end
:
: // To Expel Paper
: UsbExpelPaper();
: gnPrintLineNum = 0;
: return( SUCCESS );
: }
이거 혹시 약도매상에서 쓰는 프린터 아닌가요?
전에 맹글어둔 뭔가 있었던거 같은데 혹 필요하시면 쪽지 주세요.