AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Drucken, einzelne Texte 90° gedreht

Ein Thema von schand99 · begonnen am 3. Okt 2016 · letzter Beitrag vom 3. Okt 2016
Antwort Antwort
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, 08: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
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Drucken, einzelne Texte 90° gedreht

  Alt 3. Okt 2016, 10:00
Delphi-Quellcode:
   with Printer.Canvas do
      begin
        try
           AcFont := Font;
           Recall := TFontRecall(Font);
//...
           Recall.Free;
           Font := AcFont;
        end;
      end;
   end;
Irgendwie sind mir auf den ersten Blick da zuviele Fonts im Spiel. Und vermutlich wird der falsche davon freigegeben. Ausserdem benutzt Du TFontRecall falsch.

Ohne es getestet zu haben, wuerde ich es wie folgt programmieren:

Delphi-Quellcode:
   with Printer.Canvas do
      begin
        try
           Recall := TFontRecall.Create(Font);
//...
           Recall.Free;
        end;
      end;
   end;
Thomas Mueller
  Mit Zitat antworten Zitat
schand99

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

AW: Drucken, einzelne Texte 90° gedreht

  Alt 3. Okt 2016, 11:29
Danke, das war's!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz