TPrinter를 가지고 리포트를 만들려고 합니다.
임페리얼 님인가 친절하시게도 자세한 설명을 해 주신 글을 찾아 테스트 진행했습니다.
요약하자면 모니터와 프린터간의 해상도 차이로 인해서 GetDeviceCaps 함수를 사용해서 매칭하라는 말씀이셨습니다.
printer1->Canvas->MoveTo(1*GetXFactor(),1*GetYFactor());
printer1->Canvas->LineTo(1*GetXFactor(),1125*GetYFactor());
printer1->Canvas->MoveTo(1*GetXFactor(),1*GetYFactor());
printer1->Canvas->LineTo(900*GetXFactor(),1*GetYFactor());
해서 위와 같이 찍어봤더니 대충 a4용지 끝에 선이 좌에서 우로 그리고 상에서 아래로 그어집니다.
그럼 아래와 같이 질문 드립니다.
1. 위의 소스와 같이 a4용지의 x좌표 끝이 900 y좌표 끝이 1125 인듯 한데 대충이요 그런데 이게 다른 프린터로 가면 틀려지나요?
2. 그렇다면 과연 프린터 상관없이 x,y 끝 좌표의 절대값이 존재하나요? 존재한다면 얼마인가요?
3. a4상단 부분에 제목글을 작성할 예정인데 제목이 여러개고 정확히 종이 상단 중앙에 정렬해야 하는데 쉬운방법 있나요?
4. MoveTo, LineTo 함수로 표를 만들건데 표 헤더에 한글처럼 음영을 넣을 수 있나요? 노란색 또는 회색 그위에 글
5. 위처럼 해서 a4용지 끝단에 사각형을 만들면 프린트할때마다 사각형이 용지에 일직선으로 찍히지 않는데
그건 용지를 넣을때 반듯하게 넣지 않아서 그렇죠?
그럼 답글 간절히 기다리겠습니다. ^^
수고하세요
|