Q&A

  • 프린트할 때, 상하 여백???


TRichEdit의 내용을 출력하려고 Print 메쏘드를 사용했는데...



페이지의 상하 여백을 주는 방법을 잘 모르겠네요...



구체적인 답변 좀...^^;;



1  COMMENTS
  • Profile
    각시탈 2000.05.20 19:06
    도움이 되셨으면 합니다.

    통신 돌아다니다가 비슷한것이 있기에.

    올려 봅니다.



    procedure DrawPage( Canvas: TCanvas );

    begin

    Canvas.Rectangle( 0, 0, 1000, -200 );

    end;



    function SetOrgPoint( APoint: TPoint ): TSize;

    var

    Org: TPoint;

    begin

    Escape( Printer.Canvas.Handle, GETPRINTINGOFFSET, 0, nil, @Org );

    SetWindowOrgEx( Printer.Handle, Org.X-APoint.X, APoint.Y-Org.Y, @Result );

    end;



    procedure TMain_Form.Button10Click(Sender: TObject);

    var

    OldMap: Integer;

    OldOrg: TSize;

    begin

    Printer.BeginDoc;

    OldMap := SetMapMode( Printer.Handle, MM_LOMETRIC );

    OldOrg := SetOrgPoint( Point( 200, 200 ) );



    try

    DrawPage( Printer.Canvas );

    finally

    SetOrgPoint( Point( OldOrg.cx, OldOrg.cy ) );

    SetMapMode( Printer.Handle, OldMap );

    Printer.EndDoc;

    end;

    end;





    프린터의 여백을 구해주는 API는 없습니다. 그래서 Escape를 직접써서 프린터에서 직접 여백을 구했습니다. Escape로 얻어 오는 정보는 그 자체가 표준화가 되어있는 부분이 있고 표준화되지 않고 특정 프린터에만 적용이되는 부분이 있습니다. 프린터의 여백은

    GETPRINTINGOFFSET를 이용하면 될수 있도록 표준화가 되어있습니다.



    ** hitel에서 퍼옴.. **



    즐팅하세요///