Tag Archives: 프린트

텍스트 인쇄하기

이것 때문에 꽤나 골머리를 앓았었는데 여기서 수없이 찾아보고 테스트하여 답을 얻었습니다.
저처럼 필요하신 분이 계실 것 같아 정리하여 올려봅니다.
 

제가 원하던 것은 LPT Port로 직접 Data를 쓰는 것이었습니다.
프린터에 일정한 형식으로 Text를 만들어 넣어 주면 내장된 폰트 등을 사용하여
바코드도 인쇄하는 프린터를 쓰기 위한 것입니다.

 

// LPT Port 로 직접 인쇄하기…

void CLabelPrint::OutLptPort(CString strText)
{
    HANDLE hLpt;
    hLpt = CreateFile(“LPT1:”, GENERIC_WRITE, 0, NULL, OPEN_ALWAYS,
                        FILE_ATTRIBUTE_NORMAL, NULL);
 
    if(hLpt == INVALID_HANDLE_VALUE)
        AfxMessageBox(“Can not open LPT1 !!!”);
    else{
        DWORD dwWritten;
        WriteFile(hLpt, strText, strText.GetLength(), &dwWritten, NULL);
        CloseHandle(hLpt);
    }
}
 
 
// LPT Driver로 인쇄하기…
void CLabelPrint::OutLptDrive(CString strText)
{
    HDC PrintDc;        // Printer DC를 얻고
    PrintDc = CreateDC(NULL, DefaultPrinter, NULL, NULL);
 
    // 현재 인쇄할 내용이 무엇이라는 것만 알리고…
    static DOCINFO docinfo = { sizeof(DOCINFO), “Label Print”, NULL};
    // 인쇄 시작 명령을 보낸다
    StartDoc(PrintDc, &docinfo);
 
    // 페이지 시작임을 알린다
    StartPage(PrintDc);
 
    // 실제 인쇄를 하는 부분…
    TextOut(PrintDc, 0, 0, strText, strText.GetLength());
 
    // 페이지 종료를 알린다
    EndPage(PrintDc);
 
    // 인쇄가 종료 명령을 보낸다
    EndDoc(PrintDc);
}