Einzelnen Beitrag anzeigen

schand99

Registriert seit: 7. Nov 2013
Ort: Südtirol
43 Beiträge
 
Delphi XE8 Enterprise
 
#1

Drucken, einzelne Texte 90° gedreht

  Alt 3. Okt 2016, 09:44
Delphi-Version: 5
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?
  Mit Zitat antworten Zitat