Hallo Profis,
habe wieder ein Problem. Beim Ausdrucken von technischen Daten eines Bauteiles würde ich gerne ein paar Maßzahlen 90° gedreht auf das Papier bringen. Habe hier im Forum etwas gefunden, das sieht so aus
Delphi-Quellcode:
with Printer.Canvas do
begin
try
AcFont := Font;
Recall := TFontRecall(Font);
Font.Orientation := 2700;
BText := Form1.Edit1.Text; // Höhe Fläche
THoch := TextWidth(BText);
TBreit := TextHeight(BText);
TextOut(XPos + 855 - TBreit - 5, YPos - 225 - Trunc(THoch / 2), BText);
finally
Font.Orientation := 0;
Recall.Free;
Font := AcFont;
end;
end;
end;
Das funktionier auch soweit. Nicht aber wenn ich den Druckauftrag ein zweites mal starte.
Dann meldet sich das Progamm mit "ungültige Zeigeroperation", nach dem Beenden erscheint dann auch Runtime error 217 at 004089D5.
Was mich zusätzlich wundert ist, dass nach dem Recall.Free eigentlich die 90° Drehung der Schrift aufgehoben sein sollte. Ist sie aber nicht, deshalb musste ich die Drehung auf 0° setzten.
Habe es auf verschiedenen Druckern im Netzwerk probiert, bei allen die selben Fehler. Ganz schlecht funktioniert der im Windows 10 enthaltene "Microsoft print to PDF".
Printer.Enddoc schließt den Druckauftrag zwar ab, jedoch werden Einstellungen für den nächsten Druckjob weiterverwendet.
Hätte jemand einen Tipp wie ich das Problem lösen könnte?