QuickReport1.Page.PaperSize :='A4';//纸张大小
  QuickReport1.Page.Orientation := poPortrait;//打印方向

解决方案 »

  1.   

    uses QRPrntr, Printers;procedure TForm1.Button1Click(Sender: TObject);
    begin
      QuickRep1.Page.PaperSize := A3; //A5, A6 ....
      QuickRep1.Page.Orientation := poPortrait; //poLandscape
    end;
      

  2.   

    在uses先引用Printers单元
    printer.Orientation:=polandscape;  //横向
    printer.Orientation:=poportrait;  //纵向
      

  3.   

    printer.Orientation:=polandscape;
    printer.Orientation:=poportrait;
      

  4.   

    如果你要灵活控制的话,至于要弄个选择框给用户吧?否则你怎么让用户选择?如果你程序里面能够确定何时用什么方式打印的话,就参照上面,否则打印的时候你必须showmodel一个自己写的简单窗口给用户选择,但是这样就不如开一个设置窗口了。
      

  5.   

    谢谢各位,我用的不是QuickRep控件,是自己安装的报表控件,我要实现默认是A3纸,且横打,用户不用修改。superljj,纸张大小该如何设置?
      

  6.   

    Uses Printer;
    .........
    procedure TForm1.Button1Click(Sender: TObject);
    var
      ADevice, ADriver, APort: array[0..255] of Char;
      DeviceHandle: THandle;
      DevMode: PDeviceMode;
    begin
        //初始化打印机
        Printer.GetPrinter(ADevice, ADriver, APort, DeviceHandle);
        if DeviceHandle = 0 then
        begin
          Printer.PrinterIndex := Printer.PrinterIndex;
          Printer.GetPrinter(ADevice, ADriver, APort, DeviceHandle);
        end;
        if DeviceHandle = 0 then
          Raise Exception.Create('不能初始化打印机!')
        else
          DevMode := GlobalLock(DeviceHandle);
        if DeviceHandle <> 0 then
        begin
          with DevMode^ do
          begin
            dmFields := dmFields or DM_ORIENTATION;
            //在下面这里设置打印方向
            dmOrientation := DMORIENT_LANDSCAPE; //DMORIENT_PORTRAIT
            dmPaperSize := DMPAPER_A3;   
            Printer.SetPrinter(ADevice, ADriver, APort, DeviceHandle);
            GlobalUnLock(DeviceHandle);
          end;
        end;    PrinterSetupDialog1.Execute; //验证一下设置是否成功了
    end;
      

  7.   

    引用QRPrntr单元:
    //把所有的纸张类型放到一combobox中
    procedure TForm1.FormCreate(Sender: TObject);
    var
      PS : TQRPaperSize;
    begin
      for PS:=Default to Custom do
        ComboBox1.Items.Add(QRPaperName(PS));
    end;//设定纸张大小
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: TQRPaperSize;
    begin
      for I:= Default to Custom do
        if QRPaperName(I) = ComboBox1.Text then  //YourSpecifiedPageSize 是从combobox取的text
        begin
          QuickRep1.QRPrinter := TQRPrinter.Create;
          QuickRep1.QRPrinter.PrinterIndex := -1;
          QuickRep1.Page.PaperSize := I;
          break;
        end;
    end;设置横向与竖向打印
    //poPortrait在Printers单元  AReport.Page.Orientation := poPortrait;  AReport.Page.Orientation := poLandScape;请看:
    http://www.csdn.net/expert/topic/808/808662.xml?temp=.1566431
      

  8.   

    谢谢wzrlover(wzrlover) ,已经搞定