Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Wie Druckerränder einstellen?

  Alt 6. Feb 2007, 02:11
Hallo bitsetter, vielen Dank für den Code!

Ich habe den Code etwas umgemodelt, um auch verschiedene Schriftgrößen innerhalb des Textes zu unterstützen. Was hältst du davon:

Delphi-Quellcode:
procedure Ausdrucken(Text: TStringList; x, y: integer);
var
  i, z: integer;
begin
  x := x * 10;
  y := y * 10;
  z := y;
  Printer.Begindoc;
  //printer.Canvas.Font.Name := 'Courier New';
  for i := 0 to Text.Count - 1 do
  begin
    (*if Printer.Canvas.TextWidth(Text[i]) > printer.PageWidth - x then
      Showmessage('Zeile ' + inttostr(i + 1) + ' ist zu breit');*)

    if (i mod 3) = 0 then
      printer.Canvas.Font.Size := 16
    else
      printer.Canvas.Font.Size := 11;
    Printer.Canvas.TextOut(x, y, Text[i]);
    y := y + (printer.Canvas.Font.Size * 11);
    if (y > (printer.PageHeight - z - (printer.Canvas.Font.Size * 10))) then
    begin
      y := z;
      Printer.NewPage;
    end;
  end;
  Printer.Enddoc;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  Text: TStringList;
begin
  Text:= TStringList.Create;
  Text.LoadFromFile('C:\Test.txt');
  Ausdrucken(Text, 20, 17);
  Text.Free;
end;
Jetzt bräuchte man nur noch eine Funktion, die überlange Textzeilen vor dem rechten Seitenrand an Wortgrenzen umbricht, dann wäre es perfekt!
  Mit Zitat antworten Zitat