Die Orginal-Druckroutine ist reichlich komplex.
Ich hab' sie auf ein Minimum zusammengestrichen und in eine neutrale Testanwendung gesteckt. Diese "Minimalfunktion" zeigt dasselbe Problem, der Druckauftrag steht kurz in der Warteschlange und verschwindet dann. Allerdings kommt die Leerseite jetzt auch nicht mehr immer.
Folgenden Code habe ich verwendet:
Delphi-Quellcode:
procedure TForm1.DrucktestClick(Sender: TObject);
var p,y: integer;
zeile: string;
begin
Printer.PrinterIndex := 2;
Printer.Orientation := poPortrait;
Printer.Copies := 1;
Printer.Title := 'Drucktest';
Printer.BeginDoc;
with Printer.Canvas
do begin
Font.Name := 'Arial';
Font.Size := 8;
Font.Style := [];
Pen.Color := clBlack;
Font.Color := clBlack;
end;
p := 1; y := 0;
while p <= 30
do begin
zeile := IntToStr(p)+'. Zeile';
Printer.Canvas.TextOut(50,y,zeile);
inc(y,200);
inc(p);
end;
Printer.EndDoc;
end;