Q&A

  • 프린트용지 크기 변경후 A4 보다 큰부분은 인쇄가 되지 않는군요..
아래와 같이 인쇄 용지의 크기를 사용자 정의로 크게 해서 canvas 에 각종 data 를 쏟아 부었는데, 정작 출력은 A4 한장 분의 좌측상단 자료만 나오네요.

어떻게 해야 나머지들도 전부 인쇄가 가능한지 고수님들의 도움 부탁드립니다..

var
  Device : array[0 .. 255] of char;
  Driver : array[0 .. 255] of char;
  Port : array[0 .. 32] of char;
  hDMode : THandle;
  pDMode : PDevMode;
begin
    printer.GetPrinter(Device, Driver, Port, hDMode);
    if hDMode = 0 then Exit;
    pDMode := GlobalLock(hDMode);
    if pDMode = nil then Exit;
    pDMode^.dmFields := (pDMode^.dmFields) or (DM_PAPERLENGTH) or (DM_PAPERWIDTH);
    pDMode^.dmPaperSize := DMPAPER_USER;  //사용자 정의 용지
    pDMode^.dmPaperLength := 11450;  //사용자정의 용지 길이
    pDMode^.dmPaperWidth := 22100;  // 넓이
    GlobalUnlock(hDMode);


    Printer.PrinterIndex := -1;
    Printer.Orientation :=  poLandscape;
    Printer.BeginDoc;
  
    ...  canvas 에 결과물 찍기..

       with Printer.canvas do begin
              MoveTo(.....
              LineTo(....
              TextOut(.....
       end;



    Printer.EndDoc;
0  COMMENTS