|
TRect R;
if(PrintDialog->Execute()){
TPrinter *Ptr = Printer();
R = Rect(0, 0, Image->Picture->Width , Image->Picture->Height );
Ptr->BeginDoc();
Ptr->Canvas->StretchDraw(R, Image->Picture->Graphic);
Ptr->EndDoc();
}
이렇게 출력을 하면 이미지가 상당히 작게 나오네요..
폼에서 보이는 이미지 랑..프린터기가 인식하는 거랑 차이가 상당히 많이 나는거 같은데..
어쩌면 당연한지도 모르겠네요..
이 걸 실제 싸이즈 랑 비슷하게 출력 할려면 어떻게 해야 할까요?
Print 에서 인식하는 A4 가로 세로 싸이즈가 얼마인가요?
대략 저 폭에 *7 정도로 하면....눈에 보이는 거랑 비슷한 싸이즈 인거 같은데..
그건 문제가 있고..
.
int XPI = GetDeviceCaps(Ptr->Handle,LOGPIXELSX);
int YPI = GetDeviceCaps(Ptr->Handle,LOGPIXELSY);
이렇게 해서 프린터의 출력의 가로 세로를 안다고 나오는거 같은데 이다음에..여기에 어떤수를 나누거나 하면 좀더 정확한 싸이즈를 구할수 있을지 조언 부탁 드립니다.
그리고 Ptr->NewPage(); 로 해서 여러장 인쇄시.. 프리터출력시 문서 범위에서..
한장 또는 전체 출력 옵션 선택할려면 어떻게 해야 하는지 잘안되네요..
여러장 해놓으면...옵션상에서 전체 출력만 가능하네요...
|