TImageEnMIO.PrintImage & PrintImagesEx will start a second print job...
If you use a different way to start a print job (not using the standard TPrinter implementation of Delphi) TImageEnMIO.PrintImage & PrintImagesEx will use TPrinter to start a second print job. Even when you give the function a Printer Canvas as parameter.
While the TImageEnIO.PrintImage does not if you give it a Printer Canvas as parameter.
I think the check if a print job is running should only be done if PrtCanvas is nil like in TImageEnIO.PrintImageEx.
Here the current code, we are using ImageEn Build 12.0.0.30.7370 but I also checked in Build 13.0.0.14.5260.
TImageEnIO.PrintImageEx
if ( PrtCanvas = nil ) and not Printer.Printing then
begin
callEndDoc := True;
Printer.BeginDoc();
if Printer.Title = '' then
Printer.Title := IEExtractFileNameWithoutExt( Application.ExeName );
end;
TImageEnMIO.PrintImage
if not Printer.Printing then
begin
callEndDoc := True;
Printer.BeginDoc();
if Printer.Title = '' then
Printer.Title := IEExtractFileNameWithoutExt( Application.ExeName );
end;
TImageEnMIO.PrintImagesEx
if ( bPreview = False ) and not Printer.Printing then
begin
callEndDoc := True;
Printer.BeginDoc();
if Printer.Title = '' then
Printer.Title := IEExtractFileNameWithoutExt( Application.ExeName );
end;