아래와 같이 인쇄 용지의 크기를 사용자 정의로 크게 해서 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;