在用delphi xe10构建的服务中,很难生成PDF。 VCL应用程序中完全相同的代码可以正常工作。
下面的行返回以下错误消息:
QRPQuickrep.PrinterSettings.PrinterIndex:= Printers.Printer.Printerindex;
当前没有选择默认打印机
无论是否设置了默认打印机,都会显示错误。我已经尝试过从Printers.Printer.Printerindex切换到Printer.Printerindex,但是会发生相同的错误。
但是,以下行正确返回我已安装的打印机数量。 Printer.Printers.Count
运行服务时,似乎无法访问printers.pas,或者无法正确识别它。我的目标是将服务内的快速报告导出为PDF,并导出到服务运行所在位置的本地目录。
但是,当我在运行时创建报表实例时,错误发生在导出例程之前。
我尝试过的事情:
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 ));