Danke euch beiden für die Antworten
@Michael:
Den Beitrag mit den falschen dpi-Werten hatte ich auch schon gefunden, das ist bei mir nicht der Fall.
Drucker hat 600dpi, das wird auch angezeigt.
@theo:
Danke für's ausprobieren.
Dein Code funktioniert in meinem Programm genauso wie bei Dir.
Allerdings nur wenn ich die Variable r
vor druckstyle deklariere!!! (Im Code der erste - nicht auskommentierte - Teil)
Mach ich es umgekehrt druckt er die falsche Variante. (siehe Anhänge gut.pdf und schlecht.pdf)
Dumm ist nur, daß ich in meiner Originalroutine die Variablen in der "richtigen" Reihenfolge deklariere, es aber trotzdem falsch druckt.
Ich meine irgendwo gelesen zu haben, daß TRect in verschieden Units unterschiedlich definiert sei.
Meint ihr, daß das die Lösung sein könnte?
Eine Linie Diagonal durch r gezeichnet scheint korrekt gezeichnet zu werden, trotzdem ist die Schrift wunzig klein.
Ich glaub ich gehör' bald ins Bett

(oder in die Klapse!)
Code: Alles auswählen
procedure TForm1.Button18Click(Sender: TObject);//Komm drucken
var r:TRect;
druckstyle:TTextStyle;
begin
if PrintDialog1.Execute then
begin
Printer.BeginDoc;
Printer.Canvas.Font.Name := 'Arial';
Printer.Canvas.Font.Size:=36;
druckstyle.Alignment:=taCenter;
druckstyle.Layout:=tlCenter;
druckstyle.Wordbreak:=true;
druckstyle.Singleline:=false;
r.Left:=Printer.PaperSize.PaperRect.WorkRect.Left+10;
r.Top:=Printer.PaperSize.PaperRect.WorkRect.Top+40;
r.Right:=Printer.PaperSize.PaperRect.WorkRect.Right-20;
r.Bottom:=r.Top+Printer.Canvas.TextHeight('AZ');
Printer.Canvas.Rectangle(r);
Printer.Canvas.TextRect(r,r.Left,r.Top,'hallo test hallo test',druckstyle);
Printer.EndDoc;
end;
end;
{var druckstyle : TTextStyle;
r : TRect;
begin
if PrintDialog1.Execute then
begin
Printer.BeginDoc;
Printer.Canvas.Font.Name := 'Arial';
Printer.Canvas.Font.Size:=36;
druckstyle.Alignment:=taCenter;
druckstyle.Layout:=tlCenter;
druckstyle.Wordbreak:=true;
druckstyle.Singleline:=false;
r.Left:=Printer.PaperSize.PaperRect.WorkRect.Left+10;
r.Top:=Printer.PaperSize.PaperRect.WorkRect.Top+40;
r.Right:=Printer.PaperSize.PaperRect.WorkRect.Right-20;
r.Bottom:=r.Top+Printer.Canvas.TextHeight('AZ');
Printer.Canvas.Rectangle(r);
Printer.Canvas.TextRect(r,r.Left,r.Top,'hallo test hallo test',druckstyle);
Printer.Enddoc;
end;
//if MeinPrintDialog then
// if CheckBox16.Checked then Kommissiondrucken(true) else Kommissiondrucken(false);
end; }
gut.pdf
- (2.76 KiB) 86-mal heruntergeladen
Früher war alles besser. Und aus Holz!