Einzelnen Beitrag anzeigen

Benutzerbild von Ricane
Ricane

Registriert seit: 21. Mär 2003
Ort: Quickborn
170 Beiträge
 
Delphi 7 Architect
 
#11

Re: Drucken von Bitmaps / Größenanpassung an Druckercanvas /

  Alt 3. Aug 2004, 15:59
Habe das Problem jetzt komplett gelöst...

Falls es noch andere interessiert, hier die Lösung:

Anmerkungen:

- Ich habe im Quellcode auf Querformat (poLandscape) gestellt, weil das Bild Height = 300 und Width = 400 hat!
- Die -16 ergeben sich daraus, dass das Bild (img) Left = 16 hat und Top = 16 hat!

Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Var

  Verti, Hori, I: Integer;
  FaktorH, FaktorV: Double;
  Kompos: Array[1..3] Of String;
  Kompo: TComponent;

Begin

  Kompos[1] := 'Label1';
  Kompos[2] := 'Label2';
  Kompos[3] := 'Label3';

  Printer.Orientation := poLandscape;
  Printer.BeginDoc;
  With Printer.Canvas Do
  Begin
    StretchDraw(Printer.Canvas.ClipRect, img.Picture.Graphic);
    Verti := GetDeviceCaps(Printer.Handle, HORZRES);
    Hori := GetDeviceCaps(Printer.Handle, VERTRES);
    FaktorH := Hori / img.Height;
    FaktorV := Verti / img.Width;
    Font.Name := 'MS Sans Serif';
    Font.Size := 8;

    For I := 1 To 3 Do
    Begin
      Kompo := FindComponent(Kompos[I]);
      TextOut(Round(((Kompo As TLabel).Left - 16) * FaktorV),
        Round(((Kompo As TLabel).Top - 16) * FaktorH),
        (Kompo As TLabel).Caption);
    End;
  End;
  Printer.Enddoc;

End;

Beste Grüsse,

Ricane
Hendrik
So much to Code... so less Time....

www.RicaneSoftware.de
  Mit Zitat antworten Zitat