线是你自己画上的, 横向 打印只要修改RvSystem的 systemprinter属性中有一个 orientation 设为 polandscape 我没有试过,因为没有打印机如果要用代码实现,则如下代码[注:这代码是一位好心的网友给的,得好好感觉他]: procedure TMainForm.SetOrient(); var ADevice, ADriver, APort: String; ADeviceMode: THandle; DevMode: PDeviceMode; begin SetLength(ADevice, 255); SetLength(ADriver, 255); SetLength(APort, 255); { If ADeviceMode is zero, a printer driver is not loaded. Therefore, setting PrinterIndex forces the driver to load. } 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^.dmCopies := DMORIENT_LANDSCAPE;//横向打印 DMORIENT_PORTRAIT//竖向打印 finally GlobalUnlock(ADeviceMode); end; end else raise Exception.Create('Could not set printer copies'); end;
procedure TForm1.RvSystem1BeforePrint(Sender: TObject); begin With Sender as TBaseReport do begin orientation:=polandscape; end; end;
横向 打印只要修改RvSystem的 systemprinter属性中有一个 orientation 设为 polandscape
我没有试过,因为没有打印机如果要用代码实现,则如下代码[注:这代码是一位好心的网友给的,得好好感觉他]:
procedure TMainForm.SetOrient();
var
ADevice, ADriver, APort: String;
ADeviceMode: THandle;
DevMode: PDeviceMode;
begin
SetLength(ADevice, 255);
SetLength(ADriver, 255);
SetLength(APort, 255); { If ADeviceMode is zero, a printer driver is not loaded. Therefore,
setting PrinterIndex forces the driver to load. }
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^.dmCopies := DMORIENT_LANDSCAPE;//横向打印
DMORIENT_PORTRAIT//竖向打印
finally
GlobalUnlock(ADeviceMode);
end;
end
else
raise Exception.Create('Could not set printer copies');
end;
begin
With Sender as TBaseReport do begin
orientation:=polandscape;
end;
end;