Ich habe den Fehler gefunden.
Für, die's interessiert. In der Datei JclPrint eine Zeile auskommentieren.
Delphi-Quellcode:
procedure TJclPrintSet.SetDeviceMode(Creating: Boolean);
var
Res: TPoint;
begin
Printer.GetPrinter(FDevice, FDriver, FPort, FHandle);
if FHandle = 0 then
begin
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(FDevice, FDriver, FPort, FHandle);
end;
if FHandle <> 0 then
begin
FDeviceMode := GlobalLock(FHandle);
FPrinter := Printer.PrinterIndex;
FDeviceMode^.dmFields := dm_Orientation or dm_PaperSize or
dm_PaperLength or dm_PaperWidth or
dm_Scale or dm_Copies or
dm_DefaultSource or dm_PrintQuality or
dm_Color or dm_Duplex or
dm_YResolution or dm_TTOption;
UpdateDeviceMode;
//******************************************************************
// Dieser Aufruf bewirkt, das die Orientation nicht
// mehr geändert werden kann. Dehalb habe ich dies
// auskommentiert.
//
// FDeviceMode^.dmFields := 0;
//
//******************************************************************
SetBinArray;
SetPaperArray;
end
else
begin
FDeviceMode := nil;
if not Creating then
raise EJclPrinterError.CreateRes(@RsDeviceMode);
FPrinter := -99;
end;
Res := GetPrinterResolution;
dpiX := Res.X;
dpiY := Res.Y;
if FHandle <> 0 then
GlobalUnLock(FHandle);
end;
Gerd