Q&A

  • 프린터 출력관리 문제 입니다. 도와줘요
안녕 하세요.
프린터 출력 관련 문제입니다.
제가 임의로 그어 놓은 표에 맞게 DB의 데이타를
출력 하고 싶습니다.
즉, 7*5 의 표가 있다고 가정했을때, (3,5)에 '1'이라는
숫자가 프린트 되게 하고 싶은데, 무슨 방법이 없을까요?

1. 물론, 밀리 이던, 픽셀 이던 표에 대한 정보도 가지고 있어야
    할것이고,(A4, A3이던 종이와는 상관없이 혹은 A3 에서라도,
    표의 크기와 위치는 왼쪽윗부분이 될수도 있고, 오른쪽아랫부분이
    될 수 도 있습니다. 표의 위치에 따라 인쇄될 기준점은 변할 것이고,
    해당 위치에 데이타 삽입건 입니다.)

2. 그 정보에 맞게 원하는 칸안에 서로 다른 데이타를 프린트할수
    있게,  
1  COMMENTS
  • Profile
    한만교 2003.01.12 05:12
    FUNCTION Print_mmtoPixH(mm: real):Integer;
    BEGIN
       With Printer do
       Begin
         Hoehe:=GetDeviceCaps(Printer.Canvas.Handle,VERTSIZE);
         FaktorH:=Printer.PageHeight/Hoehe;
       end;
       Result :=Round(FaktorH*mm);
    END;

    FUNCTION Print_mmtoPixW(mm: real):Integer;
    BEGIN
       With Printer do
       Begin
         Breite:=GetDeviceCaps(Printer.Canvas.Handle,HORZSIZE);
         FaktorB:=Printer.PageWidth/Breite;
       end;
      Result:=Round(FaktorB*mm);
    END;


    위의 두 함수는 TPrinters.pas의 정보를 가지고 mm를 Pixel로 바꿔주는 함수입니다..
    이를 이용해서 TextOut을 이용하시면 원하시는 위치에 값을 찍을수 있구여.
    A4, A3에 대한 용지 정보는 printers.pas의 도움말 참조하시면 됩니다.
    마찬가지로 가로세로 정보역시...
    그럼 즐프하시길...