Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Drucken (https://www.delphipraxis.net/628-drucken.html)

jbg 17. Aug 2002 17:33

Man sollte auch nicht in Pixel drucken, da 100 Pixel auf einem 150dpi Drucker größer als auf einem 600dpi Drucker sind. Man kann Windows jedoch beibringen, in 1/10 mm zu drucken und dass gilt dann für jeden Drucker.
Code:
Printer.BeginDoc;
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); [i]// 1/10 mm[/i]

Printer.Canvas.Font.Height := 50; [i]// 5 Millimeter

// Seitengröße in 1/10 mm ermitteln[/i]
PageWidth := GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE) * 10;
PageHeight := GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE) * 10;

[b]with[/b] Printer.Canvas [b]do[/b]
[b]begin[/b]
  TextOut(100, -100, 'Hier ist 1cm/1cm');
[b]end[/b];
Printer.EndDoc;
Alle Y-Koordinaten werden dabei negativ abgetragen.

CalganX 17. Aug 2002 18:56

Erstmal danke...
Ich blicke durch den Aufbau noch nicht durch, was ist das jetzt, und wie kann ich das ganze ändern??

Chris

CalganX 17. Aug 2002 19:05

Ok, habs jetzt herausgefunden. Noch eine Frage: Ich habe im Source mit { Hier gibt es noch ein Problem: Da macht er keine neue Seite...} gekennzeichnet. Habt ihr eine Idee, wie man das machen kann, dass wenn er unten angelangt ist, dass er dann automatisch eine neue Seite anfängt?

Chris

RomanK 17. Aug 2002 19:08

Dass du den Druckauftrag mit
Code:
Printer.EndDoc;
beendest und dann neu anfängst!

Luckie 17. Aug 2002 19:49

Was soll der Blödsinn mit einem neuem Druck-Job? Man kann auch ganz normal eine neue Seite anfangen, in dem man es ihm sagt.

RomanK 17. Aug 2002 20:08

Ja aber des geht ja anscheinend nicht :shock:

jbg 17. Aug 2002 21:34

Zitat:

if i*(Canvas.TextHeight(Memo1.Lines[ i ])) = (PageHeight - 70) then begin
Bist du dir da ganz sicher, dass der linke Teil immer genau den rechten Teil ergeben kann? Versuch es mal mit >= .

CalganX 18. Aug 2002 07:50

OK, jetzt müsste es funktionieren. Um nochmal zu dieser Auflösungssache zu kommen: wie ändere ich jetzt was. Hab' mal was geändert an den Zahlen, da tat sich aber nix...

Chris

jbg 18. Aug 2002 09:48

Was hast du denn geändert? Eine Änderung um 10 bedeutet 1 mm. Eine Erhöhung um 100 entspricht somit 1 cm.

CalganX 18. Aug 2002 09:54

Ich habe die Zeile
Code:
  Printer.Canvas.Font.Height := 50; // 5 Millimeter
geändert. Erst nachdem ich dann die Zeile in
Code:
  Printer.Canvas.Font.Height := 5;
geändert habe, gab es eine minimale Veränderung. Ich muss es aber noch ein wenig kleiner haben...

Chris

PS: Muss man vielleicht ersteinmal neustarten, oder was?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:29 Uhr.
Seite 2 von 3     12 3      

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