프린터로 출력하는 루틴을 구현하였는데
명령을 내려도 출력이 되지 않습니다.
프린터 제어판에 들어가서 테스트 페이지 출력 후
명령을 내리면 그제서야 출력이 됩니다.
프린터 설정상의 문제인지
아니면 프로그램상의 문제인지 모르겠습니다.
프로그램 구현 부분은 아래와 같습니다.
참고로 프린터는 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;
//===================================================================
}
}
//---------------------------------------------------------------------------
|