Q&A

  • 텍스트 인쇄?
으아... 미치겠습니다.



인쇄를 하기 위해서



매핑모드 바꾼거 까지는 좋았습니다.



텍스트를 인쇄하기 전까지는 말이죠... -.-;;



그런데... 텍스트가 지 마음대로 인쇄가 되는 것입니다.



이 난관을 어떻게 극복해야 할까요?



알려 주세용...



저는 델파이의 Printer객체를 사용해서 인쇄를 하려 합니다.



이 질문을 윈도우API로 분류해도 되는지 몰겠네요...



그럼...





- 글을 읽어 주셔서 감사합니다.

4  COMMENTS
  • Profile
    남윤혁 1999.04.16 02:34
    -.-;; 무슨말인지 잘모르겠네요...



    다시 정리해서 올립니다.



    아래의 함수는 그리기 전용함수입니다.

    이곳에서 모든것을 그리죠...



    procedure DrawContent( c: TCanvas );

    begin

    with c do

    begin

    Rectangle( 150, 50, 250, 400 );

    MoveTo( 100, 100 );

    LineTo( 300, 300 );

    Font.Size:= 10;

    TextOut( 200, 200, '테스트' );

    Font.Size:= 20;

    TextOut( 200, 400, '테스트' );

    end;

    end;



    미리보기 버튼을 누르면 다음과 같이 화면에 나옵니다.



    procedure TfrmPrinter04.btnDrawClick(Sender: TObject);

    var

    sWin, sView: TSize;

    begin

    SetMapMode( imgArea.Canvas.Handle, MM_ISOTROPIC );

    SetWindowExtEx( imgArea.Canvas.Handle, 300, 300, @sWin );

    SetViewportExtEx( imgArea.Canvas.Handle, 300, 300, @sWin );



    DrawContent(imgArea.Canvas);

    end;



    여기서 imgArea는 TImage컴포넌트죠...



    그리고 인쇄버튼을 누르면



    procedure TfrmPreview.btnPrintingClick(Sender: TObject);

    var

    XPI, YPI: Integer;

    sWin, sView: Size;

    begin

    if prtDlg.Execute then

    begin

    Printer.BeginDoc;



    XPI:= GetDeviceCaps( Printer.Canvas.Handle, LOGPIXELSX );

    YPI:= GetDeviceCaps( Printer.Canvas.Handle, LOGPIXELSY );



    SetMapMode( Printer.Canvas.Handle, MM_ISOTROPIC );

    SetWindowExtEx( Printer.Canvas.Handle, XPI, YPI, @sWin );

    SetViewportExtEx( Printer.Canvas.Handle, XPI, YPI, @sWin );



    DrawContent( Printer.Canvas );

    Printer.EndDoc;

    end;

    end;



    요렇게 실행을 하죠...



    결과는 인쇄하면 폰트가 무자게 커진다는 말씀... -.-;



    이 문제를 어떻게 해결할까요?



    폰트에 어떤 조작을 가해야 하지 않나요?



    알려주세요...



    프리즈~





  • Profile
    남윤혁 1999.04.16 00:37
    다시 질문입니다.



    제가



    XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX );

    YPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSY );

    SetMapMode( Canvas.Handle, MM_ISOTROPIC );

    SetWindowExtEx( Canvas.Handle, 100, 100, @sWin );

    SetViewportExtEx( Canvas.Handle, XPI, YPI, @sWin );



    이 코드를 이용해서 인쇄를 했습니다.



    문제는 화면에 뿌렸을 때는 폰트의 사이즈에 따라



    화면의 비율에 따라 자연스럽게 나오지만



    인쇄로 들어가면 비율에 맞지 않는 이미지가



    나온다는 것이죠...



    이 문제를 해결하려면 어떻게 해야 할까요?



    T.T



    무진장 중요한 문제랍니다.



    그럼.. 고수님들 부탁드립니다.





  • Profile
    이정욱 1999.04.16 01:06
    화면 출력 후



    XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX);

    YPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSY);



    로 다시 계산 하신후 출력해 보세요.





    남윤혁 wrote:

    > 다시 질문입니다.

    >

    > 제가

    >

    > XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX );

    > YPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSY );

    > SetMapMode( Canvas.Handle, MM_ISOTROPIC );

    > SetWindowExtEx( Canvas.Handle, 100, 100, @sWin );

    > SetViewportExtEx( Canvas.Handle, XPI, YPI, @sWin );

    >

    > 이 코드를 이용해서 인쇄를 했습니다.

    >

    > 문제는 화면에 뿌렸을 때는 폰트의 사이즈에 따라

    >

    > 화면의 비율에 따라 자연스럽게 나오지만

    >

    > 인쇄로 들어가면 비율에 맞지 않는 이미지가

    >

    > 나온다는 것이죠...

    >

    > 이 문제를 해결하려면 어떻게 해야 할까요?

    >

    > T.T

    >

    > 무진장 중요한 문제랍니다.

    >

    > 그럼.. 고수님들 부탁드립니다.

    >

    >





  • Profile
    안치봉 1999.04.15 23:28
    남윤혁 wrote:

    > 으아... 미치겠습니다.

    >

    > 인쇄를 하기 위해서

    >

    > 매핑모드 바꾼거 까지는 좋았습니다.

    >

    > 텍스트를 인쇄하기 전까지는 말이죠... -.-;;

    >

    > 그런데... 텍스트가 지 마음대로 인쇄가 되는 것입니다.

    >

    > 이 난관을 어떻게 극복해야 할까요?

    >

    > 알려 주세용...

    >

    > 저는 델파이의 Printer객체를 사용해서 인쇄를 하려 합니다.

    >

    > 이 질문을 윈도우API로 분류해도 되는지 몰겠네요...

    >

    > 그럼...

    >

    >

    > - 글을 읽어 주셔서 감사합니다.



    안녕하세요!.



    질문의 범위가 너무 광범위 합니다. 질문을 하실때는 되도록 이면



    이런 이런 코드가 있는데 이런 부분에서 문제가 생기더라 식으로 작성 해주시면



    감사하겠습니다.





    • 안창주
    • 1999.06.23 20:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.06.23 21:02
      안창주 께서 말씀하시기를... > 저는 델파이 책을 처음보는 초보자입니다. > 1데이타베이스에서Alias라는...
    • 최석기
      1999.06.23 20:25
      이종진 께서 말씀하시기를... > DBGrid에서 text값을 다른값으로 바꿔주는 방법을 알고 싶습니다. > ...
    • VMNT
    • 1999.06.23 15:12
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 이슬
      1999.04.15 03:34
      1. ParamByName과 FieldByName의 차이점이 무엇인지요? 2. 폼에 성별(남,여:radiobutton) 체크가 있는데...
    • 김영해
      1999.04.17 08:00
      이슬 wrote: > 1. ParamByName과 FieldByName의 차이점이 무엇인지요? > > 2. 폼에 성별(남,여:radiobu...
    • 신호성
      1999.04.16 01:36
      > 2. 폼에 성별(남,여:radiobutton) 체크가 있는데, DB는 Alpha로 2자리 만들었습니다. > 근데, DBGrid에...
    • 박종모
      1999.04.15 04:44
      이슬 wrote: > 1. ParamByName과 FieldByName의 차이점이 무엇인지요? > > 2. 폼에 성별(남,여:radiobu...
    • 글쎄요
      1999.04.15 05:41
      추가로 답변합니다. 2번째 건데 답변이 잘 못된 것 같아요. 가장 좋은 방법은 DBGRID 대신에 STRINGGRID...
    • 이용민
    • 1999.06.23 12:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하남수
      1999.06.23 19:46
      이용민 께서 말씀하시기를... > 안녕하십니까 ? (주) 천의무봉의 이용민입니다. > 작업하다 간간히 의문...
    • 정남용
    • 1999.04.16 01:29
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김정선
      1999.04.23 00:51
      저두 같은 문제로 올렸는데 고맙게도 web@ns.nilex.co.kr라는 분이 메일을 보내왔더라구요.. Autoexec.bat...
    • 이정욱
      1999.04.17 02:26
      저도 역시 이런 문제 때문에 고생을 한적이 있었습니다. 전 엑세스 DB를 사용했을때 문제였죠. 그래서 결...
    • 김정선
      1999.04.16 22:56
      저두 같은 문제가 있었어요.. 아시는 분 꼭좀 가르쳐 주세요 전 델파이4.0 오라클 8.0.5버젼을 가지고 ...
    • francis
    • 1999.06.23 12:22
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 아무게
      1999.06.23 19:58
      이용민 께서 말씀하시기를... > 다음과 같은 의문을 정리해 보겠습니다. > > 1. 그렇다면 참조가 ...
    • 이용민
      1999.06.24 11:23
      (주) 천의무봉의 이용민입니다. 선생의 말씀 고맙습니다. 그런데 깨끗한 정리는 안되는 군요. 자질을 말...
    • 이정욱
      1999.04.16 02:17
      아무래도 케이블을 그냥 두갈래로 뽑으신것 같군요. 그렇게 하면 아마도 제데로 안될것 같네요... 그것보...
    • 화랑
      1999.04.16 03:06
      답변 감사합니다.. 문제는 제가 그 서버를 건드릴수가 없습니다. 지금 현재 나와있는 것은 프린터로 가...
    • 이정욱
      1999.04.16 05:08
      프린터포트를 제어하는것은 문제가 없습니다. 그것을 지원하는 컴포넌트를 본적이 있는데.... 아마도 찾아...
    • 화랑
      1999.04.17 18:11
      매번 감사합니다.. 저기 한가지만 더 하고 싶은데.. 프린트는 앱슨을 쓰거든요.. 혹시 서로 전달되는 ...
    • 강민주
    • 1999.06.23 09:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박흥태
      1999.06.25 03:38
      강민주 께서 말씀하시기를... > 안녕하세요.^^; > 외상장부처리를 위해 외상테이블과 수금 테이블로 > 2...
    • 남윤혁
    • 1999.04.15 22:13
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 남윤혁
      1999.04.16 02:34
      -.-;; 무슨말인지 잘모르겠네요... 다시 정리해서 올립니다. 아래의 함수는 그리기 전용함수입니다. ...
    • 남윤혁
      1999.04.16 00:37
      다시 질문입니다. 제가 XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX ); YPI:= GetDeviceCaps( ...
    • 이정욱
      1999.04.16 01:06
      화면 출력 후 XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX); YPI := GetDeviceCaps(Printe...
    • 안치봉
      1999.04.15 23:28
      남윤혁 wrote: > 으아... 미치겠습니다. > > 인쇄를 하기 위해서 > > 매핑모드 바꾼거 까지는 좋았...
    • 박성훈
    • 1999.06.23 05:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이용민
      1999.06.23 12:56
      질문에 대한 답은 아니지만 얼핏보이기에... 선생이 쓰시는 이코드는 다음과 같이 간단히 할 수 있거든...
    • 고부성
    • 1999.04.16 00:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.16 01:04
      음.. 두가지 가능성이 있습니다. 먼저 첫째, Path가 잘못되어있을 경우이죠. 실제로 C:sample.txt 에 저...
    • 이현옥
    • 1999.06.23 05:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      1999.06.23 08:22
      이현옥 께서 말씀하시기를... > 급하게 도사님들의 처방을 기다립니다. > > 프로그램을 실행시키면 > ...
    • 이정석
    • 1999.04.16 00:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.16 00:56
      이정석 wrote: > 안녕하십니까? > ActvieX Form으로 웹에서 데이타베이스를 사용하는 프로그램을 > 만...
    • 류성호
      1999.06.23 05:13
      변상준 께서 말씀하시기를... > 델파이4 프로페셔널 버전에서 오라클 7.3.2 연결을 하는데 준비 사항 및 ...
    • 남윤혁
    • 1999.04.15 22:13
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 황하강
      1999.06.23 04:00
      [질문]기본 프린터의 온라인 상태 체크... 델파이 2.0 에서 기본 프린터가 켜져있는지, 온라인 상태인지...
    • 남윤혁
      1999.04.16 02:34
      -.-;; 무슨말인지 잘모르겠네요... 다시 정리해서 올립니다. 아래의 함수는 그리기 전용함수입니다. ...
    • 최석기
      1999.06.23 17:28
      황하강 께서 말씀하시기를... > [질문]기본 프린터의 온라인 상태 체크... > 델파이 2.0 에서 기본 프...
    • 남윤혁
      1999.04.16 00:37
      다시 질문입니다. 제가 XPI:= GetDeviceCaps( Canvas.Handle, LOGPIXELSX ); YPI:= GetDeviceCaps( ...
    • 황하강
      1999.06.24 00:44
      최석기 께서 말씀하시기를... > 황하강 께서 말씀하시기를... > > [질문]기본 프린터의 온라인 상태 체크...
    • 이정욱
      1999.04.16 01:06
      화면 출력 후 XPI := GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSX); YPI := GetDeviceCaps(Printe...
    • 안치봉
      1999.04.15 23:28
      남윤혁 wrote: > 으아... 미치겠습니다. > > 인쇄를 하기 위해서 > > 매핑모드 바꾼거 까지는 좋았...
    • 김민오
    • 1999.06.23 02:49
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정석
      1999.04.16 00:10
      안녕하십니까? ActvieX Form으로 웹에서 데이타베이스를 사용하는 프로그램을 만들려고 합니다. 아시겠...
    • 신인재
      1999.04.16 00:56
      이정석 wrote: > 안녕하십니까? > ActvieX Form으로 웹에서 데이타베이스를 사용하는 프로그램을 > 만...
    • 고부성
    • 1999.04.16 00:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김민오
      1999.06.23 02:45
      네트웍으로 연결된 파라독스가 엑세스 바이올레이션과 파라이 일치하지 않느다고 에러가 나옵니다. sql문...
    • 이정욱
      1999.04.16 01:04
      음.. 두가지 가능성이 있습니다. 먼저 첫째, Path가 잘못되어있을 경우이죠. 실제로 C:sample.txt 에 저...