|
최원호 님이 쓰신 글 :
: 안녕하세요? 최원호 라고 합니다.
:
: Bitmap을 인쇄하는 부분을 코딩하고 있는데 좀 해결이 안되는 문제가 있어 질문을 드립니다.
:
: 인쇄는 되는데, 종이에 매우 작게 그림이 나오네요......
:
: 제가 인쇄한 그림은 800*1027 사이즈의 좀 큰 이미지인데 A4 용지에 레이져 프린터를 이용하여
: 출력하면 가로 약 3~4 Cm 정도밖에는 안됩니다.
:
: 사용한 방법은
:
: Printer()->Canvas->Draw(50,50, bitmap);
:
: 혹시 아시는 분 계시면 도움을 주시기 바랍니다.
임펠리테리입니다.
당연한 결과죠. 모니터와 프린터는 여러가지 특성이 다른데, 먼저 해상도, 즉 dpi가 다르고 또한 가로/세로 픽셀(도트) 수도 다릅니다. 만약 프린터 페이지의 가로 방향으로 그림을 꽉 채워서 그리고 싶다면, Printer()->PageWidth로부터 인쇄용지의 가로 픽셀수를 알아낸 다음, 찍을 그림의 가로 픽셀수와의 비율을 계산한 후 세로에 곱해서 원래 그림의 가로/세로 비율이 유지되도록 한 후 Draw()가 아니라 StretchDraw() 함수를 이용해서 찍어줘야 합니다.
그럼 참고하시길...
|