Q&A

  • 액티브 컨트롤을 웹 페이지와 함께 프린트하고 싶습니다.
안녕하세요..



이번에 프로젝트 하다 보니 궁금한 점이 너무나 많습니다.



액티브 폼에서 컨트롤을 만들었는데 IE에서 웹 페이지의 다른 내용과 함께 프린트 해 보니 컨트롤만 비정상적으로 작게 출력되는 군요.

작성시 프린트 관련해선 설정해 준게 아무 것도 없습니다.



혹시 뭔가 따로 작업을 해 주어야 하는가요?



아니면 액티브 컨트롤은 일반적인 방법으로 프린트 하는 것이 불가능한가요?



경험 있으신 분의 답변 부탁합니다.

1  COMMENTS
  • Profile
    장준혁 2000.09.30 02:50
    장준혁 wrote:

    > 안녕하세요..

    >

    > 이번에 프로젝트 하다 보니 궁금한 점이 너무나 많습니다.

    >

    > 액티브 폼에서 컨트롤을 만들었는데 IE에서 웹 페이지의 다른 내용과 함께 프린트 해 보니 컨트롤만 비정상적으로 작게 출력되는 군요.

    > 작성시 프린트 관련해선 설정해 준게 아무 것도 없습니다.

    >

    > 혹시 뭔가 따로 작업을 해 주어야 하는가요?

    >

    > 아니면 액티브 컨트롤은 일반적인 방법으로 프린트 하는 것이 불가능한가요?

    >

    > 경험 있으신 분의 답변 부탁합니다.



    MSDN을 찾아보니 답이 있더군요.



    액티브 컨트롤을 웹브라우저에서 제대로 프린트하고 싶으면 해 줘야 할 게 있습니다.



    우선 IPersistStreamInit 쪽 메소드 중 Save와 Load를 구현해야 합니다. Save에선

    현재 컨트롤의 상태를 그대로 스트림으로 보내주고, Load에선 그 상태를 읽어들입니다.



    왜냐하면 프린트할 때 브라우저가 현재 화면을 찍는 것이 아니라 같은 페이지를 백그라운드로 안보이게 새로 띄운 다음 찍기 때문입니다. 이때 컨트롤도 새로 뜨게 되는데,

    새로 뜬 컨트롤의 상태를 앞서 화면에서 Save한 것으로 Load합니다.

    따라서 컨트롤의 스레드 모델도 Apartment가 되어야 합니다.



    또한가지, axctrl.pas의 IViewObject Draw 부분에서 Origin 잡고 MapMode 잡아주는

    부분을 뜯어 고쳐야 합니다. 델파이 원본에선 맵핑 모드를 MM_TEXT로 잡는데,

    이러면 컨트롤이 쪼그맣게 찍혀버리고 맙니다.



    이 부분은 아직 더 연구중입니다. 어쨌든 이 두가지를 알아야지 올바르게 컨트롤을

    프린트할 수 있습니다.





    • 황동수
    • 2000.08.09 04:17
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김일영
      2000.08.09 11:28
      어떤 내용인지 잘 알기 힘든 상황이지만... 일단 '가변적'하면 TList, TStringList, Dynamic array 이 셋...
    • 황동수
      2000.08.09 18:17
      김일영 wrote: > 어떤 내용인지 잘 알기 힘든 상황이지만... > 일단 '가변적'하면 TList, TStringList, D...
    • 김일영
      2000.08.09 19:05
      대충 의미만 전달되게 소스로 설명드리겠습니다. 문법적으로 완전한건 아니지만 쉽게 아실 수 있을 겁니...
    • 김일영
      2000.08.09 11:33
      굉장히 어려운걸 하시는군요... Design Time Package 제작 시 쓰이는 것으로서 Custom Property Editor를...
    • 장준혁
    • 2000.08.09 01:26
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 장준혁
      2000.09.30 02:50
      장준혁 wrote: > 안녕하세요.. > > 이번에 프로젝트 하다 보니 궁금한 점이 너무나 많습니다. > > ...
    • 최용일
      2000.08.09 06:47
      안녕하세요. 최용일입니다. 예전에 제가 윈도우 프로시져 바꾸는 방법을 알려드렸잖아요. 폼에서 탭키를...
    • 어린왕자
      2000.08.09 21:50
      > procedure TForm1.FormCreate(Sender: TObject); > begin > OldWndMethod := ListBox1.WindowProc;...
    • 장준혁
      2000.08.09 00:38
      제가 질문하고 제가 답하는 군요.. 아래 예로 든 자바 스크립트에서 MyGrid.ColumnName[1] = 'abc';...
    • 김정식
    • 2000.08.09 00:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 손님
      2000.08.11 02:02
      그것은 말이져... transaction을 타지 않아서그래여... 즉 transaction이 시작되지도 않았는데... tr...
    • 최석기
      2000.08.09 01:23
    • 사발우성
      2000.08.09 01:33
    • 최석기
      2000.08.09 02:49
    • 사발우성
      2000.08.09 03:12
    • 최석기
      2000.08.09 04:16
    • 사발우성
      2000.08.09 06:01
    • 임형호
      2000.08.09 00:32
      김만성 wrote: > > 델 가족 여러분 안녕하세요... > 짐 막 사이즈에 관련된 정보를 찾아봤는데요... ...
    • 김명성
      2000.08.10 08:05
      ShowModal이 안되었던것이 아니었고, 제가 변수를 잘못사용하여서 일어났던 에러였습 니다. 이때까지의 에...
    • 김일영
      2000.08.09 11:37
      그것 참... 실은 자유게시판에 글을 올리시는 유솔로몬님 또한 이런 문제를 언급하시고 해결책도 쓰셨던...
    • 왕초보
      2000.08.09 02:38
      김명성 wrote: > 무려 세번째 질문을 올립니다. 제발 보시구요 답변을 부탁드립니다. > 이런 비슷한 질문...
    • 강인규
      2000.08.09 01:26
      그폼만 SDI로 하심 안되나여? 왜 에러가 나는데 MDI를 고집하시는지 알 수가 없군요. 이유가 있으시다면....
    • 타락천사
      2000.08.09 00:31
      안녕하세여..타락임다.. MDI child를 모달폼으로 나타낼수 없습니다.. 글구 SetWindowPos도 안되여.....
    • 김명성
      2000.08.09 04:23
      타락천사 wrote: > 안녕하세여..타락임다.. > > MDI child를 모달폼으로 나타낼수 없습니다.. > > ...
    • 박원관
    • 2000.08.08 23:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 황광일
      2000.08.09 09:35
      http://myhome.shinbiro.com/~opencomm 으로 놀러오십시오... 원관님이 원하시는 게 다 있습니다. 엄...
    • hugehead
      2000.08.09 00:01
      그건 이미 잘 알려진 Delphi 버그 입니다. 본 자료실, Q/A, 또는 borland.public.delphi.activex.control...
    • 최용일
      2000.08.08 23:10
      http://www.delphi.co.kr/cgi-bin/cwb/CrazyWWWBoard.cgi?mode=read&num=17522&db=newqa&fval=깨&backdepth...
    • 장준혁
      2000.08.08 23:31
      답변 정말루 고맙습니다.. 역시 델파이의 파워는 사용자들의 힘이 아닐까 합니다. ^^ 그런데 몇가지 궁금...
    • 최석기
      2000.08.09 01:21
      장준혁 wrote: > 답변 정말루 고맙습니다.. 역시 델파이의 파워는 사용자들의 힘이 아닐까 합니다. ^^ > ...
    • 장준혁
      2000.08.09 02:09
      덕분에 프로젝트를 차질없게 진행할 수 있게 되었습니다. 답변 정말 고맙습니다.
    • 이정희
    • 2000.08.08 22:58
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 내가 찾아볼께
      2000.09.02 09:19
      이정희 wrote: > > 안녕하세요. > 저는 회사에서 Delphi5와 DB2를 사용하고 있습니다. > ACE400이라는...
    • 담배연기
      2000.08.09 01:16
      이정희 wrote: > > 안녕하세요. > 저는 회사에서 Delphi5와 DB2를 사용하고 있습니다. > ACE400이라는...
    • 이정희
      2000.08.09 02:27
      답변 감사드립니다. 그럼, ACE400에 대해서 말씀드리면, Middle ware입니다. 프랑스에서 만든 S/W인데...
    • 담배연기
      2000.08.09 03:52
      답변 감사합니다. 그런데 델파이 400에서 UPRADE된 제품이 델파이 5가 아닙니다. 델파이 400은 AS/400 ...
    • 초짜
    • 2000.08.08 22:27
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.08.08 22:35
      http://www.delphi.co.kr/cgi-bin/cwb/CrazyWWWBoard.cgi?mode=read&num=16558&db=newqa&fval=dsgnintf&bac...
    • 초짜
      2000.08.08 22:39
      최용일 wrote: > http://www.delphi.co.kr/cgi-bin/cwb/CrazyWWWBoard.cgi?mode=read&num=16558&db=newqa&...
    • Mr.Q
    • 2000.08.08 21:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.08.08 21:41
      안녕하세요. 최용일입니다. B와 C를 or 연산해서 A에 넣으란 말인데요... 논리/비트연산은 수학시간에 ...