마음의 안정을 찾기 위하여 - Delphi를 이용한 미리보기 구현
2058465
91
209
관리자새글쓰기
태그위치로그방명록
별일없다의 생각
dawnsea's me2day/2010
색상(RGB)코드 추출기(Color...
Connection Generator/2010
최승호PD, '4대강 거짓말 검...
Green Monkey**/2010
Syng의 생각
syng's me2DAY/2010
천재 작곡가 윤일상이 기획,...
엘븐킹's Digital Factory/2010
Delphi를 이용한 미리보기 구현
Delphi/Print(인쇄) | 2008/12/09 16:11

간단한 출력물을 만들어 내보내고자 할때 (Ex : 세금계산서) 해당 인쇄물이 프린터를 통해 출력되기전에
정상적인 내용을 담고 있는지 화면으로 확인해보고 싶을때가 있다.

리포팅 툴을 이용하여 처리할 경우에는 간단하게 처리할 순 있지만, 순수 노가다를 이용한 코딩시에는 애로사항이 기 마련...

TPrinter를 이용하여 프린터에 출력을 내보내는 과정에서 Canvas에 그려주는 부분만을 TPaintBox의 Canvas에 인쇄하도록 하였더니, 실제로 화면에 보이는 내용과 인쇄되는 내용이 전혀 다른게 아닌가?

아래는 인쇄시 테스트한 코드이다.

Procedure Draw_Test(Canvas : TCanvas);
Begin
  With Canvas Do Begin
    Rectangle(10, 0, 400, 400);
    Font.Name := '굴림체';
    Font.Height := 20;
    TextOut( 50, 50 , 'Delphi델파이' );
    Font.Size := 40;
    TextOut(50, 200 , 'Delphi');
  End;
End;

Procedure Do_Print;
Begin
  // 미리보기
  Draw_Test(PaintBox.Canvas);

  // 프린터 인쇄
  Printer.BeginDoc;
  Draw_Test(Printer.Canvas);
  Printer.EndDoc;
End;


여러가지 자료를 찾아보니, 맵핑 모드니 뭐니 여러가지 말이 많다.
이것저것 신경써야될것도 많고.... 너무 복잡하지 아니한가........................ 그러던 와중에 찾은 한가지 방법!

메타파일을 만들어 해당 메타파일을 원하는 Canvas에 그려주면 되는것! 생성된 메타파일을 TPaintBox에 그려주면 미리보기가 되고, TPrinter에 그려주면 인쇄가 되는....

눈에 보이는 그대로 원하는 출력물을 얻어보자! What You See! What You Get! (WYSWYG)


Procedure Draw_Test(Canvas : TCanvas);
Var
  MyMetafile : TMetafile;
Begin
  MyMetafile := TMetafile.Create;
  Try
    With TMetafileCanvas.Create(MyMetafile, 0) Do Begin
      Try
        Brush.Style := bsClear;
        Rectangle(10, 0, 400, 400);
      
        Font.Name   := '굴림체';
        Font.Height := 20;
        TextOut( 50, 50 , 'Delphi델파이' );
        Font.Size   := 40;
        TextOut(50, 200 , 'Delphi');      
      Finally
        Free;                      
      End;
    End;
    Canvas.Draw(0,0,MyMetafile); 
  Finally
    MyMetafile.Free;
  End;
End;

Procedure Do_Print;
Begin
  // 미리보기
  Draw_Test(PaintBox.Canvas);

  // 프린터 인쇄
  Printer.BeginDoc;
  Draw_Test(Printer.Canvas);
  Printer.EndDoc;
End;


2008/12/09 16:11 2008/12/09 16:11
Article tag list Go to top
View Comment 3
Trackback URL :: 이 글에는 트랙백을 보낼 수 없습니다
From. 구차니 2008/12/09 18:28
답글달기삭제
Delphi는 한번도 안써봤는데 웬지 손이 안가더라구요 ㅎㅎ
저는 C언어만 다루는 편이라 ㅠ.ㅠ
From. 그리움(복분자주) 2008/12/10 11:06
삭제
C...

저는 회사 업무상 Delphi를 사용하고, C는 심심풀이로 -,.-;
From. 델짱^^ 2010/12/23 13:36
답글달기삭제
저도 업무상 델파이만 사용합니다.
^^
PREV : [1] : NEXT
 
 
 
 
: [1] ... [426][427][428][429][430][431][432][433][434] ... [862] :
«   2022/10   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
전체 (862)
출판 준비 (0)
My-Pro... (41)
사는 ... (492)
블로그... (22)
My Lib... (32)
게임 ... (23)
개발관... (3)
Smart ... (1)
Delphi (75)
C Builder (0)
Object... (0)
VC, MF... (9)
Window... (1)
Open API (3)
Visual... (0)
Java, JSP (2)
ASP.NET (0)
PHP (4)
Database (12)
리눅스 (28)
Windows (23)
Device... (1)
Embedded (1)
게임 ... (0)
Web Se... (2)
Web, S... (19)
잡다한... (5)
프로젝트 (0)
Personal (0)
대통령... (9)
Link (2)