Delphi Windows服务-“当前未选择默认打印机”

时间:2019-07-04 18:57:21

标签: delphi service printing quickreports

在用delphi xe10构建的服务中,很难生成PDF。 VCL应用程序中完全相同的代码可以正常工作。

下面的行返回以下错误消息:

QRPQuickrep.PrinterSettings.PrinterIndex:= Printers.Printer.Printerindex;

当前没有选择默认打印机

无论是否设置了默认打印机,都会显示错误。我已经尝试过从Printers.Printer.Printerindex切换到Printer.Printerindex,但是会发生相同的错误。

但是,以下行正确返回我已安装的打印机数量。 Printer.Printers.Count

运行服务时,似乎无法访问printers.pas,或者无法正确识别它。我的目标是将服务内的快速报告导出为PDF,并导出到服务运行所在位置的本地目录。

但是,当我在运行时创建报表实例时,错误发生在导出例程之前。

我尝试过的事情:

  1. 以管理员权限运行服务;
  2. 选中“允许服务与桌面交互”选项;
  3. 在工作站上安装物理打印机;
  4. 选中该复选框:“让窗口确定默认打印机”。
  5. 使用与我登录的Windows帐户相同的服务运行服务     VCL应用程序可以使用的帐户。
    try
    //self = TForm
      rel := TQRPQuickrep.Create(self);
      rel.Parent := Self;

      //here I get an exception message
      rel.PrinterSettings.PrinterIndex := Printers.Printer.Printerindex;


    //export routine - nothing happens, because the exception message was shooted
    rel.ExportToFilter(TQRPDFDocumentFilter.Create( nm_arq ));

0 个答案:

没有答案