none
[GDIPLUS] 사용하여 PRINT 시 모니터와 프린터의 출력결과가 다릅니다. RRS feed

  • 일반 토론

  • 안녕하세요.

    MFC에서 GDIPLUS 를 이용하여 PRINT DC 를 연결하여 인쇄 프로그램 테스트를 하고 있었습니다.

    GDIPlus 를 사용하여서 인쇄 작업을 하고 있었습니다.

    알파처리에 문제가 있어 보입니다.

    프린터의 문제라고 생각이 되어서 HP 문의 하였는데 해당 내용 검토 부탁드립니다.

    http://h30491.www3.hp.com/t5/forums/forumtopicpage/board-id/OSDT/thread-id/1329


    아래는 해당이미지를 GDIPLUS 를 사용하여 인쇄한 예제 소스입니다.

    ----------------------------------------------------

    소스 예제)

    // Get a device context for the printer.

    HDC hdcPrint = CreateDC(NULL, TEXT("\\\\printserver\\HP LaserJet 400 color M451nw"), NULL, NULL);

    HBITMAP hBmpImage = 0;

     

    DOCINFO docInfo;

    ZeroMemory(&docInfo, sizeof(docInfo));

    docInfo.cbSize = sizeof(docInfo);

    docInfo.lpszDocName = L"GdiplusPrint";

     

    StartDoc(hdcPrint, &docInfo);

    StartPage(hdcPrint);

    Graphics* graphics = new Graphics(hdcPrint);

    Bitmap img_a(L"c:\\a.png");

    graphics->DrawImage(&img_a, 20,20, img_a.GetWidth(), img_a.GetHeight());

    -------------------------------------------------------------------------------------------

    몇몇에 테스트를 하다가 디바이스 정보를 얻어오는 방법 있다고 하여 DEVMODE 구조체를 이용하여

    출력 디바이스에 속성을 얻어와 테스트 해보았는데도 결과가 마찬가지 였습니다.

    해당이미지를 출력시 프린터의 전송방식을 스니핑 해보았는데

    프린트시 출력하는 드라이버방식 중 PCL6 을 사용하면 위와 같이 이상한 출력이 나왔습니다.

    다른 출력물은 모두 모니터와 같은 출력결과가 나왔습니다.(PostScript, QPDL 방식)

    GDIPLUS 를 사용할 때 다른 방법이 있는 지 문의 드립니다.


    2015년 7월 22일 수요일 오전 8:53