Announcement

Collapse
No announcement yet.

noch eine Frage zum Drucken

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • noch eine Frage zum Drucken

    Hallo,
    in folgender Proc.wird der Text oben liks ausgedruckt. Nun möchte ich die nächste bZeile in 0,18+10 drucken.( Font.size + x ). Die Zeile wird aber nur ca. 2mm tiefer als die erste Zeile gedruckt. Was mache ich falsch, und wie kann ich den font.Style wieder auf normal setzen?

    procedure TForm3.Button3Click(Sender: TObject);
    begin
    Printer.Orientation := poLandscape;
    Printer.BeginDoc;
    Printer.Canvas.Font.Name := 'Arial';
    Printer.Canvas.Font.Size := 18;
    Printer.Canvas.Font.Style := [fsUnderline];
    Printer.Canvas.TextOut(0,0,'Test');
    Printer.Canvas.TextOut(0,28,'Test2');
    Printer.EndDoc;
    end;

  • #2
    Hallo,

    nach der Änderung der Schriftart kann die Eigenschaft <b>PixelsPerInch</b> angepasst werden. Ausserdem ermittelt die Funktion <b>GetTextMetrics</b> den Platzbedarf inkl. notwendigem Abstand zur nächsten Zeile:

    <pre>
    function GetTextHeight: Integer;
    begin
    GetTextMetrics(Printer.Handle, Metrics);
    Result:= Metrics.tmHeight + Metrics.tmExternalLeading;
    end;
    </pre>
    In einem praktischen Beispiel sieht das so aus:
    <pre>
    ..
    Printer.BeginDoc;
    iY:= 100;
    { Überschrift }
    Printer.Canvas.Font.Name := 'Arial';
    Printer.Canvas.Font.PixelsPerInch:=
    GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY);
    Printer.Canvas.Font.Size := 24;
    sTxt:= '..';
    Printer.Canvas.TextOut(iLeft, iY, sTxt);
    iDelta:= GetTextHeight * 2;
    Inc(iY, iDelta);
    ...
    Printer.Canvas.TextOut(iLeft, iY, sTxt);
    Inc(iY, iDelta);
    { Tabellenüberschrift }
    Printer.Canvas.Font.Name := 'Courier New';
    Printer.Canvas.Font.Size := 10;
    Printer.Canvas.Font.PixelsPerInch:=
    GetDeviceCaps(Printer.Canvas.Handle, LOGPIXELSY);
    iDelta:= GetTextHeight;
    ...
    Printer.Canvas.TextOut(iLeft, iY, sTxt);
    Inc(iY, iDelta);
    </pre&gt

    Comment


    • #3
      Danke,
      kann mir noch jemand veraten, wie ich den Font.Style von Underline wieder aus "normal" bekomme

      Comment


      • #4
        <p>Hallo Karl-Heinz,<br>
        <br>
        <b>Font.Style:=[];</b><br>
        <br>
        Gruß Thomas</p&gt

        Comment

        Working...
        X