C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[75155] Re:TPrinter 사용하기 질문
[] 2842 읽음    2018-10-31 06:38
궁금이... 님이 쓰신 글 :
: 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용지 끝단에 사각형을 만들면 프린트할때마다 사각형이 용지에 일직선으로 찍히지 않는데
:     그건 용지를 넣을때 반듯하게 넣지 않아서 그렇죠?
:
: 그럼 답글 간절히 기다리겠습니다. ^^
: 수고하세요
:
:
:
:
:

1. 예 다른 프린터로 가면 달라질수 있습니다.
2.  프린터마다 달라지므로 존재하지 않는다고 생각하시는게 좋습니다.
3. 중앙정렬은 원하시는 용지의 영역을 구하신후 그 영역에 대하여 TextWidth를 사용하여 계산하시면 됩니다.
4. 음영이라는게 셀단위로 배경색을 지정하는 것을 말씀하시는 거면
    원하시는 셀에 대한 좌표를 구하시고 (간단한 계산에 의해 구할수 있음) FillRect나 Rectangle을 이용하여
    원하시는 색상으로 채우신후 그 위에 글씨를 그리시면 됩니다.
5. 제 경험상 MoveTo/LineTo, Rectangle등을 이용한 직선은 정상적으로 표시되었습니다.


+ -

관련 글 리스트
75147 TPrinter 사용하기 질문 궁금이... 3386 2018/10/24
75155     Re:TPrinter 사용하기 질문 2842 2018/10/31
75187         Re:Re:TPrinter 사용하기 질문 궁금이... 2780 2018/11/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.