我想实现设置打印份数的功能,按钮中的代码如下,但在fineprint中,看打印预览,显示的还是1页。我用其他软件,以及WORD试,只要设置了打印X份,fineprint中,都显示X页。
我的代码为何不对?
procedure TForm1.BtnChkPrnClick(Sender: TObject);
begin
SetCopies(3);
printer.BeginDoc;
printer.Canvas.TextOut(100,100,'测试');
printer.EndDoc;
end;//这个是设置打印份数的代码
procedure SetCopies(Copies: Integer);
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_Copies;
     DevMode^.dmCopies := Copies;
   finally
     GlobalUnlock(ADeviceMode);
   end;
 end
 else
   raise Exception.Create('Could not set printer copies');
end;
假设要在程序用代码设置 各种打印信息如
1、指定 打印输出的特定打印机(不一定是默认的)
2、纸张类型(用标准纸张时)
3、纸张大小(自定义时)
4、打印方向
5、打印份数我想请教,打印流程是如何的?
是不是:
1、进行各个设置
2、printer.BeginDoc;
3、写实际要打印的内容
4、printer.EndDoc;