如何定制打印报表时的打印行数?比如说有某些单据是要在A4幅面上打印两份,每份上只打印10行.应如何定制?

解决方案 »

  1.   

    uses WinSpool, Printers, Windows; function CustomAddForm (const Name:String; const Width, Height:Double; const PrinterName:String):Boolean; 
    var 
      FormInfo1: TFormInfo1; 
      pFormInfo: PFormInfo1; 
      hPrinter : THandle; 
    begin 
      Result := False; 
      if OpenPrinter(PChar(PrinterName),hPrinter,NIL) then 
        begin 
        with FormInfo1 do 
          begin 
          Flags := 0; 
          pName := PAnsiChar(Name); 
          Size.cx := Trunc(Width*1000); 
          Size.cy := Trunc(Height*1000); 
          ImageableArea.Left := 0; 
          ImageableArea.Top := 0; 
          ImageableArea.Bottom := Size.cy; 
          ImageableArea.Right := Size.cx; 
          end; 
        pFormInfo := @FormInfo1; 
        Result := AddForm(hPrinter,1,pFormInfo); 
        ClosePrinter(hPrinter); 
        end; 
    end;