구글에서 검색해서 해답을 찾았습니다.
혹시나 누군가가 같은 증상이 발생해서 고생할까봐 이렇게 해결책을 올립니다.
//================================================================
답은 ReportTitle에 값이 없어서 그렇답니다.
BeginDoc(); 이 함수 앞에 prt->Title = "Printer Page";를 추가 하여 해결했습니다.
즉....
prt->Title = "Printer Page";
prt->BeginDoc();
....
...
prt->EndDoc();
이상 끝...
//================================================================
팀장 님이 쓰신 글 :
: 프린터로 출력하는 루틴을 구현하였는데
: 명령을 내려도 출력이 되지 않습니다.
: 프린터 제어판에 들어가서 테스트 페이지 출력 후
: 명령을 내리면 그제서야 출력이 됩니다.
: 프린터 설정상의 문제인지
: 아니면 프로그램상의 문제인지 모르겠습니다.
:
: 프로그램 구현 부분은 아래와 같습니다.
:
: 참고로 프린터는 HP LaserJet P1005, OS는 Windows XP 영문 입니다.
:
: 또하나 TChart를 사용하는데 TChart의
: ViewMoreChart->PrintLandscape();
: 명령으로 프린터 하면 테스트 페이지 인쇄 없이 바로 프린터 됩니다.
:
:
:
: void __fastcall TViewMoreForm::ScreenPrinterBtnClick(TObject *Sender)
: {
: bool i_bResult = false;
:
: i_bResult = ViewMorePrintDialog->Execute();
:
: if (i_bResult == true)
: {
: //===================================================================
: Graphics::TBitmap * i_FormImageBitmap;
:
: i_FormImageBitmap = ViewMoreForm->GetFormImage();
:
: Sleep(4);
:
: TPrinter *prt = Printer();
: i_FormImageBitmap->HandleType=bmDIB; // This is *VERY* important
: double h=i_FormImageBitmap->Height,w=i_FormImageBitmap->Width,fct,wf;
: prt->Orientation=poLandscape; // 가로모드 인쇄
:
: wf=(double)prt->PageWidth/w;
: fct=(double)prt->PageHeight/h;
: if (fct>wf) fct=wf;
:
: prt->BeginDoc();
: prt->Canvas->StretchDraw(Rect(10,100,fct*w+10,fct*h-100),i_FormImageBitmap);
: prt->EndDoc();
:
: delete i_FormImageBitmap;
: //===================================================================
: }
: }
: //---------------------------------------------------------------------------
: |