问题如上.

解决方案 »

  1.   

    将打印机的打印方向设置为横向就行了procedure TForm1.Button1Click(Sender: TObject);
    var
    //Printer.SetPrinter();
      ADevice, ADriver, APort: String;
      ADeviceMode: THandle;
      DevMode: PDeviceMode;
    begin
    //set page 方向
     if ADeviceMode = 0 then
     begin
       Printer.PrinterIndex := Printer.PrinterIndex;
       Printer.GetPrinter(PChar(ADevice), PChar(ADriver), PChar(APort), ADeviceMode);
     end; if ADeviceMode <> 0 then
     begin
       DevMode := GlobalLock(ADeviceMode);
       try
         //打印方向
         DevMode^.dmFields := DevMode^.dmFields or DM_ORIENTATION;
         DevMode^.dmOrientation := DMORIENT_LANDSCAPE;
    //   DMORIENT_PORTRAIT://横向
    //   DMORIENT_LANDSCAPE: //纵向   finally
         GlobalUnlock(ADeviceMode);
       end;
     end
     else
       raise Exception.Create('不能设置打印属性');  PrintDBGridEh1.Preview;
    end;
      

  2.   

    楼上的楼上的办法有点复杂。在EhLib的帮助中,专门对纸张横纵向的设置做了代码示例,代码我记不清了,您查看一下帮助,我记得代码很短。